在获取远程端点的令牌时,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工作正常)
任何帮助将不胜感激, 感谢
谢谢,
答案 0 :(得分:4)
Adal.js使用iframe为SPA自己的后端以外的资源获取CORS API令牌。 iframe请求需要访问浏览器的cookie以使用AAD进行身份验证并获取访问令牌。从IE运行localhost时无法访问Cookie。您需要完全合格的域名,例如http://test.azurewebsite.com才能从IE中的iframe访问Cookie。示例说明了将应用程序部署到Azure网站的步骤。你可以按照那些来测试IE。 Chrome没有此限制。