如何处理多个客户和角色?
How to handle multiple clients and roles?
我正在开发 OAuth 2.0 服务器以支持多个客户端和角色。
假设我有一个 API 服务器需要来自 OAuth 服务器的访问令牌。
这些工作流程是我想出来的。我为这个简单的工作流程提供了三个服务——OAuth、Client 和 API server.
- 每个客户端上的用户都有电子邮件和密码(这些凭据存储在 OAuth 服务器上)
- 用户在他们的客户端上使用他们的电子邮件和密码登录,然后客户端将凭据发送到 OAuth 服务器进行身份验证。
- OAuth 服务器检查凭据并颁发访问令牌。
- 当用户向 API 服务器请求请求时,API 服务器与 OAuth 服务器通信以查看用户是否有权访问该资源。如果是这样,执行请求然后 return 东西。
在我看来,这是一种不寻常的工作流程。我想这样做的原因是因为我们实际上将用户凭据存储在我们的 OAuth 服务器上。每个客户我也有多个角色(组)。
这是 OKAY 解决方法还是对于一个 OAuth + 多个客户端和多个角色是否有更好的方法?
您所描述的相当于 OAuth 2.0 中的资源所有者密码凭证授予,请参阅:https://www.rfc-editor.org/rfc/rfc6749#section-1.3.3。您应该能够使用支持此授权的库存 OAuth 2.0 授权服务器来执行此操作。所以它并不罕见或专有,但需要对客户端有很大的信任,因为它“看到”了密码。
您可以将多个角色和组表示为与访问令牌相关联的不同“范围”,从而为客户端建模。
我正在开发 OAuth 2.0 服务器以支持多个客户端和角色。
假设我有一个 API 服务器需要来自 OAuth 服务器的访问令牌。
这些工作流程是我想出来的。我为这个简单的工作流程提供了三个服务——OAuth、Client 和 API server.
- 每个客户端上的用户都有电子邮件和密码(这些凭据存储在 OAuth 服务器上)
- 用户在他们的客户端上使用他们的电子邮件和密码登录,然后客户端将凭据发送到 OAuth 服务器进行身份验证。
- OAuth 服务器检查凭据并颁发访问令牌。
- 当用户向 API 服务器请求请求时,API 服务器与 OAuth 服务器通信以查看用户是否有权访问该资源。如果是这样,执行请求然后 return 东西。
在我看来,这是一种不寻常的工作流程。我想这样做的原因是因为我们实际上将用户凭据存储在我们的 OAuth 服务器上。每个客户我也有多个角色(组)。
这是 OKAY 解决方法还是对于一个 OAuth + 多个客户端和多个角色是否有更好的方法?
您所描述的相当于 OAuth 2.0 中的资源所有者密码凭证授予,请参阅:https://www.rfc-editor.org/rfc/rfc6749#section-1.3.3。您应该能够使用支持此授权的库存 OAuth 2.0 授权服务器来执行此操作。所以它并不罕见或专有,但需要对客户端有很大的信任,因为它“看到”了密码。
您可以将多个角色和组表示为与访问令牌相关联的不同“范围”,从而为客户端建模。