3

我正在尝试在我的 Cognito 用户池中配置 Microsoft Azure AD B2C身份提供程序。

我在前端使用https://www.npmjs.com/package/@aws-amplify/auth库。

我已经命名了新的身份提供者Microsoft。我还在我的用户池上启用了它。我将相同的 ( Microsoft) 传递给该Auth.federatedSignIn方法。

现在,当我尝试使用 Microsoft 对用户进行身份验证时,用户从 Microsoft 方面获得了身份验证,但 Cognito 给了我?error_description=Invalid+ProviderName/Username+combination.+Please+check+again+&state=XmnGedOhmT99RnTlw0LypyMmqwCRbCZr&error=invalid_request错误。

这对我来说似乎是一个配置问题,但我无法弄清楚它是什么。

请帮忙。

4

1 回答 1

0

一段时间后,我们设法解决了这个问题。问题是用户与 ProviderAttributeValue链接为小写,但在 OIDC 提供者的子声明中,有大写字母,这就是整个混乱的来源。如果用户与子声明提供的原始值相关联,则一切正常

https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html

{
   "DestinationUser": { 
      "ProviderAttributeName": "string",
      "ProviderAttributeValue": "string",
      "ProviderName": "string"
   },
   "SourceUser": { 
      "ProviderAttributeName": "string",
      "ProviderAttributeValue": "string" //ensure that value is same as in sub claim,
      "ProviderName": "string"
   },
   "UserPoolId": "string"
}
于 2021-07-29T22:25:36.183 回答