拥有O365家庭版的来宾用户如何通过MS Graph Explorer访问SharePoint站点?
一、配置必要的Graph权限
来宾用户默认没有全局站点搜索权限,得先搞定权限:
- 委派权限:引导user1在Graph Explorer的「权限」面板里添加并同意
Sites.Read.All或Sites.ReadWrite.All权限。注意管理员要先在Azure AD的「外部协作设置」里开启“允许来宾用户同意应用访问其自身数据”,或者提前审批user1的权限请求。 - 应用权限(如果用应用身份访问):管理员在Azure AD里给应用分配针对目标站点的
Sites.Read.All权限,再把user1添加到应用的访问列表里。
二、放弃全局搜索,直接用站点具体信息构造请求
来宾用户用/sites?search=*搜不到站点,因为没有组织内全局站点的访问权限,得用目标站点的具体ID或URL来调用接口:
- 先找站点ID:让组织内用户user2调用
/sites?search=*拿到目标站点的id,或者管理员在SharePoint站点设置里查看。 - 用站点ID构造请求:
- 获取文档库:
GET https://graph.microsoft.com/v1.0/sites/{siteId}/drives - 获取文档库根目录内容:
GET https://graph.microsoft.com/v1.0/sites/{siteId}/drives/{driveId}/root/children - 获取文件夹子项:
GET https://graph.microsoft.com/v1.0/sites/{siteId}/drives/{driveId}/items/{itemId}/children
- 获取文档库:
- 也可以直接用站点URL访问:
GET https://graph.microsoft.com/v1.0/sites/{租户名}.sharepoint.com:/sites/{站点名}:/drives
三、调整Azure AD来宾用户权限策略
管理员要在Azure AD里做这些设置:
- 进入Azure AD门户 → 「外部标识」→「外部协作设置」
- 确保勾选“允许来宾用户同意应用访问其自身数据”(如果用委派权限)
- 要是用应用权限,得确认应用已被授予目标站点的访问权限,且user1能访问该应用
四、Graph Explorer登录与权限确认
user1在Graph Explorer操作时注意:
- 用完整的来宾账号登录(格式一般是
user1@outlook.com#EXT#@{租户名}.onmicrosoft.com) - 登录后一定要在「权限」面板里添加并同意所需的站点权限,没同意的话接口会报错
- 如果权限申请需要审批,得提前让管理员处理
内容的提问来源于stack exchange,提问作者Pierre
相关产品推荐
相关产品推荐

