Azure B2C ROPC 令牌对 Microsoft Graph API 无效(缺少 x5t 声明)

时间:2021-04-12 12:55:22

标签: azure microsoft-graph-api single-page-application azure-ad-b2c

我们一直按照指南 Set up a resource owner password credentials flow in Azure Active Directory B2C 通过用户名(电子邮件)/密码从用户那里检索访问令牌。请求成功,我们得到了有效的响应。

Decoded access-token

我们遇到的问题是当我们尝试使用此访问令牌进行图形 API 调用时,例如在 B2C 中创建另一个用户。

Error response Graph API

问题似乎在于 Graph API 需要一个 x5t 声明,而该声明未包含在 v2 访问令牌中(据我们所知)。然而,在 jwt 令牌的正文中,它声明它是一个 v1 令牌,即使标头建议使用 v2 并且我们的应用程序注册清单指定为版本 2。

请求获取访问令牌:

https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_ROPC_Auth/oauth2/v2.0/token

我们如何使用 Graph API 中的 ROPC 用户流从 B2C 收到的访问令牌?

1 个答案:

答案 0 :(得分:0)

@Jas Suri 说的是对的,MS Graph API 只接受由 Azure AD 端点发出的令牌。因此,您应该使用特定于 Azure AD 的 ROPC flowAzure AD B2C 的 ROPC 流通常用于获取自定义 api 令牌,而不是 MS Graph API 令牌。

enter image description here

解析token:

enter image description here

enter image description here

调用毫秒图api:

enter image description here