使用Client Credentials流获取Microsoft Entra ID令牌无组/角色声明问题
问题分析与解决方法
核心原因
client_credentials 认证流代表应用自身身份,而非用户身份。你当前配置的组声明是针对用户登录场景(如Authorization Code流)的,因此不会在应用身份的令牌中返回组信息。
解决步骤
要在client_credentials流的令牌中获取组声明,需针对应用身份配置组声明:
- 进入Azure门户你的企业应用页面,依次点击「令牌配置」→「添加组声明」。
- 在配置窗口中,选择需要的组类型(如安全组、Microsoft 365组),必须勾选「为应用程序权限配置」选项,再选择声明格式(组ID或组名称)。
- 确保你的企业应用已被直接添加到
TEST_GPR组中(用户组分配不会体现在应用身份令牌里)。 - 重新执行你的curl命令,解析返回的JWT令牌,此时即可看到
groups声明字段。
补充说明
- 如果需求是获取用户的组信息,
client_credentials流不适用,应改用用户参与的认证流(如Authorization Code流)。 - 也可直接通过应用权限调用Graph API的
GET /groups接口获取组信息,无需依赖令牌中的组声明。
内容的提问来源于stack exchange,提问作者Ronaldo Lanhellas
相关产品推荐
相关产品推荐

