Azure AD中client_credentials流使用ApplicationGroup无groups声明问题咨询
问题解答
核心结论
ApplicationGroup类型的groupMembershipClaims确实仅适用于用户身份的授权流(如授权码流),完全不支持client_credentials授权流的服务主体身份。
具体说明
- 当你将
groupMembershipClaims设为ApplicationGroup时,Azure AD只会在用户身份的访问令牌中返回组相关声明(包括cloud_displayname),服务主体通过client_credentials流获取的令牌不会包含任何groups声明。 - 设为
All或SecurityGroup时能拿到组OID,是因为这两个配置针对的是安全组/通讯组的成员身份,服务主体作为组成员时会被返回组OID,但这类配置不支持返回cloud_displayname扩展属性。
组名称获取的替代方案
如果需要在client_credentials流的令牌中获取组名称,目前无法通过声明直接实现,可采用以下方式:
- 利用令牌中的组OID,调用Microsoft Graph API的
GET /groups/{group-id}接口查询组显示名称 - 在应用本地维护组OID与名称的映射表,减少API调用次数
内容的提问来源于stack exchange,提问作者Andy Brown
相关产品推荐
相关产品推荐

