如何使用多种用户类型组织OAuth 2密码授予?

时间:2017-03-21 10:56:21

标签: authentication oauth oauth-2.0

我清楚地了解OAuth 2的工作原理,但是当我们有多种用户类型时,它会遇到这种情况。

Password grant需要以下参数:

grant_type
     REQUIRED.  Value MUST be set to "password".

username
     REQUIRED.  The resource owner username.

password
     REQUIRED.  The resource owner password.

scope
     OPTIONAL.  The scope of the access request

但是,如果我想作为客户授权怎么办?客户也有用户名和密码,但它们与用户不同,并存储在单独的数据库表中。

创建新的非标准 grant_type 或添加一些非标准的其他参数,例如user_type

2 个答案:

答案 0 :(得分:1)

创建新的授权类型没有意义。我目前正在研究OAuth2.o,我们为所有这些事情提供自定义属性支持。对于您的用例,这是基于角色的授权的典型案例。因此,我的支持是后续选项,因为它很灵活,明天如果您希望支持子角色,您可以这样做。

答案 1 :(得分:1)

在您的情况下,您可以使用scope来实现此目的。每当使用客户应用程序时,它将包括例如请求范围列表中的scopecustomer,因此OAuth 2.0授权服务器将知道在何处检查用户名/密码。