使用客户端凭据流时,如何在访问令牌中包含应用注册名称?
在Azure AD客户端凭据流的访问令牌中添加应用注册名称声明的可行方法
以下是几种可行的方案,满足你在日志、追踪审计中直接获取可读应用名称的需求:
方案1:配置Azure AD可选声明(推荐)
Azure AD支持通过可选声明,直接在客户端凭据流的访问令牌中注入应用注册的显示名称:
- 登录Azure门户,进入目标应用的应用注册页面
- 切换到令牌配置选项卡,点击添加可选声明
- 选择访问令牌类型,在列表中找到并勾选
app_displayname声明,保存配置 - 重新获取客户端凭据流的访问令牌后,令牌中会包含
app_displayname字段,值就是应用注册的显示名称
方案2:自定义扩展声明(进阶)
如果需要更灵活的自定义标识(比如自定义别名),可以通过Microsoft Graph配置服务主体的扩展属性,并将其注入令牌:
- 使用Microsoft Graph API为目标服务主体添加自定义扩展属性,例如
extension_<租户ID>_app_custom_name - 在应用注册的令牌配置中添加该自定义扩展声明到访问令牌
- 后续获取的令牌会携带这个自定义字段,值为你设置的应用名称
方案3:令牌后处理(备选)
如果暂时无法修改Azure AD配置,可以在获取令牌后,通过azp字段(应用UUID)调用Microsoft Graph的GET /servicePrincipals/{azp}接口,获取服务主体的displayName属性,将其关联到日志中。这种方式无需修改令牌结构,但需要额外的API调用开销。
内容的提问来源于stack exchange,提问作者gedemagt
相关产品推荐
相关产品推荐

