OAuth 2.0 中资源所有者密码凭据授予类型的用途是什么?
What is the purpose of Resource Owner Password Credential Grant Type in OAuth 2.0?
基于对我的 previous question
的回答
好的,OAuth 2.0 是一种授权协议,但是当您使用 ROPC(资源所有者密码凭证)授权类型时,按照我的理解,您的意思是进行身份验证和授权,不是吗?
OpenID 是否仍然适用于 ROPC?仍然有点混淆 OAuth 2.0 ROPC 和 OpenID
资源所有者密码凭据授权类型确实对用户进行身份验证,但它是一种非典型的 OAuth 2.0 授权类型,仅用于迁移目的,如规范所述:
The resource owner password credentials grant type is often used for
legacy or migration reasons. It reduces the overall risk of storing
usernames and passwords by the client but does not eliminate the need
to expose highly privileged credentials to the client.
This grant type carries a higher risk than other grant types
because it maintains the password anti-pattern this protocol seeks
to avoid.
OpenID Connect 不禁止资源所有者密码凭据授予(即使 OpenID Connect 规范没有在 OAuth 2.0 之外明确定义它)但违背了 OpenID Connect 应该是的联合 SSO 协议的主要目的.这是因为它将 RP 锁定在单一身份验证方法中,从而将用户凭证公开给 RP。你的里程数。对提供商的支持可能会有所不同。
另请参阅:Does OpenID Connect support the Resource Owner Password Credentials grant?
在我看来,当我们使用刷新令牌时,资源所有者密码凭证 (ROPC) 的力量得到了适当的利用。
考虑一个用户需要登录的移动应用程序。一旦登录并使用您的 clientId、机密、用户 ID 和密码请求令牌,通常您会获得访问令牌和刷新令牌。访问令牌的有效期通常较短(比如 1 小时),刷新令牌的有效期较长(比如 24 小时)。 ClientId 和 Secret 存储在 App 中。 UserId 和 Password 归用户所有,绝不会存储在任何地方。
当用户在 1 小时后尝试访问该应用时,他的访问令牌已过期,这意味着在正常情况下,他需要重新登录。
但是我们可以通过交换刷新令牌以及 clientId 和 Secret(不需要用户 ID 和密码)来获取新的访问令牌(和新的刷新令牌),从而避免再次输入他的用户 ID 和密码这一繁琐的任务。新的访问令牌将具有与以前的访问令牌相同的所有功能。这意味着只要用户至少在 24 小时前处于活动状态,他就不必再次登录。闲置 24 小时后,刷新令牌和访问令牌均过期,需要登录才能获得新的访问令牌。
基于对我的 previous question
的回答好的,OAuth 2.0 是一种授权协议,但是当您使用 ROPC(资源所有者密码凭证)授权类型时,按照我的理解,您的意思是进行身份验证和授权,不是吗?
OpenID 是否仍然适用于 ROPC?仍然有点混淆 OAuth 2.0 ROPC 和 OpenID
资源所有者密码凭据授权类型确实对用户进行身份验证,但它是一种非典型的 OAuth 2.0 授权类型,仅用于迁移目的,如规范所述:
The resource owner password credentials grant type is often used for
legacy or migration reasons. It reduces the overall risk of storing
usernames and passwords by the client but does not eliminate the need to expose highly privileged credentials to the client.This grant type carries a higher risk than other grant types because it maintains the password anti-pattern this protocol seeks to avoid.
OpenID Connect 不禁止资源所有者密码凭据授予(即使 OpenID Connect 规范没有在 OAuth 2.0 之外明确定义它)但违背了 OpenID Connect 应该是的联合 SSO 协议的主要目的.这是因为它将 RP 锁定在单一身份验证方法中,从而将用户凭证公开给 RP。你的里程数。对提供商的支持可能会有所不同。
另请参阅:Does OpenID Connect support the Resource Owner Password Credentials grant?
在我看来,当我们使用刷新令牌时,资源所有者密码凭证 (ROPC) 的力量得到了适当的利用。
考虑一个用户需要登录的移动应用程序。一旦登录并使用您的 clientId、机密、用户 ID 和密码请求令牌,通常您会获得访问令牌和刷新令牌。访问令牌的有效期通常较短(比如 1 小时),刷新令牌的有效期较长(比如 24 小时)。 ClientId 和 Secret 存储在 App 中。 UserId 和 Password 归用户所有,绝不会存储在任何地方。
当用户在 1 小时后尝试访问该应用时,他的访问令牌已过期,这意味着在正常情况下,他需要重新登录。 但是我们可以通过交换刷新令牌以及 clientId 和 Secret(不需要用户 ID 和密码)来获取新的访问令牌(和新的刷新令牌),从而避免再次输入他的用户 ID 和密码这一繁琐的任务。新的访问令牌将具有与以前的访问令牌相同的所有功能。这意味着只要用户至少在 24 小时前处于活动状态,他就不必再次登录。闲置 24 小时后,刷新令牌和访问令牌均过期,需要登录才能获得新的访问令牌。