Mik*_*ike 2 oauth-2.0 openid-connect
在 OAuth2 协议中,客户端(OIDC 中的 RP)应用程序获取访问令牌,这使其能够代表Resource Owner使用不同的服务(资源服务器角色)。
另一方面,在 OpenID Connect 协议中,Client获得 2 个令牌(access 和 id 令牌)。现在此客户端可以使用访问令牌从 UserInfo 端点获取用户声明。
首先,您必须了解令牌的用途。访问令牌是一种足以代表最终用户访问受保护资源的令牌。它由 OAuth 2.0 授权框架定义。现在拥有访问令牌不会对最终用户进行身份验证。它只是授权客户端应用程序访问资源。OpenID Connect 引入了 ID 令牌。现在此令牌将由您的客户端应用程序使用。协议定义了如何做到这一点,如果有效,您的客户端应用程序可以对最终用户进行身份验证。
Q:OP(Authorization server)是否在这里扮演了Resource Server的角色(OAuth2),Client代表用户获取用户数据?
部分正确。根据协议文档,userinfo 端点充当 OAuth 2.0 保护资源。
UserInfo 端点是一个 OAuth 2.0 受保护资源,它返回有关经过身份验证的最终用户的声明。为了获取请求的有关最终用户的声明,客户端使用通过 OpenID Connect 身份验证获取的访问令牌向 UserInfo 端点发出请求。
问:客户端如何使用 ID 令牌?客户端是否将此 ID 令牌传递给资源所有者的用户代理(浏览器),然后用户代理存储此令牌以启用 SSO(cookie)?
如前所述,客户端必须验证 id 令牌,并基于此验证最终用户。ID 令牌未与 SSO 连接。
问:客户端(例如,与获取 ID 令牌的那个不同)是否必须在每次用户访问时验证令牌(调用 OP 进行验证),或者客户端仅在第一次被此令牌访问时才这样做,然后创建安全上下文,使其能够消除每次在 OP 进行验证的请求?在这种情况下,如何实现这个安全上下文?
如果您正在使用从受保护端点消费的 ID 令牌,则令牌接收方应在接受之前对其进行验证。可以选择在适当的令牌验证后创建会话(会话不得延长令牌的生命周期)。
问:访问令牌用于什么,除了获取用户声明以及为什么它与访问令牌一起发送,当客户端可以使用 ID 令牌访问 UserInfo 端点时?
访问令牌是您应该用来访问 OAuth 2.0 受保护资源的令牌。一旦端点收到它,端点就可以根据授权服务器公开的令牌自省端点(自省的协议定义)验证访问令牌。并且使用 Openid Connect,定义 userinfo 端点让任何具有有效 ID 令牌的一方都可以使用它。
| 归档时间: |
|
| 查看次数: |
3215 次 |
| 最近记录: |