我无法Microsoft帐户身份验证在AspNet Core 2.1网站上工作(我有Google身份验证工作(。
当我从社交登录页面单击Microsoft帐户按钮时,我最终会进入"技术问题"错误页面。我的网络浏览器是谷歌浏览器,在Windows 10下,最新更新。
为了诊断发生了什么,我安装了LinkResearchTools Link Redirect Trace,以尝试跟踪最终将我带到该错误页面的重定向。我不确定这是调试/跟踪正在发生的事情的最佳方式,但这是我能想到的。
单击网站标题中的"登录"链接,第一个重定向为:
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
这将我带到一个"社交登录"页面,在那里我可以选择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+provide+value+for+the+input+parameter+'redirect_uri'+is+not+valid.+The+expect+value+is+'https://login.live.com/oauth20_desktop.srf'+or+a+URL+which+matches+the+redirect+URI+register+for+this+client+application.&state=StateProperties%3deyJTSUQiOiJ4LW1zLWNwaW0tcmM6ZTU1MDdhMzYtMmJjYy00Y2Y4LWFlNGEtNmVjY2VkNjU0MWZkIiwiVElEIjoiNDkwNTEwYTctNDAwYy00MjI3LThlODMtNmRhOTUxZTQyMmI1In0
将显示错误页面。
请注意,隐藏在最后一个链接中的是一个错误描述字段(由于某种原因,该字段不会显示在错误页面上(。如果我正确解释它,则表示我与 Azure 门户和/或我的网站应用中设置的redirect_uri不匹配。
然而,我认为重定向是一致的:
- 网站应用程序,通过appsettings.json:"RedirectUri": "https://localhost:44305/signin-oidc">
- Azure 门户,通过应用 属性回复网址:https://localhost:44305/signin-oidc
所以我显然在某处错过了一些东西。思潮?
如"使用 Azure Active Directory B2C 设置注册和登录Microsoft帐户"一文中所述,必须向Microsoft标识提供者注册以下重定向 URL:
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
正是此重定向 URL 从 Azure AD B2C 发送到Microsoft标识提供者,以便在Microsoft登录后返回到 Azure AD B2C。
我发现如果您使用以下格式的链接并使用 .NET Core 模板
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
然后还需要更新appsettings.json,如下所示:
"AzureAdB2C": { "实例": "https://your-tenant-name.b2clogin.com/tfp/",