You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD用户登录应用注册触发管理员同意错误AADSTS90094原因排查

问题根因

你遇到的错误完全由{client-id}/.default这个特殊scope的设计逻辑导致:

  • .default是Azure AD预留的系统级scope,设计上不支持普通用户的动态同意流程,仅适用于两种场景:客户端凭据流(纯应用权限场景)、管理员已预先完成租户级全权限同意的委托场景。当新用户访问带.default的授权链接时,Azure AD会直接校验是否已有预先的同意记录,没有的话就会强制拉起管理员同意流程,普通用户没有权限就会返回AADSTS90094错误。
  • 额外可排查点:检查你的App Registration「API权限」面板是否配置了任意应用程序权限(和委托权限平级的另一类权限)。.default会自动把你预先配置的所有权限(包括应用权限)都加入授权请求,而应用权限本身就只能由管理员同意,哪怕你只加了一个极低权限的应用权限,也会触发这个错误。
  • 你自定义的test scope是显式配置了允许普通用户同意的委托权限,当你在授权链接里显式指定这个scope时,Azure AD会走正常的用户动态同意流程,不会触发管理员同意限制,所以新用户可以正常访问。

常见疑问补充

你用老用户测试两种scope都能拿到token,是因为老用户已经完成过权限同意,不受新用户的同意逻辑限制。JWT里scp字段的差异只是最终授权的权限列表,和触发错误的同意流程逻辑没有直接关联。

解决方案

  • 优先方案:放弃使用.default,直接在scope参数里显式列出所有你需要的权限即可,比如scope=b2cd30fe-8109-4d71-afc7-e5bc2e468a69/test User.Read,既可以覆盖你需要的所有权限,也支持新用户自主同意。
  • 如果必须使用.default,只需让租户管理员访问一次你的授权链接,完成租户级的管理员同意,之后所有普通用户访问都不会再触发该错误。

内容的提问来源于stack exchange,提问作者NotFound

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:27:05