【以下的问题经过翻译处理】 你好,我们尝试在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