security - 用于身份断言的 ID token 或/userinfo

标签 security oauth-2.0 openid-connect

在与提供者进行身份验证后,应用程序通常会代表用户同时收到 ID token 和访问 token 。现在似乎有两种方法可以断言用户是谁。

  • 验证 ID token ,然后读取 ID token 。
  • 将访问 token 传递给 userinfo 端点并读取 JSON 响应。

  • 两者似乎都是可以接受的途径,但是在某些情况下是否应该使用其中一种?

    最佳答案

    如果您有两个 token 并且 ID token 包含您需要的所有信息,则可以使用任何一种方式。以下是我想到的一些差异:

  • 无需访问其 OAuth2 服务器即可验证和读取 ID token (如果您已在本地下载了其证书),这会使其速度更快并且需要处理的可能错误更少 - 没有网络请求。
  • 如果用户信息经常更改,则 ID token 可能包含过时的数据,但几乎不会出现这种情况。
  • 访问 token 可以撤销(ID token 不能),因此如果您需要它,它们会做得更好。
  • 关于security - 用于身份断言的 ID token 或/userinfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46212029/

    相关文章:

    php - 未发送 Google YouTube API 刷新 token

    entity-framework - Google 数据协议(protocol)客户端库中的 OAuth 错误

    asp.net-core - OpenId Connect更新SPA中的access_token

    mysql - Keycloak 用户联合使用现有的 MySQL 数据库进行用户身份验证

    c# - ASP.NET Core 2.1 cookie 身份验证似乎具有服务器亲和性

    security - java.lang.SecurityException : class "org.apache.log4j.Logger" does not match trust level of other classes in the same package 错误

    c++ - 使用 VC++ 在 Windows 上保护虚拟磁盘

    java - 可利用的 Java 函数

    c++ - 加密编译可执行文件中的常量字符串(例如密码)

    python - Heroku Python Django 应用程序部署失败 : No module named 'oauth2_provider'