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

无法通过API连接Azure AD B2C租户并注册属性报错求助

排查Azure AD Graph API注册扩展属性时的Authorization_IdentityNotFound错误

你好!我帮你梳理下这个身份验证错误的几个关键排查点和修正方案,应该能解决你的问题:

1. 先确认访问令牌的有效性

这个错误最常见的原因是令牌的受众或对应应用身份不对:

  • 用任意JWT解码工具解析你的令牌,检查aud字段必须是https://graph.windows.net(Azure AD Graph的专属受众),如果是https://graph.microsoft.com(Microsoft Graph的受众),那这个令牌根本不能用在Azure AD Graph上。
  • 同时确认appid字段和你用来获取令牌的应用注册的Client ID一致,别用错了应用。

2. 检查应用的API权限配置

创建扩展属性需要应用拥有Azure AD Graph的应用级权限,且必须完成管理员同意:

  • 登录Azure门户进入你的B2C租户,找到对应的应用注册。
  • 转到「API权限」→「添加权限」→选择「Azure Active Directory Graph」→「应用权限」→勾选Directory.ReadWrite.All权限。
  • 点击「授予管理员同意」(必须由全局管理员或目录角色管理员操作),确保权限状态显示为「已授予」,而不是「需要管理员同意」。

3. 修正请求格式(这是你当前的核心问题!)

Azure AD Graph的extensionProperties端点只接受JSON格式的请求体,但你用了form-data,这会导致服务无法正确解析请求,甚至干扰身份验证的识别:

  • 在Postman里把请求的「Body」类型切换为「raw」,并选择「JSON」格式。
  • 请求体改成如下结构:
{
  "name": "requiresMigration",
  "dataType": "Boolean",
  "targetObjects": ["User"]
}
  • 别忘了在请求头里加上Content-Type: application/json。

4. 确认请求URL的正确性

  • 把URL里的<Object_ID>替换成你应用注册的对象ID(注意不是Client ID,在应用注册的「概述」页面能找到这个GUID)。
  • 租户部分用contoso.onmicrosoft.com或者租户GUID都可以,确保是你的B2C租户的正确标识。

修正后的完整Postman请求示例

  • 请求方法:POST
  • 请求URL:https://graph.windows.net/contoso.onmicrosoft.com/applications/<你的应用对象ID>/extensionProperties?api-version=1.6
  • 请求头:
    • Authorization: Bearer <你的访问令牌>
    • Content-Type: application/json
  • 请求体(raw JSON):
{
  "name": "requiresMigration",
  "dataType": "Boolean",
  "targetObjects": ["User"]
}

按照这些步骤调整后,应该就能解决身份识别的问题了。如果还是不行,可以再检查下获取令牌时的参数——比如用client_credentials流的话,resource参数必须是https://graph.windows.net,不能写错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:32:52