获取远程端点的令牌时,ADAL js在IE中不起作用

时间:2015-03-13 19:25:03

标签: adal

在获取远程端点的令牌时,ADAL.js在IE中不起作用。示例“https://github.com/AzureADSamples/SinglePageApp-WebAPI-AngularJS-DotNet”建议取消注释代码行:“cacheLocation:'localStorage',//为IE启用此功能,因为sessionStorage不适用于localhost。”但显然它没有帮助。在IE和Chrome中并排运行应用程序。 Chrome工作得很好。 IE将此错误记录到控制台:

错误:login_required 错误描述:AADSTS50058:未提供用户帐户标识符。

同样,这只是当ADAL尝试获取远程端点(某些其他WebAPI - 已注册且工作正常)的令牌时的情况。我创建并发布了https://github.com/AzureADSamples/SinglePageApp-WebAPI-AngularJS-DotNet/issues/3,但也许有人可以在社区中提出一些答案。希望我不会错过这里非常明显的东西。

所有这一切都是针对localhost完成的,尽管应用程序(客户端和webapi)已在Azure AD中正确注册(chrome工作正常)

任何帮助将不胜感激, 感谢

谢谢,

1 个答案:

答案 0 :(得分:4)

Adal.js使用iframe为SPA自己的后端以外的资源获取CORS API令牌。 iframe请求需要访问浏览器的cookie以使用AAD进行身份验证并获取访问令牌。从IE运行localhost时无法访问Cookie。您需要完全合格的域名,例如http://test.azurewebsite.com才能从IE中的iframe访问Cookie。示例说明了将应用程序部署到Azure网站的步骤。你可以按照那些来测试IE。 Chrome没有此限制。