AADSTS70005错误咨询:开启oauth2AllowImplicitFlow仍提示id_token未启用
oauth2AllowImplicitFlow: true 我之前也踩过这个AADSTS70005的坑,明明已经在应用清单里设置了oauth2AllowImplicitFlow: true,还是报id_token未启用的错误,给你几个亲测有效的排查和解决方向:
检查应用清单的正确配置项:如果你的应用是单页应用(SPA),微软现在推荐使用
oauth2AllowIdTokenImplicitFlow而非旧的oauth2AllowImplicitFlow。打开应用注册的清单编辑器,把oauth2AllowIdTokenImplicitFlow设置为true,保存后等待5-10分钟让配置同步生效——Azure有时候会有延迟。验证平台配置是否开启对应选项:光改清单可能不够,去Azure门户的应用注册页面,进入「身份验证」菜单,找到你配置的平台(比如SPA、移动/桌面应用):
- 若是SPA平台,确保勾选了「ID令牌(用于隐式流)」选项;
- 若是其他平台,也要在平台设置里确认开启了隐式流的ID令牌支持。平台配置会和清单设置联动,有时候需要两边都配置正确。
确认授权请求和权限匹配:检查你的授权请求里的
response_type确实是id_token,同时在「API权限」菜单里确认添加了openid、profile这类OpenID Connect核心权限,并且如果是租户级应用,已经完成了管理员同意的步骤。清理缓存后重试:浏览器缓存或ADAL/MSAL库的缓存可能保留了旧的配置信息,建议用无痕模式测试,或者清除浏览器的Cookie和缓存后再发起请求。如果用了身份验证库,也可以调用库的缓存清理方法重置会话。
确认配置已同步生效:可以通过Microsoft Graph API调用
GET /applications/{app-id}来查看应用的实际配置,确认oauth2AllowIdTokenImplicitFlow或oauth2AllowImplicitFlow确实已经被设置为true,避免因为配置未同步导致的问题。
内容的提问来源于stack exchange,提问作者Jajula Siva

