使用 AWS Cognito 和 Keycloak 作为 OIDC 提供商处理身份验证响应时出错

时间:2021-04-13 15:38:21

标签: angular authentication amazon-cognito keycloak aws-amplify

嘿,我正在尝试使用 Keycloak 作为我的认知用户池的 IdP。我在 cognito 中添加了一个自定义专有提供程序作为 OIDC 提供程序,并且我能够使用 Cognito 托管 UI 或我的 angular 应用程序(指向我的 Cognito 用户池)对其进行身份验证。 我还添加了 Keycloak 作为 OIDC 提供者,其中包含来自我的 keycloak 领域(clientid、client secret 和所有相关发行者、auth、token 和 jwks_uri 端点)的必要信息,并将属性请求方法设置为 POST。授权范围只是 openid(尽管我也尝试添加电子邮件和其他范围)。

在 Keycloak 管理控制台上,此信息匹配。我将有效重定向 URI 和 Web 源设置为通配符 (*),以确保它可以重定向回 cognito。在基本 URL 上,我使用 /oauth2/idpresponse 设置我的认知池域,如下所示:

https://name.auth.region.amazoncognito.com//oauth2/idpresponse

最后,我可以使用 cognito 托管的 ui,单击 keycloak provider 选项,输入我的凭据并登录(如果它是无效用户,它会自动显示错误)。 它似乎登录了,我的用户甚至在 keycloak 控制台中显示为活动会话,但我在控制台中收到如下错误:

auth response error in angular application console

我已在 Cognito 应用程序客户端设置中为应用程序指定了一个有效的重定向 URI(对于它登录和重定向的其他提供商)。

此错误来自我在 angular 上使用的 Amplify 库的 Auth 类来执行 federatedSignIn()。

有什么线索吗?甚至可以在 Cognito 中使用 Keycloak 作为 OIDC 提供商吗? 提前致谢。

0 个答案:

没有答案