【问题标题】:OIDC delegationOIDC 代表团
【发布时间】:2021-01-17 08:05:03
【问题描述】:

我有一个关于 OIDC 委派的问题,我需要一些帮助,如果对此提供任何意见,我将不胜感激。

我有一个 OIDC OP,并且想针对其他 OIDC OP 对 RP 进行身份验证——因此我的 OP 会收到 OIDC 请求,我想将这些请求委托给其他远程 OP。 我的 OP 将收到一个令牌,其中“iss”将是远程 OP,“aud”将是我在 OP 上创建的 OIDC 客户端。然后我会在我的 OP 中生成另一个令牌,我会向 RP 发出“iss”是我的 OP,“aud”是 RP 的 clientID。

我有 node-oidc-provider,我正在使用它作为我的 OP,并且想知道如何进行设置 - 我正在考虑创建一个具有 client_credentials 授权类型的客户端,但我'我不确定这是否正确?

【问题讨论】:

    标签: authentication oauth-2.0 oauth openid-connect


    【解决方案1】:

    通常,如果您在不同 IdP 之间链接 OIDC,那么您将使用客户端凭据。客户端凭据是为您验证客户端时保留的,而不是用户。

    在您的情况下,我假设您希望让第二个 OP 对您的用户进行身份验证。所以你有这种情况:

    用户 -> 你的应用程序 (RP) -> 你的授权服务器 (OP) -> 其他授权服务器 (OP2) -> OP -> RP

    对于 RP -> OP,您将使用任何有意义的流程。如果您的 RP 是一个 web 应用程序并且您还没有涉及资源服务器 (API),那么您可能只想使用 response_type=id_token 并将 ID 令牌通过 response_mode=form_post 传递回您的应用程序。如果您还需要访问令牌,那么您可能希望将身份验证代码与 PKCE 一起使用。

    当 OP -> OP2 时,您可能只需要使用 response_type=id_token 和 response_mode=form_post 因为您的 OP 只需要一个 ID 令牌来验证用户是否经过身份验证并获取您需要的任何用户信息(可能还有其他声明也适用于角色等)。您也可以在此处使用身份验证代码(现在始终建议使用 PKCE),但这不是必需的,因为您只需验证 ID 令牌签名和随机数即可。然后 OP 只需使用 OP 上回调的重定向 URI 重定向到 OP2 的授权端点。验证 ID 令牌后,您可以将用户重定向到 RP 的回调并完成:)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 1970-01-01
      • 2021-11-05
      • 2022-12-22
      • 2022-08-21
      相关资源
      最近更新 更多