0

我正在开发一个小型网络应用程序。它使一个会计流程自动化。

我起草了一个业务需求和一个SOA结构,但是由于我的限制,我不能更进一步,尤其是授权部分。

让我感到困惑的一件事是我应该使用 RESTful API 进行授权(而不是身份验证)吗?还是我应该在后端进行授权(用户-> 角色-> 允许的操作),而不暴露此授权服务?

SOA + RESTful API 处理授权的最佳实践是什么?

真诚的,尼古拉斯

4

2 回答 2

1

REST API 的问题是您无法使用session例如登录用户。每次用户尝试访问受保护的资源时,他都需要在请求中发送一个标识他的令牌(我们使用令牌不在请求中发送密码)。

因此,即使用户调用该方法/authorize/{...},您也需要在调用其他方法时再次检查其凭据,因为没有登录状态。

所以对我来说,最好的方法是:

  1. 用户使用其用户名和令牌作为参数发送请求
  2. 在服务器端检查令牌是否有效(与用户名匹配且未过期)
  3. 如果令牌有效,那么用户就是他所说的那个人,所以你可以检查它的权利(如果他有权访问资源)
  4. 如果他有权访问,那么您继续请求
  5. 否则,您会响应(未经授权)HTTP之类的错误401
于 2013-01-23T09:15:25.240 回答
1

如果我没有误解你的问题,我认为正确的事情是服务器的每个服务请求都可能返回访问错误(或无权访问资源的错误)或请求的结果。

在 JSON 中,服务器返回类似这样的内容

{
"status": "ko",
"error": {
    "number": "xx",
    "msg" ; "error you dont have right to access"
 }

}

如果没问题

{
"status": "ok",
"result": {
    ...
 }

}

于 2013-01-23T09:00:06.663 回答