You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure自定义Claim:如何区分Web应用内外部用户?

解决JWT自定义Claim区分内部/外部用户的问题

正确的源属性选择

要区分Azure AD中的内部用户与Guest(外部)用户,推荐使用以下几个可靠的源属性:

  • user.isguest:最直接的属性,取值为布尔值 True(对应Guest用户)或 False(对应内部用户)。在自定义Claim配置时选择该属性,解码后的JWT会包含明确的布尔值,用于快速判断用户类型。
  • user.creationtype:Guest用户的该属性值固定为 Invitation,内部用户的属性值通常为空或 LocalAccount,可作为辅助判断依据。
  • user.userprincipalname:Guest用户的用户主体名称(UPN)会带有 #EXT# 后缀,例如 external_user_contoso.com#EXT#@yourtenant.onmicrosoft.com,也能用来区分用户类型。

为什么user.usertype不符合预期

你之前选用的user.usertype并非用于区分内部/Guest用户的属性,它的作用是标识用户的管理来源:

  • UserTypeCloudManaged 表示该用户是Azure AD直接创建的内部用户
  • 如果是从本地AD同步过来的用户,该属性值会是 UserTypeOnPremisesSync
    因此这个属性无法满足你区分内部与外部用户的需求。

内容的提问来源于stack exchange,提问作者Georgios

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:32:06