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,第一个重定向是:
这会将我带到 "social signin" 页面,我可以在其中选择 Google(有效)或 MicrosoftAccount(无效)。
下一个重定向是:
然后将我重定向到:
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 不匹配。
但我认为重定向设置一致:
- 网站应用程序,来自 appsettings.json:"RedirectUri":
“https://localhost:44305/signin-oidc”
- Azure 门户,通过应用程序
属性回复url:https://localhost:44305/signin-oidc
所以我显然在某处遗漏了一些东西。想法?
如 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/",
我无法让 Microsoft 帐户身份验证在 AspNet Core 2.1 网站上工作(我有 Google 身份验证工作)。
当我从社交登录页面单击 Microsoft 帐户按钮时,我最终进入了 "technical problems" 错误页面。我的网络浏览器是 Google Chrome,在 Windows 下 10,最新更新。
为了诊断发生了什么,我安装了 LinkResearchTools Link Redirect Trace 以尝试并遵循最终使我进入该错误页面的重定向。我不确定这是 debug/trace 正在发生的事情的最佳方式,但这是我能想到的全部。
点击网站 header 中的登录 link,第一个重定向是:
这会将我带到 "social signin" 页面,我可以在其中选择 Google(有效)或 MicrosoftAccount(无效)。
下一个重定向是:
然后将我重定向到:
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 不匹配。
但我认为重定向设置一致:
- 网站应用程序,来自 appsettings.json:"RedirectUri": “https://localhost:44305/signin-oidc”
- Azure 门户,通过应用程序 属性回复url:https://localhost:44305/signin-oidc
所以我显然在某处遗漏了一些东西。想法?
如 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/",