AWS Cognito OIDC 提供商 PKCE

问题描述 投票:0回答:1

我有一个 Amplify 应用程序,它使用 Cognito 进行身份验证。我需要允许用户通过第三方登录。我已将它们设置为 Cognito 中的 OIDC 身份提供商。但是,该第三方仅支持使用 PKCE 的代码授予流程,并且 Cognito 向 OIDC 提供商发出的请求不是使用 PKCE 发出的(不发送 code_challenge 参数)。

查看 OIDC 提供商和 Cognito 应用程序客户端的设置,我无法找到启用此功能的方法。 Cognito 是否可以通过 PKCE 提出此请求?

amazon-cognito openid-connect pkce
1个回答
5
投票

不幸的是,我很确定事实并非如此:

  • Cognito 支持 PKCE 来处理来自客户的直接请求

  • 但我认为它不适用于与其他身份提供商的联合连接

从逻辑上讲,这应该通过以下方式之一起作用:

  • Cognito 可以将其作为设置提供,您可以切换身份提供商

  • 或者 Cognito 可以从 code_challenge_methods_supported 元数据参数

    派生它
  • 目标 IDP 可能应该支持没有 PKCE 的经典 OIDC 消息,以便成为合规的 OIDC 提供商 - 这可能是您最好的选择

我不久前使用 Okta 作为 Cognito 的 IDP - Okta 返回上述元数据字段 - 但 Cognito 没有使用 PKCE。

© www.soinside.com 2019 - 2024. All rights reserved.