use*_*038 5 oauth oauth-2.0 openid-connect
我正在考虑使用id令牌代替id令牌进行授权,以便资源服务器可以验证其签名并从中提取用户ID。我不知道这种方法有什么缺点吗?
我想如果丢掉访问令牌,就不能使用验证端点。对于我们来说,用户授予访问权限的范围无关紧要,因为客户端应用程序和OIDC的身份提供者均归我们所有。
我正在使用该库来实现OAuth2和OpenID服务器。 https://github.com/bshaffer/oauth2-server-php
ID 令牌的使用旨在用于客户端应用程序。客户端使用它来验证最终用户。所有这一切都可以通过索赔 ID 令牌转移来实现。这些声明内置于 JWT 中。简单来说,ID Token 是一个自包含的令牌。
现在,如果您控制所有目标方,则可以在客户端之外共享 ID 令牌。想想你通过 ID Token 泄露用户敏感信息的场景。例如,如果 ID 令牌包含仅供客户使用的关于性别的声明。但是当您与第三方共享 ID Token 时,您暴露了这些敏感信息。如果有法律障碍,这可能是犯罪。
另一点是关于 ID 令牌验证。因此,ID Token 针对客户,aud相应地设置了重要的声明。当您将 ID 令牌传递给要使用的后端时,此类验证可能会失败。
有两种解决方案。首先是使用自包含的访问令牌。如今,使用基于 JWT 的访问令牌很常见。有了它们,您将获得相同的解决方案。它将包含最终用户身份、范围值以及令牌验证信息。Azure AD 使用这种方法 -检查此链接。
第二种是使用ID Token。鉴于您控制前端和后端,我认为您可以使用它。但请注意未来的扩展。特别是不要将其暴露给其他方。
| 归档时间: |
|
| 查看次数: |
1620 次 |
| 最近记录: |