gpt4 book ai didi

security - OpenID Connect - 在这种情况下是否应该将 id token 发送到 protected 资源?

转载 作者:行者123 更新时间:2023-12-03 18:46:29 24 4
gpt4 key购买 nike

假设我有一个本地应用程序需要向其发出请求的 Web API。此 API 需要验证通过 native 应用程序发出这些请求的用户是谁。 OpenID Connect 似乎是正确的选择,因为它是关于身份验证而不是 OAuth 授权。

native 应用程序将用户凭据发送到 IDP 并取回访问 token (用于授权)和 id token (用于身份验证)。根据我对 OIDC 的了解,访问 token 将被发送到 API,但 id token 仅适用于 native 客户端应用程序。这对我来说没有意义,因为关心用户是谁的是 API,而不是原生应用程序。

那么为什么不将 id token 也传递给 protected 资源(也称为 API)?如果您不将 id token 传递给 API,那么如何保证访问 token 是安全的并且可用于对用户进行身份验证?否则,它似乎会失去使用 OIDC 而不是 OAuth 的好处。

最佳答案

OIDC 规范的设计方式是 ID token 始终用于客户端( native 应用程序),而访问 token 用于资源 (API)。 ID token 始终是 JWT token ,但访问 token 可以是不同的类型。

访问 token 的目的不是验证,而是授权(Delegated Authorization)。如果出于某种原因,资源服务器想了解用户,它可以调用 user-info 端点。

token 交换的安全性/有效性可以通过多种方式进行验证:

  • 使用带有公钥/私钥模型的加密/签名,其中授权服务器使用其私钥加密/签署访问 token ,资源服务器使用公钥解密/验证。
  • 使用 token 自省(introspection)端点来验证声明、 token 的有效性等。

  • AUD、AZP 等其他属性有助于验证已发布的访问 token 。

    一些 OIDC 提供商使用 ID_Tokens 来访问 API - 这与 OIDC 规范建议的模型不同

    这个 article对这些场景有详细的解释。

    关于security - OpenID Connect - 在这种情况下是否应该将 id token 发送到 protected 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45745176/

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