适用于: 开发 人员
使用本文规划 SharePoint Embedded 应用程序的身份验证和授权。
SharePoint Embedded 应用程序使用 Microsoft Graph 访问容器和内容。
有关完整的身份验证参考,请参阅 SharePoint Embedded 身份验证和授权。
核心原则
SharePoint Embedded 身份验证和授权遵循以下原则:
- 应用程序通过 Microsoft Graph 与 SharePoint Embedded 交互。
- 应用程序需要容器类型应用程序权限才能访问该容器类型的容器。
- 当代表用户使用访问权限时,应用程序只能访问用户所属的容器。
- 当在没有用户的情况下使用访问权限时,应用程序可以访问由其容器类型应用程序权限启用的所有容器。
- 应用程序应尽可能代表用户使用访问权限来增强安全性和问责制。
先决条件
计划:
- Microsoft Entra ID应用程序注册。
- Microsoft Entra ID租户中的Microsoft 365 订阅。
- Microsoft SharePoint Embedded 操作的 Graph 权限。
- 通过容器类型注册授予的容器类型应用程序权限。
- 管理员使用租户中的同意。
权限层
SharePoint Embedded 访问具有多个层。
| 层 | 用途 |
|---|---|
| Microsoft Graph 权限 | 允许应用程序调用 SharePoint Embedded 终结点。 |
| 容器类型应用程序权限 | 允许应用访问特定容器类型的容器。 |
| 容器权限 | 确定用户可以在特定容器中执行哪些操作来进行委派访问。 |
重要
Microsoft Graph 权限本身不会授予对容器的访问权限。 还必须向应用程序授予对容器类型的权限。
委派访问
委托访问意味着应用程序代表用户执行操作。
代表用户的 SharePoint Embedded 操作需要Microsoft Graph FileStorageContainer.Selected 委托权限。
此委派权限不需要对使用租户进行管理员同意。
用户还必须具有容器权限。
应用程序的有效权限是以下各项的交集:
- 为容器类型授予的应用程序权限。
- 用户对容器的权限。
尽可能使用委托访问。
委派访问权限提高了可审核性,因为操作可以与用户关联。
仅限应用的访问权限
仅限应用的访问权限意味着应用程序在没有用户的情况下执行操作。
没有用户的 SharePoint Embedded 操作需要 Microsoft Graph FileStorageContainer.Selected 应用程序权限。
此权限需要对使用租户的管理员同意。
使用仅限应用的访问权限,应用可以访问其容器类型应用程序权限启用的所有容器。
对无法代表用户执行的后台操作使用仅限应用的访问权限。
授予容器类型应用程序权限时应用最小特权。
管理员许可
使用租户上的管理员必须同意应用程序的权限请求。
应用程序FileStorageContainer.Selected权限需要管理员同意。 委托 FileStorageContainer.Selected 不需要管理员同意。
容器类型注册还要求拥有应用程序同意才能在使用租户中操作。
有关容器类型注册,请参阅 注册文件存储容器类型应用程序权限。
Microsoft Graph) (容器类型权限
容器类型创建、管理和注册现在Microsoft Graph 操作。 规划以下权限:
| 权限 | 用途 | Tenant |
|---|---|---|
FileStorageContainerType.Manage.All |
在拥有租户上创建和管理容器类型。 | 仅拥有 |
FileStorageContainerTypeReg.Selected |
在使用租户上注册容器类型。 | 消费 |
FileStorageContainer.Selected |
访问使用租户上的容器类型的容器。 | 消费 |
FileStorageContainerType.Manage.All 是 委托 的权限, 不需要管理员同意。 拥有租户中的任何非来宾用户都可以同意它,使用它创建容器类型,然后自动分配为 该容器类型的所有者。 (2026 年 6 月之前,这需要 SharePoint 嵌入式管理员或全局管理员角色。)
重要
FileStorageContainerType.Manage.All 仅在 拥有 租户上需要创建容器类型。 在分发到使用租户之前将其从应用程序清单中删除,这样客户就不会要求过多的权限。 使用租户时,仅 FileStorageContainerTypeReg.Selected 请求 和 FileStorageContainer.Selected。
容器类型应用程序权限
容器类型应用程序权限由所有者应用程序通过容器类型注册授予。
这些权限定义应用程序可以对容器类型的容器执行的操作。
容器类型应用程序权限包括:
NoneReadContentWriteContentCreateDeleteReadWriteEnumeratePermissionsAddPermissionsUpdatePermissionsDeletePermissionsDeleteOwnPermissionManagePermissionsManageContentFull
仅授予应用程序所需的权限。
例如,如果后台来宾应用只需要备份或分析的读取访问权限,则不要授予 Full 该应用。
容器权限
容器权限适用于用户。
它们仅适用于代表用户进行访问。
访问容器的任何用户都必须是容器的成员。
容器成员身份授予该容器的用户权限。
SharePoint Embedded 支持以下容器角色:
| Role | 摘要 |
|---|---|
| 读者 | 读取容器的属性和内容。 |
| 作家 | 读取者权限以及创建、更新和删除内容以及更新适用的容器属性。 |
| Manager | 编写器权限以及管理容器的成员身份。 |
| 所有者 | 管理员权限和删除容器。 |
当用户通过委托的调用创建新容器时,会自动为该用户分配“所有者”角色。
容器类型所有者
容器类型所有者不同于容器所有者。 它们控制 拥有 租户中的容器类型本身。
- 自动分配:创建容器类型的用户会自动分配为所有者。
-
添加或删除所有者:使用容器类型
permissions关系 (DELETE /storage/fileStorage/containerTypes/{id}/permissionsPOST/ 、beta) 管理每个容器类型最多三个所有者。 -
功能:在
FileStorageContainerType.Manage.All委托模式下,所有者可以创建、读取、更新和删除他们拥有的容器类型,管理其所有者,并创建该类型的容器, (委托调用) 。 - 限制:外部标识 (来宾用户) 不能是容器类型所有者。 所有者信息 仅 存在于拥有租户中,不会在注册时传播到使用租户。
- 有效访问权限:所有者功能是用户权限;有效访问权限是应用的 Graph 权限和所有者角色的交集。
容器类型注册含义
要让拥有的应用程序对使用租户进行操作:
- 拥有的应用必须在使用租户上安装服务主体。
- 必须向拥有应用授予管理员同意才能执行容器类型注册。
- 只有容器类型的拥有应用程序才能调用使用租户中的注册 API。
注册 API 指定拥有的应用和任何来宾应用的权限。
上次成功的注册 API 调用确定使用租户中使用的设置。
异常访问模式
规划不遵循正常 Microsoft Graph 授权模式的操作。
特殊访问模式包括:
- 通过 Microsoft Graph 对拥有租户进行容器类型管理。
- 通过 Microsoft Graph ()
FileStorageContainerTypeReg.Selected对使用租户进行容器类型注册。 - 需要
FileStorageContainer.Manage.All和 SharePoint Embedded 管理员或全局管理员登录用户的管理容器操作。 - Microsoft预览期间需要其他权限的搜索方案。
- 当前需要用户许可证的操作。
在设计特权或搜索密集型功能之前,请查看这些内容。
安全注意事项
- 对于用户驱动操作,首选委派访问权限。
- 仅当服务操作需要时才使用仅限应用的访问权限。
- 在容器类型级别授予最低权限。
- 在容器成员身份级别授予最低权限。
- 在正确的租户中需要管理员同意。
- 将注册视为客户加入的一部分。
- 除非方案需要广泛访问来宾应用,否则请避免访问。
- 与租户管理员一起查看审核和合规性影响。
计划清单
- 注册Microsoft Entra ID应用程序。
- 确定哪些操作使用委托访问。
- 确定哪些操作使用仅限应用的访问权限。
- 请求Microsoft Graph
FileStorageContainer.Selected权限。 - 请求Microsoft Graph
FileStorageContainerType.Manage.All(拥有租户) 和FileStorageContainerTypeReg.Selected(使用租户) 容器类型创建和注册。 - 在每个使用租户中规划管理员同意。
- 定义容器类型应用程序权限。
- 定义用户容器角色。
- 标识任何来宾应用及其权限。
- 查看异常访问模式。
后续步骤
查看规模和性能约束: 了解限制和调用模式。