怎么使用OpenID Connect为构建在Azure上的应用提供基于Cognito User Pool的SSO

0

【以下的问题经过翻译处理】 你好,我们尝试在Cognito User Pool中实现Azure Active Directory SSO(Microsoft登录),使用OpenID Connect通过https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-provider.html#cognito-user-pools-oidc-providers 上提供的指南。

我们执行的步骤:

我们创建了一个Azure应用程序(https://portal.azure.com),并通过提供以下OIDC详细信息将其链接到Cognito User Pool。

1. Issuer: https://login.microsoftonline.com/common/v2.0
2. Client ID: Client ID of the Azure Application
3. Attributes request method : GET
4. Authorize scope: openid email
5. Client Secret: Client Secret of the Azure Application.

一旦我们创建了OIDC,我们在应用程序客户端设置中启用它,并匹配了相关属性,例如在Attributes Mapping部分的电子邮件。

在我们的Azure应用中,我们提供了以下设置:

redirect URI: https://{{Cognito_Hosted_UI_Domain}}/oauth2/idpresponse

现在在Cognito Hosted UI上,尝试登录时,我们能够看到Microsoft登录oAuth Popup,但是一旦我们登录,我们就会被重定向回我们的回调URL,并在回调URL上看到错误消息。

https://{{callback_url_domain}}/cb?error_description=Microsoft+Error+-+401+error+getting+token&error=invalid_request

我们检查了Azure Portal登录选项卡,我们可以看到我们的登录已成功。 所以我们认为这是来自Cognito方面的问题。

如果我们在这个问题上能得到一些指导,那将会很有帮助。


更新:

401错误的原因是我传递了客户端credit ID而不是客户端credit值。 这导致了以下新的错误 https://<CallBackURL>/cb?error_description=Bad+id_token+issuer+https%3A%2F%2Flogin.microsoftonline.com%2F<AzureADTenanatID>%2Fv2.0&error=invalid_request

profile picture
EXPERTE
gefragt vor 5 Monaten28 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 你需要使用特定的Azure AD租户issuer,而不是使用"common"端点。因为"common"端点目前不被支持,从Azure AD返回的令牌中的issuer必须与Cognito中定义的issuer完全匹配。

这篇博客文章可能会有所帮助。如果你在使用特定租户issuer后仍然遇到错误,请打开支持工单,我们的支持工程师将帮助您排查设置问题。

对于多租户相关的场景,以下文档中的最佳实践的介绍也许对你会有所帮助。 https://docs.aws.amazon.com/cognito/latest/developerguide/multi-tenant-application-best-practices.html

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen