SharePoint Embedded 身份验证和授权

若要使用 SharePoint Embedded,应用程序需要使用 Microsoft Graph。 详细了解 Microsoft Graph 身份验证和授权。 详细了解 SharePoint Embedded 体系结构

概述

下面是 SharePoint Embedded 身份验证和授权的一些关键原则:

  • 应用程序通过 Microsoft Graph 与 SharePoint Embedded 交互。
  • 应用程序需要容器类型应用程序权限才能访问该容器类型的容器。
  • 代表用户使用访问权限时,应用程序只能访问用户所属的容器。
  • 在没有用户的情况下使用访问权限时,应用程序可以访问由已授予的容器类型应用程序权限启用的容器。
  • 应用程序尽可能代表用户使用访问权限来增强安全性和可审核性

先决条件

  • Microsoft Entra ID 应用程序注册。 请参阅 注册应用程序
  • Microsoft Entra ID 租户具有 Microsoft 365 订阅

Authorization

SharePoint Embedded 操作通过 Microsoft Graph 公开。 SharePoint Embedded 支持 代表用户进行访问 ,也支持 在没有用户的情况下进行访问

重要

向应用程序授予的 Microsoft Graph 权限允许它调用 SharePoint Embedded 终结点。 但是,必须先向应用程序授予 对容器类型的权限 ,然后才能访问该类型的容器。

代表用户访问

代表用户的 SharePoint Embedded 操作要求应用程序接收 Microsoft Graph FileStorageContainer.Selected 委托权限的同意。 此权限要求管理员同意使用租户,然后租户中的任何用户才能同意该租户。

除了应用程序收到对使用租户的同意 FileStorageContainer.Selected 外,它所代表的用户还需要具有 容器权限。 应用程序拥有的有效权限是应用程序权限和代表用户操作时用户权限的交集。

重要

建议使用代表用户使用 SharePoint Embedded 的方法。 这种类型的访问可增强应用程序的安全性。 它还提高了应用程序执行的操作的可审核性。

在没有用户的情况下访问

没有用户的 SharePoint Embedded 操作要求应用程序接收 Microsoft Graph FileStorageContainer.Selected 应用程序权限的同意。 此权限需要对使用租户的管理员同意。

注意

使用租户上的管理员必须同意应用程序的权限请求。 点击此处了解详细信息。

异常访问模式

目前,有两种类型的操作无法通过 Microsoft Graph 访问:

若要执行 容器类型管理 操作,您必须是 SharePoint Embedded 管理员或全局管理员。

若要注册容器类型,必须请求对Container.SelectedOffice 365 SharePoint Online资源的权限。

作用域名称 范围 ID 类型 操作
Container.Selected 19766c1b-905b-43af-8756-06526ab42875 应用程序 在 SharePoint Embedded 的上下文中,对使用租户启用容器类型注册。

注意

拥有租户上的容器类型管理和对使用租户的注册将很快成为 Microsoft Graph 操作,不再需要此步骤。 请继续关注。

容器类型应用程序权限

SharePoint Embedded 应用程序需要由所有者应用程序授予容器类型应用程序权限,然后才能访问给定容器类型的容器。 容器类型应用程序权限通过 容器类型注册授予应用程序。

权限 说明
无权访问此容器类型的任何容器或内容。
ReadContent 可以读取此容器类型的容器的内容。
WriteContent 可以将内容写入此容器类型的容器。 如果没有 ReadContent 权限,则无法授予此权限。
创建 可以创建此容器类型的容器。
Delete 可以删除此容器类型的容器。
阅读 可以读取此容器类型的容器的元数据。
写入 可以更新此容器类型的容器的元数据。
EnumeratePermissions 可以为此容器类型的容器枚举容器的成员及其角色。
AddPermissions 可以为此容器类型的容器添加成员。
UpdatePermissions 可以更新 (更改此容器类型的容器) 现有成员身份的角色。
DeletePermissions 可以从此容器类型的容器的容器中删除其他成员 (但不能从容器中删除自) 。
DeleteOwnPermissions 可以从此容器类型的容器中删除自己的成员身份。
ManagePermissions 可以在此容器类型的容器的容器角色中添加、删除 (包括自) 或更新成员。
完整 具有此容器类型容器的所有权限。

注意

Microsoft Graph 权限和容器类型应用程序权限的组合包括应用程序的客户端授权。

容器权限

访问容器的任何用户都必须是容器的成员。 容器的成员身份 授予用户容器权限。 这些权限定义用户在给定容器上拥有的访问级别。 容器权限仅适用于代表用户的访问权限,不适用于没有用户的访问权限。 在没有用户的情况下访问容器的 SharePoint Embedded 应用程序获取在其 容器类型应用程序权限 中定义的完全访问权限。

重要

通过委托调用创建新容器的调用用户会自动分配“所有者”角色。

权限 说明
读者 此角色允许用户读取容器的属性和内容。
作家 此角色具有读者拥有的所有权限,以及创建、更新和删除容器内内容以及更新适用容器属性的权限。
Manager 此角色具有编写者拥有的所有权限,以及管理容器成员身份的权限。
所有者 此角色具有管理员拥有的所有权限,以及删除容器的权限。

下一步操作

下面是接下来可以采取的一些操作:

  1. 配置 SharePoint Embedded 应用程序清单 以请求所需权限:
    • Microsoft Graph (resourceAppId: 00000003-0000-0000-c000-000000000000)
      • FileStorageContainer.Selected (类型: Scope、ID: 085ca537-6565-41c2-aca7-db852babc212 访问使用租户上的容器的)
    • Office 365 SharePoint Online (resourceAppId: 00000003-0000-0ff1-ce00-000000000000)
      • Container.Selected (类型: Role、ID: 19766c1b-905b-43af-8756-06526ab42875) ,用于在使用租户上注册容器
  2. 对拥有租户和使用租户 ((可以是同一租户) )向应用程序授予管理员许可
  3. 在拥有的租户上创建新的容器类型
  4. 在使用的租户上注册容器类型
  5. 创建容器