ADAL JS - 不支持 response_type="token"
Posted
技术标签:
【中文标题】ADAL JS - 不支持 response_type="token"【英文标题】:ADAL JS - response_type="token" is not supported 【发布时间】:2015-06-02 07:54:50 【问题描述】:我正在使用 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 时间戳:2015-03-27 22:53:12Z
我可以清楚地看到 adal.js 正在构建一个请求并将“response_type=token”放入查询字符串中。所以,我的假设是 Azure AD 方面发生了一些变化。
我发现一篇文章将 response_type=token 与隐式授权流相关联。我确认我的 webApp 启用了“oauth2AllowImplicitFlow”。我已联系 MS 支持并等待解决。同时,我想与社区分享这一点,看看是否有人对此问题有任何信息。
谢谢
【问题讨论】:
【参考方案1】:如果您正在构建客户端应用程序,则需要从应用程序清单启用隐式流。
"oauth2AllowImplicitFlow": true,
-
打开您的应用程序配置 Azure 门户,并从“管理清单”菜单下载清单文件。
搜索 oauth2AllowImplicitFlow 并将值更改为 true。
上传通过同一菜单再次上传文件。
注销并重新登录到您的应用程序,它会很有效。
也可以通过 Azure AD 门户进行配置:
在应用程序页面中,单击Authentication
,然后在Advanced Settings
下,选中Access tokens
和ID tokens
旁边的复选框,为应用程序启用OAuth2 隐式授权。
更多关于 OAuth2 隐式流的信息 >> link:
隐式授权类型用于移动应用程序和网络应用程序(即在网络浏览器中运行的应用程序),其中不保证客户端机密机密性...
【讨论】:
只是一个非常快速的提示:就我而言,我必须去apps.dev.microsoft.com,添加一个全新的应用程序。它会将您重定向到新创建的应用程序注册,并且有一个选项“添加平台”。在我选择“网络”(在我的情况下也是如此)后,出现了允许隐式流复选框。 门户现在允许您在门户刀片中编辑清单 与***.com/questions/25511096/…复制【参考方案2】:重新创建我的 webApp 解决了这个问题。我仍在调查 MS 的根本原因。两个应用程序的清单除了它们的 AAD 客户端 ID 外没有什么不同。
更新
查看我的 cmets 以获得分辨率
【讨论】:
根本原因是我的 webApp 清单包含下一个设置: 我认为根本原因是我的 webApp 清单包含下一个设置:“groupMembershipClaims”:“SecurityGroup”。如果我将其更改为 "groupMembershipClaims": null - 我的 webApp 突然开始工作。我认为问题在于,当包含安全组时,我的令牌的长度会过长。结果,当 adal js 构建请求以获取 webApi 的令牌时,由于令牌大小的某些限制,Azure AD oauth 端点无法处理它。 我认为还有其他问题。我有“groupMembershipClaims”:null,但我仍然收到相同的错误:AADSTS70005:应用程序不支持 response_type 'token' 跟踪 ID:842eadd1-6363-441e-a55f-5c6faa2f7f6d 相关 ID:ae983aa5-ccb4-40fd-8331 -82f4d154957b 时间戳:2015-03-29+23:45:34Z 然而,知名/openid 配置端点说:“response_types_supported”:[“code”,“id_token”,“code id_token”,“token” ], 确保您在清单中启用了 oauth2AllowImplicitFlow 手动添加 "groupMembershipClaims": null 到清单中完成了这项工作。 +1 serg.salo!以上是关于ADAL JS - 不支持 response_type="token"的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 ADAL.js 或 MSAL.js 的情况下将我的 activiti 应用程序(版本 6)与 Azure Active Directory 端点 v2.0 集成
html 简单的javascript for adal for js