规划身份验证和权限

适用于: 开发人员版

使用本文规划 SharePoint Embedded 应用程序的身份验证和授权。

SharePoint Embedded 应用程序使用 Microsoft Graph 访问容器和内容。

有关完整的身份验证参考,请参阅 SharePoint Embedded 身份验证和授权

核心原则

SharePoint Embedded 身份验证和授权遵循以下原则:

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

先决条件

计划:

  • Microsoft Entra ID 应用程序注册。
  • Microsoft Entra ID 租户中的 Microsoft 365 订阅。
  • SharePoint Embedded 操作的 Microsoft Graph 权限。
  • 容器类型:通过容器类型注册授予的应用程序权限。
  • 使用租户中的管理员同意。

权限层

SharePoint Embedded 访问具有多个层。

用途
Microsoft Graph 权限 允许应用调用 SharePoint Embedded 终结点。
容器类型应用程序权限 允许应用访问特定容器类型的容器。
容器权限 确定用户可以在特定容器中执行哪些操作以进行委派访问。

重要

Microsoft Graph 本身的权限不会授予对容器的访问权限。 还必须向应用程序授予对容器类型的权限。

委派的访问权限

委派的访问权限意味着应用程序代表用户执行操作。

代表用户执行 SharePoint Embedded 操作需要 Microsoft Graph FileStorageContainer.Selected 委派的权限。

此委托权限不需要使用租户的管理员同意。

用户还必须具有容器权限。

应用程序的有效权限是以下两项的交叉点:

  • 为容器类型授予的应用程序权限。
  • 用户对容器的权限。

尽可能使用委派的访问权限。

委派访问权限提高了可审核性,因为操作可以与用户关联。

容器创建的机密客户端要求

创建容器需要机 密客户端 应用程序,该应用程序保存客户端密码或证书并保持私密性。 创建使用来自公共客户端应用程序(如单页应用程序、移动应用程序或桌面应用程序)的令牌的调用失败。

规划一个后端组件,当应用的前端是公共客户端时,该后端组件获取令牌并调用 Microsoft Graph。 创建仅应用已满足此要求,因为客户端凭据流是机密的。

有关详细信息,请参阅 公共客户端和机密客户端应用程序

仅限应用的访问权限

仅应用访问意味着应用程序在没有用户的情况下运行。

没有用户的 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 Embedded 管理员或全局管理员角色。)

重要

FileStorageContainerType.Manage.All在拥有 的租户上才需要创建容器类型。 在分发到使用租户之前,请将其从应用程序清单中删除,这样就不会要求客户提供过多的权限。 在使用租户时,请求仅 FileStorageContainerTypeReg.Selected and FileStorageContainer.Selected.

容器类型应用程序权限

容器类型应用程序权限由拥有方应用程序通过容器类型注册来授予。

这些权限定义应用程序可以对容器类型的容器执行的操作。

容器类型应用程序权限包括:

  • None
  • ReadContent
  • WriteContent
  • Create
  • Delete
  • Read
  • Write
  • EnumeratePermissions
  • AddPermissions
  • UpdatePermissions
  • DeletePermissions
  • DeleteOwnPermission
  • ManagePermissions
  • ManageContent
  • Full

仅授予应用程序所需的权限。

例如,如果后台来宾应用只需要对备份或分析的读取访问权限,请不要授予 Full 该应用。

容器权限

容器权限适用于用户。

它们仅适用于代表用户进行访问。

访问容器的任何用户都必须是容器的成员。

容器成员身份授予用户该容器的权限。

SharePoint Embedded 支持以下容器角色:

Role 摘要
读者 读取容器的属性和内容。
作家 读取者权限以及创建、更新和删除内容以及更新适用的容器属性。
Manager 写入者权限以及管理容器的成员身份。
所有者 管理员权限以及删除容器。

当用户通过委派调用创建新容器时,系统会自动为该用户分配“所有者”角色。

容器类型所有者

容器类型所有者不同于容器所有者。 它们管理 拥有 租户中的容器类型本身。

  • 自动分配:创建容器类型的用户会自动分配为所有者。
  • 添加或删除所有者:使用容器类型 permissions 关系 (beta 版) 管理每种容器类型最多 三个 所有者: POST /storage/fileStorage/containerTypes/{id}/permissions 添加所有者,并 DELETE /storage/fileStorage/containerTypes/{id}/permissions/{permissionId} 删除特定所有者权限。
  • 功能:在 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 (使用租户) 用于容器类型创建和注册。
  • 在每个使用租户中计划管理员同意。
  • 定义容器类型应用程序权限。
  • 定义用户容器角色。
  • 确定任何来宾应用及其权限。
  • 查看异常的访问模式。

后续步骤

查看规模和性能约束: 了解限制和调用模式