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

如何基于任意邮箱地址查找Azure Active Directory中的用户身份

通过邮箱地址定位Azure AD用户主身份的方法

核心逻辑

要通过任意邮箱地址(无论是email字段值还是proxyAddresses中的别名邮箱)找到对应Azure AD用户的主身份,需同时覆盖两种邮箱存储场景,利用Azure AD的查询能力精准匹配。

具体实现方案

1. 使用Microsoft Graph API查询

这是最可靠的标准方式,支持同时匹配email字段和proxyAddresses中的邮箱:

  • 查询请求:
    GET https://graph.microsoft.com/v1.0/users?$filter=(mail eq '{目标邮箱地址}') or (proxyAddresses/any(p: p eq 'smtp:{目标邮箱地址}')) or (proxyAddresses/any(p: p eq 'SMTP:{目标邮箱地址}'))
    
    说明:proxyAddresses中的邮箱会带前缀,小写smtp:对应别名邮箱,大写SMTP:对应用户主邮箱,需同时匹配两种格式。
  • 提取主身份信息:返回的用户对象中,id是用户唯一标识,userPrincipalName为用户主登录名,这两个字段可直接用于内部计费关联。

2. 使用Azure AD PowerShell模块查询

如果习惯用PowerShell操作,可执行以下命令:

  • 命令示例:
    $targetEmail = "user@example.com"
    Get-AzureADUser -Filter "Mail eq '$targetEmail' or proxyAddresses/any(p: p eq 'smtp:$targetEmail') or proxyAddresses/any(p: p eq 'SMTP:$targetEmail')"
    
  • 关键信息提取:从结果中获取ObjectId(用户唯一ID)和UserPrincipalName,用于后续计费系统的身份关联。

3. 注意事项

  • 权限要求:执行查询的账号需拥有User.Read.All或Directory.Read.All权限,才能访问全量用户数据。
  • 重复匹配校验:正常情况下一个邮箱仅对应一个用户,若出现重复结果,需检查Azure AD配置是否存在异常。
  • 主邮箱确认:proxyAddresses中带SMTP:前缀的邮箱与mail字段值一致,可用来验证用户的主身份邮箱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:52:06