好的,OAuth 2.0是一种授权协议,但是当您使用ROPC(资源所有者密码凭据)授权类型时,我理解它的方式,您的意思是验证和授权不是吗?
OpenID是否仍适用于ROPC?仍然有点混淆OAuth 2.0 ROPC和OpenID
答案 0 :(得分:1)
资源所有者密码凭据授予类型会对用户进行身份验证,但这是一种非典型的OAuth 2.0授权类型,仅用于迁移目的,如规范所述:
资源所有者密码凭据授予类型通常用于
遗产或迁移原因。它降低了存储的整体风险 客户端的用户名和密码,但不消除需要 将高权限凭据公开给客户端。此授权类型的风险高于其他授权类型 因为它维护了该协议所寻求的密码反模式 避免。
OpenID Connect不禁止资源所有者密码凭据授权(即使OpenID Connect规范没有在OAuth 2.0之外明确定义它),但是否定了OpenID Connect应该是的联合SSO协议的主要目的。这是因为它将RP锁定为单个身份验证方法,从而向RP公开用户凭据。你的里程数。支持各个提供商可能会有所不同。
另请参阅:Does OpenID Connect support the Resource Owner Password Credentials grant?
答案 1 :(得分:0)
我认为,当我们使用刷新令牌时,资源所有者密码凭证(ROPC)的功能得到了适当利用。
考虑一个用户需要登录的移动应用程序。登录并使用您的clientId,secret,userid和password请求令牌后,通常会获得访问令牌和刷新令牌。访问令牌通常在较短时间内(例如1小时)有效,刷新令牌在较长时间内(例如24小时)有效。 ClientId和Secret存储在应用程序中。 UserId和密码归用户所有,永远不会存储在任何地方。
当用户尝试在1小时后访问该应用程序时,其访问令牌已过期,这意味着在正常情况下,他需要再次登录。 但是,通过交换刷新令牌以及clientId和Secret(不需要userId和密码)来获取新的访问令牌(和新的刷新令牌),我们可以避免再次输入用户ID和密码这一繁琐的任务。新的访问令牌将具有与先前访问令牌相同的所有功能。这意味着只要用户至少在24小时前处于活动状态,就不必再次登录。闲置24小时后,刷新令牌和访问令牌都将过期,并且需要登录才能获取新的访问令牌。