gpt4 book ai didi

oauth-2.0 - OIDC 中的 OAuth2 角色

转载 作者:行者123 更新时间:2023-12-04 16:44:35 25 4
gpt4 key购买 nike

在 OAuth2 协议(protocol)中,Client(OIDC 中的 RP)应用程序获得一个访问 token ,这使它能够代表不同的服务(Resource server 角色) 资源所有者

另一方面,在 OpenID Connect 协议(protocol)中,Client 获得 2 个 token (访问 token 和身份 token )。现在此客户端可以使用访问 token 从 UserInfo 端点获取用户声明。

  1. OP(授权服务器)是否在这里扮演资源服务器的角色(就 OAuth2 而言),而客户端代表用户获取用户数据?
  2. 客户如何使用 ID token ?客户端是否将此 ID token 传递给资源所有者的用户代理(浏览器),然后用户代理存储此 token 以启用 SSO(cookie)?
  3. 客户端(例如,与获取 ID token 的客户端不同)是否必须在每次用户访问它时验证 token (调用 OP 来验证它),或者客户端仅在它第一次被此 token 访问时才这样做,并且然后创建安全上下文,使其能够每次都在 OP 上消除此验证请求?在这种情况下,如何实现此安全上下文?
  4. 除了获取用户声明外,访问 token 的用途是什么?当客户端可以使用 ID token 访问 UserInfo endint 时,为什么它与 ID token 一起发送?

最佳答案

首先你必须了解代币的用途。访问 token 是足以代表最终用户访问 protected 资源的 token 。它由 OAuth 2.0 授权框架定义。现在拥有访问 token 不会对最终用户进行身份验证。它只是授权客户端应用程序访问资源。 OpenID Connect 引入了 ID token 。现在此 token 将由您的客户端应用程序使用。 Protocol define how this to be done如果有效,您的客户端应用程序可以对最终用户进行身份验证。

问:OP(Authorization server)是否在这里扮演资源服务器的角色(就OAuth2而言),客户端代表用户获取用户数据?

部分正确。 According to the protocol document , userinfo endpoint 充当 OAuth 2.0 保护资源。

The UserInfo Endpoint is an OAuth 2.0 Protected Resource that returns Claims about the authenticated End-User. To obtain the requested Claims about the End-User, the Client makes a request to the UserInfo Endpoint using an Access Token obtained through OpenID Connect Authentication.

问:客户端如何使用ID token?客户端是否将此 ID token 传递给资源所有者的用户代理(浏览器),然后用户代理存储此 token 以启用 SSO(cookie)?

如前所述,客户端必须验证 id token ,并基于它可以对最终用户进行身份验证。 ID token 未与 SSO 连接。

问:客户端(例如,与获得 ID token 的客户端不同)是否必须在用户每次访问 token 时验证 token (调用 OP 进行验证),或者客户端仅在第一次获取 token 时执行此操作由这个 token 访问,然后创建安全上下文,使它能够在 OP 每次都消除这个验证请求?在这种情况下,如何实现此安全上下文?

如果您使用 ID token 从 protected 端点使用,则 token 接收方应在接受之前对其进行验证。可以选择在适当的 token 验证后创建 session ( session 不得延长 token 的生命周期)。

问:访问 token 除了用于获取用户声明外还有什么用?当客户端可以使用 ID token 访问 UserInfo endint 时,为什么它与访问 token 一起发送?

访问 token 是您应该用来访问 OAuth 2.0 保护资源的 token 。一旦端点收到它,端点就可以根据授权服务器 (Protocol definition of introspection) 公开的 token 内省(introspection)端点验证访问 token 。借助 Openid Connect,用户信息端点的定义让任何拥有有效 ID token 的一方都可以使用它。

关于oauth-2.0 - OIDC 中的 OAuth2 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51213548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com