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

如何从Sharepoint DriveItem权限中解析出邮箱地址?

你在/groups端点查不到这些组是正常的,这些都是SharePoint站点级别的本地组,不属于Azure AD范畴,/groups接口仅返回Azure AD中存储的Microsoft 365组、安全组、通讯组等,不包含SharePoint站点本地组。

以下是获取特定文件所有有权限访问用户的完整方案:

操作步骤

  1. 拆分权限主体类型
    调用https://graph.microsoft.com/v1.0/sites/<site id>/drives/<drive id>/items/<item id>/permissions接口后,对返回的权限条目分两类处理:
    • 直接授权的AAD用户:若grantedTo.user字段包含email属性,可直接提取该邮箱作为有效权限用户。
    • SharePoint站点组:若存在grantedToV2.siteGroup字段,或显示名称为站点默认的所有者/成员/访问者组,属于站点本地组,需要单独查询组内成员。
  2. 查询站点组的成员列表
    对于站点组类型的权限主体,使用如下接口查询组内所有用户:
    https://graph.microsoft.com/v1.0/sites/<site id>/groups/<site group id>/members
    
    其中<site group id>可从grantedToV2.siteGroup.id字段获取,返回结果会直接包含组内所有用户的邮箱、ID、显示名等信息。
  3. 获取站点默认内置组的ID
    你示例中出现的testsite - Eigenaars(站点所有者)、testsite - Bezoekers(站点访问者)、testsite - Leden(站点成员)是站点默认内置组,可先调用如下接口获取站点所有本地组的ID和名称映射:
    https://graph.microsoft.com/v1.0/sites/<site id>/groups
    
    匹配显示名称即可拿到内置组的ID,再按上一步的方式查询组成员。

补充说明

  • 如果需要完整的权限清单,可判断inheritedFrom字段是否为空,非空则说明权限继承自上层文件夹/文档库/站点,可按需递归查询父级资源的权限。
  • 确保你使用的访问令牌拥有Sites.Read.All或更高的SharePoint相关权限,否则查询站点组成员时可能返回无权限或空结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:39:03