Azure AD B2C Microsoft 帐户 redirect_uri 失败

Azure AD B2C Microsoft Account redirect_uri failure

我无法让 Microsoft 帐户身份验证在 AspNet Core 2.1 网站上工作(我有 Google 身份验证工作)。

当我从社交登录页面单击 Microsoft 帐户按钮时,我最终进入了 "technical problems" 错误页面。我的网络浏览器是 Google Chrome,在 Windows 下 10,最新更新。

为了诊断发生了什么,我安装了 LinkResearchTools Link Redirect Trace 以尝试并遵循最终使我进入该错误页面的重定向。我不确定这是 debug/trace 正在发生的事情的最佳方式,但这是我能想到的全部。

点击网站 header 中的登录 link,第一个重定向是:

https://ridemonitor.b2clogin.com/ridemonitor.onmicrosoft.com/b2c_1_signupin/oauth2/v2.0/authorize?client_id=035ba5c4-d1a6-41c4-9425-0985bb4aa5de&redirect_uri=https%3A%2F%2Flocalhost%3A44305%2Fsignin-oidc&response_type=id_token&scope=openid%20profile&response_mode=form_post&nonce=636729887963798999.OTllOWQ4MDEtZDc0YS00MjUxLWE4ZDAtODAwMThmYzllNmVkNjUxNWU0OTktYmMzNS00MmQwLWFiYmUtNjgwMDJhNzFjOWIy&state=CfDJ8DUZTACb0dBAqZ5KhCEik9SlgAhmUgNWHdhe3rNb-d3M1xYGQlIDMzSq5UyB1P-3d3jziI06Mj94rQcnyGpiykGdDqvy588DrhR-wi0bj2SLVyRoyTclszwbBdXKgXfukRJ0Soif1eJzWBUbZU6_osWgzmh8hgvlGIUON62n3MidLRTgJ4Ca0VN_VJe_9vpfWF6TGUBOAuODlXTZAEEDbopqSuzKXweE0nUR-jv-aAj7v3vgV0NHC6rJKvHVaRyw7oYkD1-my6-AOWq1-U5ttokJfCjMKMYDD8dr_UM3jg_P&x-client-SKU=ID_NETSTANDARD1_4&x-client-ver=5.2.0.0

这会将我带到 "social signin" 页面,我可以在其中选择 Google(有效)或 MicrosoftAccount(无效)。

下一个重定向是:

https://login.live.com/oauth20_authorize.srf?client_id=704398a8-908a-4512-9cc0-4453014b4714&redirect_uri=https%3a%2f%2fridemonitor.b2clogin.com%2fridemonitor.onmicrosoft.com%2foauth2%2fauthresp&response_type=code&scope=openid+profile+email&response_mode=form_post&nonce=OVJptuLcHfkYUCTk36vO6g%3d%3d&state=StateProperties%3deyJTSUQiOiJ4LW1zLWNwaW0tcmM6ZTU1MDdhMzYtMmJjYy00Y2Y4LWFlNGEtNmVjY2VkNjU0MWZkIiwiVElEIjoiNDkwNTEwYTctNDAwYy00MjI3LThlODMtNmRhOTUxZTQyMmI1In0

然后将我重定向到:

https://login.live.com/err.srf?lc=1033#error=invalid_request&error_description=The+provided+value+for+the+input+parameter+'redirect_uri'+is+not+valid.+The+expected+value+is+'https://login.live.com/oauth20_desktop.srf'+or+a+URL+which+matches+the+redirect+URI+registered+for+this+client+application.&state=StateProperties%3deyJTSUQiOiJ4LW1zLWNwaW0tcmM6ZTU1MDdhMzYtMmJjYy00Y2Y4LWFlNGEtNmVjY2VkNjU0MWZkIiwiVElEIjoiNDkwNTEwYTctNDAwYy00MjI3LThlODMtNmRhOTUxZTQyMmI1In0

显示错误页面。

请注意,隐藏在最后的 link 中的是一个错误描述字段(由于某种原因,它不会显示在错误页面上)。如果我解释正确,那是说我与 Azure 门户、我的网站应用程序或两者中设置的 redirect_uri 不匹配。

但我认为重定向设置一致:

所以我显然在某处遗漏了一些东西。想法?

the "Set up sign-up and sign-in with a Microsoft account using Azure Active Directory B2C" article 所述,您必须向 Microsoft 身份提供商注册以下重定向 URL:

https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp

在 Microsoft 登录后,从 Azure AD B2C 发送到 Microsoft 身份提供程序到 return 到 Azure AD B2C 的重定向 URL。

我发现如果您使用以下格式的 link 并使用 .NET Core 模板

https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp

然后还需要更新appsettings.json如下:

"AzureAdB2C": { "Instance": "https://your-tenant-name.b2clogin.com/tfp/",