Azure AD来宾用户类型:如何判断受邀来宾用户的认证账户类型?
判断Azure AD来宾用户的认证类型
嘿,这个问题问得很实用!要判断Azure AD里的来宾用户是用Microsoft Account(个人账户)还是工作/学校账户登录的,有几个靠谱的办法,我给你一一梳理:
1. 直接在Azure AD门户里查
这是最直观的方式:
- 登录Azure AD门户,找到「用户」列表,定位到你要检查的来宾用户
- 先看用户主体名称(UPN):
- 如果后缀是
live.com、outlook.com、hotmail.com这类公共域名,基本可以确定是Microsoft Account(MSA) - 如果是企业自定义域名(比如
contoso.com),那就是工作/学校账户
- 如果后缀是
- 再点开用户详情,在「配置文件」或「身份验证方法」标签里,能看到明确的身份源标注:MSA会显示“Microsoft Account”,组织账户则会带出对应的租户名称
2. 用PowerShell批量或精准查询
如果需要批量检查或者自动化操作,PowerShell是个好帮手,推荐用Microsoft Graph PowerShell模块:
- 先连接Graph:
Connect-MgGraph -Scopes User.Read.All
- 然后查询目标用户的关键属性:
Get-MgUser -UserId "guestuser@contoso.com" -Property UserType, Identities
- 重点看返回结果里的
Identities数组:SignInType为userName通常对应MSA;如果是emailAddress且关联企业域名,就是组织账户Issuer字段更直接:MSA的颁发者是live.com,组织账户的颁发者是对应的企业租户域名或租户ID
3. 通过Microsoft Graph API集成到应用里
如果你的应用需要实时判断用户类型,可以调用Graph API:
- 发起GET请求,指定要获取的属性:
GET https://graph.microsoft.com/v1.0/users/{user-id}?$select=identities,userType
- 解析返回的
identities字段:- 当
issuer是live.com、outlook.com这类公共域名,就是MSA - 当
issuer是企业租户的专属域名或租户ID,就是工作/学校账户
- 当
额外小贴士
有些来宾用户可能关联了多个身份,但主身份的issuer和signInType才是判断核心。另外,如果你能拿到用户的ID Token,也可以直接解析令牌里的iss(颁发者)字段:MSA的颁发者是固定的租户ID 9188040d-6c67-4c5b-b112-36a304b66dad,而组织账户的iss会是对应的企业租户ID。
内容的提问来源于stack exchange,提问作者RickWeb
相关产品推荐
相关产品推荐

