如何通过MS Graph API判断用户是否在SharePoint权限组及文件访问权限?
直接通过MS Graph API判断用户是否属于SharePoint组
你可以完全通过MS Graph API完成用户组归属的判断,无需配置SharePoint API的OAuth连接,步骤如下:
- 从文件权限接口
/permissions返回的grantedToV2字段中,提取目标SharePoint组的id(GUID格式) - 调用MS Graph的
/users/{user-id}/memberOf接口,传入待验证用户的ID,获取该用户所属的所有组列表 - 将获取到的组ID列表与文件权限中的组ID做比对,即可确认用户是否属于这些SharePoint组
需要注意,你的MS Graph应用需要具备User.Read.All和Group.Read.All应用权限(或对应的委托权限,根据认证模式选择),SharePoint组在Graph中会被归类为统一组,memberOf接口会自动返回这类组信息。
若组归属判断存在限制,直接验证用户对文件的权限
如果不想通过组归属间接推导,也可以直接用MS Graph API验证用户对文件的具体权限:
- 获取有效权限明细:调用
/drives/{drive-id}/items/{item-id}/getEffectivePermissions接口,该接口会返回用户对文件的所有有效权限(包括继承自组的权限),返回结果的roles字段会明确标注用户拥有的权限类型,比如read、write、owner - 针对性验证权限:使用
/drives/{drive-id}/items/{item-id}/checkPermissions接口,传入要验证的权限值(如read),接口会直接返回用户是否具备该权限
这两个接口需要的应用权限为Files.Read.All或Files.ReadWrite.All(或对应委托权限),无需额外配置SharePoint专属的OAuth连接。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

