ADAL JS - response_type="token" 不受支持

ADAL JS - response_type="token" is not supported

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

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

"response_type 'token' is not supported for the application"

renewToken 是 failed:AADSTS70005:应用程序不支持 response_type 'token' 跟踪 ID:104c18e3-eb6e-42a4-a292-c6f170f27f65 关联 ID:c2e65622-0c58-473a-8184-b3056fb1af58 时间戳:2015-03-27 22:53:12Z

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

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

谢谢

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

更新

看我的评论解决

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

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

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

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

注销并重新登录到您的应用程序,它会很好用。


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

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

关于 OAuth2 隐式流程的更多信息 >> link:

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