OAuth2 中的客户端应如何处理令牌以做出 GUI 决策
How should the token be processed by Client in OAuth2 to make GUI decisions
我非常清楚地了解 OAuth2 令牌交换流程和角色。我不清楚的是它如何映射到现实世界的场景。如果我有一个网站,其行为类似于与后端 rest API(资源提供者)通信的 GUI 部分(客户端),它会从 Auth 服务器请求令牌以向 RP 进行身份验证。令牌通常带有描述用户权限或角色的范围,因为它们将由 RP 强制执行。然而,GUI 通常需要根据哪些 scopes/roles 被授予令牌来做出决定。一方面,它看起来应该内省令牌以找出此信息 "adapt" UI 以匹配用户的权限。另一方面,令牌不需要可读,它们可能是不透明的。似乎授权决定同时在客户端和 RP 上进行,这似乎表明客户端也是辅助 RP? GUI 接收用户授予其访问权限的 roles/scopes 的预期模式是什么?
您是在谈论 OAuth2.0 还是 OIDC 或两者?你已经标记了 openid
所以我假设两者都是。
It seems like authorization decisions are being done on both Client &
RP
OAuth2.0 客户端是 OIDC 依赖方。它们是同一回事。
如果您正在使用混合授权 - 即您正在使用 OAuth2.0 和 OIDC 来获得 access_token
和 id_token
那么您的 id_token
将包含您的客户的信息(依赖方)可以使用。它是一个 JWT 令牌,具有您可以信赖的信息格式。它也是透明的。
另一方面,access_token
可能是不透明的,也可能不是 - 无论哪种方式,您的客户端都将传递给您的资源服务器,而不是尝试使用自己。
access_token
应该包含与您的客户端可以在资源服务器上访问的内容相关的范围(您的后端休息 API),而您的 id_token
应该包含与谁相关的声明用户身份,身份提供者/授权服务器提供的关于他的身份,何时以及如何进行身份验证以及任何其他身份声明。这些声明可能允许您的客户根据需要定制 GUI。
我非常清楚地了解 OAuth2 令牌交换流程和角色。我不清楚的是它如何映射到现实世界的场景。如果我有一个网站,其行为类似于与后端 rest API(资源提供者)通信的 GUI 部分(客户端),它会从 Auth 服务器请求令牌以向 RP 进行身份验证。令牌通常带有描述用户权限或角色的范围,因为它们将由 RP 强制执行。然而,GUI 通常需要根据哪些 scopes/roles 被授予令牌来做出决定。一方面,它看起来应该内省令牌以找出此信息 "adapt" UI 以匹配用户的权限。另一方面,令牌不需要可读,它们可能是不透明的。似乎授权决定同时在客户端和 RP 上进行,这似乎表明客户端也是辅助 RP? GUI 接收用户授予其访问权限的 roles/scopes 的预期模式是什么?
您是在谈论 OAuth2.0 还是 OIDC 或两者?你已经标记了 openid
所以我假设两者都是。
It seems like authorization decisions are being done on both Client & RP
OAuth2.0 客户端是 OIDC 依赖方。它们是同一回事。
如果您正在使用混合授权 - 即您正在使用 OAuth2.0 和 OIDC 来获得 access_token
和 id_token
那么您的 id_token
将包含您的客户的信息(依赖方)可以使用。它是一个 JWT 令牌,具有您可以信赖的信息格式。它也是透明的。
另一方面,access_token
可能是不透明的,也可能不是 - 无论哪种方式,您的客户端都将传递给您的资源服务器,而不是尝试使用自己。
access_token
应该包含与您的客户端可以在资源服务器上访问的内容相关的范围(您的后端休息 API),而您的 id_token
应该包含与谁相关的声明用户身份,身份提供者/授权服务器提供的关于他的身份,何时以及如何进行身份验证以及任何其他身份声明。这些声明可能允许您的客户根据需要定制 GUI。