如何获取Microsoft Teams会议中非本租户的外部用户详细信息
跨租户非本租户用户信息采集实现说明
首先明确两类外部用户的适配方案:
- 已加入当前租户的B2B来宾用户
这类用户在租户目录中存在实体记录,可通过公开接口正常获取详情:- Graph API调用方式:请求
GET https://graph.microsoft.com/v1.0/users/{user-id},申请User.Read.All或Directory.Read.All应用权限即可返回完整用户字段。 - PowerShell调用方式:安装Microsoft Graph PowerShell模块后,执行
Get-MgUser -UserId {来宾用户主体名称/ID}即可获取对应信息。
- Graph API调用方式:请求
- 未加入当前租户的Teams联邦外部用户
这类用户仅和当前租户有Teams团队/会议/聊天交互,未进入租户目录,就是公开API无法获取全量信息的场景:- 微软出于跨租户隐私保护限制,目前未开放公开Graph API可直接拉取这类用户的完整详情,Teams Admin Portal中可查看的内容仅为和本租户有交互记录的有限公开字段,底层调用的是微软未对外开放的Teams内部接口。
- 目前可落地的合规采集方案:
- 调用Teams关联资源接口拉取有限字段:通过
GET https://graph.microsoft.com/v1.0/teams/{团队ID}/members拉取团队外部成员信息,或通过GET https://graph.microsoft.com/v1.0/me/onlineMeetings/{会议ID}/attendanceReports拉取会议出席用户信息,可获取外部用户的显示名、邮箱、Teams ID三个公开字段。 - 本地客户端缓存解析:如果只需采集当前设备上Teams客户端交互过的外部用户信息,可解析本地缓存文件
%appdata%\Microsoft\Teams\IndexedDB\https_teams.microsoft.com_0.indexeddb.leveldb,可获取到客户端本地存储的所有外部用户详情,无需调用云端API。
- 调用Teams关联资源接口拉取有限字段:通过
注意:不存在合规公开接口可拉取未授权非本租户用户的全量隐私信息,所有超出上述字段的采集需求均不符合微软云服务的隐私规则,无法通过公开接口实现。
内容的提问来源于stack exchange,提问作者Palezvar
相关产品推荐
相关产品推荐

