我正在使用Cordova的Azure Active Directory ADAL插件开发一个Ionic 2项目(基于Cordova构建):
https://github.com/AzureAD/azure-activedirectory-library-for-cordova
它在Android和IOS上正确验证,但在Windows Phone 10上失败。我一直在调试问题,直到它进入本机代码的部分,一切看起来都很好。
我是Microsoft的内部人员并且正在执行身份验证流程,我实际上首先被发送到我们的移动应用程序的一个登录屏幕,然后被重定向到执行双因素身份验证流程的org登录页面。在接受2FA流后,它会重定向回我们的应用程序,但之后会失败,因为它会进行字符串比较以将登录请求文本与返回的内容进行比较但由于登录文本格式为XXX@microsoft.com而失败,因此返回的标识符为我的用户GUID。我已经确认这确实是我唯一的用户GUID,但不应将其与我的电子邮件地址进行比较。
这个问题有解决方法吗?
更新 这是JWT。来自Fiddler。我也保存并匿名了一些请求/响应,如果您需要,请告诉我。
{
typ:"JWT",
alg:"RS256",
x5t:"RrQqu9rydBVRWmcocuXUb2*****",
kid:"RrQqu9rydBVRWmcocuXUb2*****",
}
{
aud:"5712d3fd-8e22-4040-afbf-********",
iss:"https://sts.windows.net/72f988bf-86f1-41af-91ab-********/",
iat:1482954230,
nbf:1482954230,
exp:1482958130,
acr:"1",
amr:[
"pwd",
"mfa"
],
appid:"197e6baa-c9ed-4354-a561-***********",
appidacr:"0",
e_exp:10800,
family_name:"****",
given_name:"*******",
ipaddr:"167.***.***.***",
name:"****** ******",
oid:"e9a9b8a5-46e5-4c78-9593-***********",
onprem_sid:"S-1-5-21-2127521184-1604012920-1887927527-**********",
platf:"14",
puid:"10037FFE814B****",
scp:"Directory.Read.All Users.Read.All",
sub:"Jd7cxiEcj-7uVvBc-O0b8VYsT0GdXz1KDD-*******",
tid:"72f988bf-86f1-41af-91ab-********",
unique_name:"******@microsoft.com",
upn:"******@microsoft.com",
ver:"1.0"
}