如何处理多个客户端和角色?

时间:2015-01-12 03:05:51

标签: oauth-2.0 acl

我正在使用OAuth 2.0服务器来支持多个客户端和角色。

假设我有一台API服务器需要来自OAuth服务器的访问令牌。

我提出了这些工作流程。我有三个服务于这个简单的工作流程 - OAuth 客户端 API服务器

  1. 每个客户端上的用户都有电子邮件和密码(这些凭据存储在OAuth服务器上)
  2. 用户在其客户端上使用其电子邮件和密码登录,然后客户端将凭据发送到OAuth服务器进行身份验证。
  3. OAuth服务器检查凭据并发出访问令牌。
  4. 当用户向API服务器请求请求时,API服务器会与OAuth服务器通信以查看用户是否有权访问该资源。如果是,请执行请求的请求,然后返回一些内容。
  5. 在我看来,这是一个不寻常的工作流程。我想这样做的原因是因为我们实际上在OAuth服务器上存储了用户凭据。我还为每个客户提供多个角色(组)。

    这是OKAY解决方法还是有一个更好的方法来实现一个OAuth +多个客户端和多个角色?

1 个答案:

答案 0 :(得分:2)

您描述的内容相当于OAuth 2.0中的资源所有者密码凭据授权,请参阅:https://tools.ietf.org/html/rfc6749#section-1.3.3。您应该能够使用支持此授权的库存OAuth 2.0授权服务器执行此操作。所以它并不罕见或专有,但需要对客户有很大的信任,因为它"看到"密码。

您可以通过将多个角色和群组表示为不同的角色和群组来对其进行建模"范围"与访问令牌和客户相关联。