问题描述
我正在尝试在我的 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
错误。
这对我来说似乎是一个配置问题,但我无法弄清楚是什么。
请帮忙。
解决方法
一段时间后,我们设法解决了这个问题。 问题是用户与 ProviderAttributeValue 链接到小写,但在 OIDC 提供商的 sub 声明中有大写字母,这就是整个混乱的来源。如果用户与子声明提供的原始值相关联,则一切正常
{
"DestinationUser": {
"ProviderAttributeName": "string","ProviderAttributeValue": "string","ProviderName": "string"
},"SourceUser": {
"ProviderAttributeName": "string","ProviderAttributeValue": "string" //ensure that value is same as in sub claim,"UserPoolId": "string"
}