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

微软Azure身份应用访问中,何时需使用api://前缀的作用域?

API作用域中api://前缀的使用规则

必须带api://前缀的场景

  • 当你的受保护API在Azure AD应用注册里,自定义了以api://开头的标识符URI时,请求令牌的作用域必须完整包含这个前缀。比如API的标识符是api://abc123-xyz,那作用域就得写成api://abc123-xyz/.default或者api://abc123-xyz/your-custom-scope。
  • 核心逻辑:API的标识符URI是api://开头的,作用域就必须带这个前缀,否则Azure AD找不到对应的资源,直接触发授权失败。

可以省略api://前缀的场景

  • 如果你的API用的是Azure AD默认生成的标识符URI(一般是https://[租户域名]/[客户端ID]或者https://[租户ID].onmicrosoft.com/[客户端ID]),那请求时直接用[客户端ID]/.default或者[客户端ID]/your-custom-scope就行,不用加api://前缀——Azure AD会自动把这个GUID映射到默认的HTTPS格式标识符。
  • 部分老版本Azure AD配置或特定场景下,直接用客户端ID(GUID)作为资源标识就能被识别,这时候也不需要前缀。

你遇到的问题原因

你之前用api://GUID/.default能正常工作,后来授权失败,移除前缀就恢复正常,大概率是API的标识符URI配置被修改了——比如从自定义的api://GUID改成了默认的HTTPS格式,或者Azure AD内部的资源映射关系发生了变化。这时候带前缀的作用域匹配不到对应的API资源,自然授权失败;而用GUID/.default能匹配到新的默认标识符,所以恢复正常。

怎么区分两种应用注册的差异?

直接去API的应用注册页面看Expose an API板块:

  • 查看最顶部的标识符URI:如果是api://开头的,就必须带前缀;如果是https://开头的默认格式,就可以省略前缀用GUID。
  • 查看自定义作用域的完整格式:比如作用域是api://GUID/access_as_user,请求时就得带前缀;如果是https://[租户]/GUID/access_as_user,就用对应的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:58:18