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 内容的作
  • 需要用户许可证的作

重要

请确保了解并考虑这些特殊的访问模式,因为它们可能会对应用程序和其他应用程序访问 SharePoint Embedded 内容的方式产生影响。

未通过 Microsoft Graph 公开的作

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

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

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

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

注意

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

若要在应用程序中使用 SharePoint Embedded 代理 体验 (预览阶段) ,还需要 Container.SelectedOffice 365 SharePoint Online 资源具有 权限。 请注意,如前所述,现在注册容器类型还需要此权限,这意味着您的应用程序必须已获得许可,使其在使用租户中与 SharePoint Embedded 交互。

涉及搜索 SharePoint Embedded 内容的作

这仅指搜索 内容中的搜索方案,而不是枚举方案。

若要对 SharePoint Embedded 内容使用Microsoft搜索,您必须在 之上FileStorageContainer.Selected请求委托Files.Read.AllMicrosoft Graph 权限,通常用于 SharePoint Embedded 访问。 在此功能的预览阶段, Files.Read.All 应用程序权限将授予应用程序对所有 SharePoint Embedded 内容的搜索功能的访问权限。

注意

Microsoft SharePoint Embedded 内容的搜索支持以预览版提供,随时可能更改。 对 SharePoint Embedded 内容进行Microsoft搜索的访问要求将与将来的 SharePoint Embedded 授权模型保持一致。 请继续关注。

需要用户许可证的作

SharePoint Embedded 旨在工作,无需最终用户向其分配任何类型的Microsoft 365 个产品许可证。 但是,某些作尚未遵守此原则。

列出容器

如果代表没有OneDrive for Business站点的用户调用列表容器作,将返回401 Unauthorized响应代码。 计划在不久的将来删除此依赖项。 在没有用户上下文 (仅应用模式) 调用时,这不适用于列表容器作。

在 Office 文档中提及用户

常见的 Office 体验 包括查看文档和向这些文档添加注释。 用户若要显示在人员选取器中 @mentions ,需要为其分配Microsoft 365 许可证。

容器类型应用程序权限

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

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

注意

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

容器权限

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

重要

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

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

下一步作

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

  1. 配置 SharePoint Embedded 应用程序清单 , (可以使用 Entra PowerShellAzure CLI) 请求所需权限:

    • 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. 对拥有租户和使用租户 ((可以是同一租户) )向应用程序授予管理员许可

    注意

    应用程序 Container.Selected 权限已隐藏。 这可能会导致使用Azure 门户中的“企业应用”窗格授予管理员同意时出现问题。 请 改为构造管理员同意 URL 并将其提供给 Entra 目录管理员。 例如:

    https://login.microsoftonline.com/{tenant}/v2.0/adminconsent?client_id={client_id}

    请确保 Entra 目录管理员 确认响应成功

  3. 在拥有的租户上创建新的容器类型

  4. 在使用的租户上注册容器类型

  5. 创建容器