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

ADAL js does not work in IE when acquiring token for remote endpoint

ADAL.js 在为远程端点获取令牌时在 IE 中不起作用。示例“https://github.com/AzureADSamples/SinglePageApp-WebAPI-AngularJS-DotNet”建议取消注释代码行:"cacheLocation: 'localStorage', // enable this for IE, as sessionStorage does not work for localhost." 但显然它没有帮助。 运行 在 IE 中并排应用 Chrome。 Chrome 工作正常。 IE 将此错误记录到控制台:

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

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

尽管应用程序(客户端和 webapi)已在 Azure AD 中正确注册(chrome 工作正常)

,但所有这些都是针对本地主机完成的

如有任何帮助,我们将不胜感激, 谢谢

谢谢,

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