External Entra ID应用自定义用户属性获取与配置问题咨询
问题解答
1. 自定义属性未出现在令牌/声明中的处理
你在External Attributes中创建的自定义属性,默认不会自动注入到ID令牌或访问令牌的声明里。不用直接调用Graph API,有更直接的配置方式:
- 进入你的User Flow配置页,找到用户属性和令牌选项,切换到应用程序声明标签,把目标自定义属性添加到声明列表并保存。配置完成后,用户登录时该属性就会自动出现在ID令牌的声明中。
- 针对你希望管理员在用户资料中设置属性的需求:在User Flow的用户属性标签下,将该自定义属性的「是否需要」设置为“否”,这样用户注册时不会看到这个字段;管理员可直接在Entra ID的用户管理界面编辑用户的该属性值。
2. 调用Graph API的权限选择
如果业务场景必须通过Graph API获取该属性,权限选择分两种情况:
- 后端服务批量获取用户属性、无需当前登录用户上下文时,使用应用权限:在应用注册中添加
User.Read.All或User.ReadWrite.All的应用权限,通过客户端凭证流获取令牌后调用API。 - 仅获取当前登录用户的该属性时,使用用户授权令牌:添加
User.Read的委托权限,通过授权码流等方式获取用户令牌,调用API读取当前用户资料。
3. 更优的额外属性添加方案
除了自定义用户属性,还有两种更灵活的方案可选:
- 扩展属性:如果属性需求更复杂(比如需与其他服务集成、支持更多属性类型),可使用Entra ID的扩展属性。目录扩展可通过应用注册的「扩展属性」UI创建,架构扩展需通过Graph API创建,适配复杂业务场景。
- 应用角色:如果该业务密钥用于权限控制,可直接使用应用角色。管理员给用户分配对应角色后,角色信息会自动出现在令牌的
roles声明中,无需额外存储属性。
内容的提问来源于stack exchange,提问作者Todilo
相关产品推荐
相关产品推荐

