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

如何调用Microsoft Graph API获取Azure AD B2C租户Policy Keys并解决认证错误

解决Azure AD B2C Policy Keys获取的InvalidAuthenticationToken错误及调用步骤

一、核心结论:门户凭据的Basic Auth方式完全错误

Microsoft Graph API不支持用Azure门户的用户名/密码通过Basic Auth调用B2C的Trust Framework相关端点,这是你收到InvalidAuthenticationToken错误的直接原因。必须采用OAuth 2.0客户端凭据流获取有效令牌。

二、调用/trustFramework/keySets端点的完整步骤

1. 注册并配置B2C应用程序

  • 在你的Azure AD B2C租户中注册守护程序/后端类型应用(服务到服务调用无需用户交互)
  • 为应用添加API权限:选择Microsoft Graph -> 应用权限 -> 按需勾选TrustFrameworkKeySet.Read.All或TrustFrameworkKeySet.ReadWrite.All,然后点击授予管理员同意(这一步必须完成,否则令牌会缺少权限声明)
  • 生成客户端密码:在应用的「证书和密码」页面创建客户端密码,务必保存好该密码(仅显示一次)

2. 获取访问令牌

采用客户端凭据流请求令牌,请求地址:

POST https://login.microsoftonline.com/{你的B2C租户ID}/oauth2/v2.0/token

请求体使用x-www-form-urlencoded格式,参数如下:

  • grant_type: client_credentials
  • client_id: 你的应用程序ID
  • client_secret: 你生成的客户端密码
  • scope: https://graph.microsoft.com/.default

3. 调用目标端点

在Postman中发送GET请求:

  • 请求地址:https://graph.microsoft.com/beta/trustFramework/keySets
  • 请求头添加:Authorization: Bearer {你获取到的访问令牌}

三、常见错误排查

  • 确认令牌的aud(受众)为https://graph.microsoft.com,而非B2C租户域名
  • 检查应用权限是否已完成管理员同意,未同意的话令牌中不会包含对应权限
  • 必须使用beta版本的Graph API,trustFramework系列端点目前仅在beta分支可用
  • 验证租户ID正确性,避免混淆普通Azure AD租户与B2C租户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:40:19