24

我正在使用 adal js 对 Azure AD 进行身份验证。我有 webApp 和 webApi。我的应用程序几乎都遵循此示例https://github.com/AzureADSamples/SinglePageApp-WebAPI-AngularJS-DotNet

我能够登录到我的 webApp,并且 adal.js 成功地为我的 webApi 获取了一个令牌并将其注入到请求中。直到最近,一切都在工作。然后 webApi 的令牌获取停止工作并出现错误:

“应用程序不支持 response_type 'token'”

renewToken 失败:AADSTS70005:应用程序不支持 response_type 'token' 跟踪 ID:104c18e3-eb6e-42a4-a292-c6f170f27f65 相关 ID:c2e65622-0c58-473a-8184-b3056fb1af58 时间戳:20135-03-27 225 :12Z

我可以清楚地看到 adal.js 正在构建一个请求并将“response_type=token”放入查询字符串中。所以,我的假设是 Azure AD 方面发生了一些变化。

我发现一篇文章将 response_type=token 与隐式授权流相关联。我确认我的 webApp 启用了“oauth2AllowImplicitFlow”。我已联系 MS 支持并等待解决。同时,我想与社区分享这个,看看是否有人有关于这个问题的任何信息。

谢谢

4

2 回答 2

43

如果您正在构建客户端应用程序,则需要从应用程序清单启用隐式流。

  "oauth2AllowImplicitFlow": true,
  1. 打开您的应用程序配置 Azure 门户,然后从“管理清单”菜单下载清单文件。

在此处输入图像描述

  1. 搜索oauth2AllowImplicitFlow并将值更改为 true。

  2. 通过相同的菜单再次上传文件。

注销并再次登录到您的应用程序,它会很有效。


它也可以通过 Azure AD 门户进行配置:

  • 在应用程序页面中,单击Authentication,然后在 下,选中和Advanced Settings旁边的复选框,为应用程序启用 OAuth2 隐式授权。Access tokensID tokens

有关 OAuth2 隐式流的更多信息 >>链接

隐式授权类型用于移动应用程序和 Web 应用程序(即在 Web 浏览器中运行的应用程序),其中不保证客户端机密机密性......

于 2015-07-01T10:46:26.553 回答
6

重新创建我的 webApp 解决了这个问题。我仍在调查 MS 的根本原因。两个应用程序的清单除了它们的 AAD 客户端 ID 外没有什么不同。

更新

请参阅我的评论以获取解决方案

于 2015-03-29T21:42:18.770 回答