2

我正在使用 Azure B2C 对本机 Xamarin 表单应用程序进行身份验证。使用正确的 b2clogin.com 域返回访问令牌,这一切都可以完美运行

当我尝试使用 Postman 返回令牌时,如果我使用 b2clogin 则它不起作用 - 仅 login.microsoftonline.com

在对此感到困惑一段时间后,我查看了 Fiddler 并注意到提交时 URL 已更改

仅当我将域从一个切换到另一个时才会发生这种情况

这将引导我访问在 AAD 中为应用服务启用 B2C 身份验证时设置的颁发者 URL,并且它是为 b2clogin 而不是为 live.microsoftonline.com 配置的

另一个问题是 microsoftonline 域返回一个令牌,但不是一个将通过我的受保护应用程序进行身份验证的令牌

我正在使用 Postman 返回一个适用于我的应用程序的令牌。不是,如上所述

当我查看 Fiddler 时,我作为权威传入的 URL 在 Postman 中看起来像这样

https://mydomainb2c.b2clogin.com/ {租户域名}/oauth2/v2.0/authorize?p=B2C_1_SiUpIn

已转换为此

https://mydomainb2c.b2clogin.com/B2C_1_SiUpIn/ {租户域名}/oauth2/v2.0/authorize?

如您所见,它采用了策略并将其放在 URL 的其他位置

这只发生在 b2clogin - 不是 microsoftonline

如上所述,发布的 URL 完全是错误的,因此 Postman 中的效果是不断重新加载页面,永远无法登录

4

1 回答 1

0

我想出使用 Fiddler 来更多地挖掘错误消息

问题是使用 login.microsoftonline.com 时,您将获得一个不适用于 b2clogin 目录的令牌

切换到B2C登录目录时,一定要仔细检查回调URL

这就是我的问题 - 我必须从我注册的本机应用程序中对 URL 的回复代替通常去那里的通常的邮递员或 microsoft oauth URL

于 2019-08-09T07:55:56.923 回答