创建 SharePoint Embedded 应用程序
开发人员可以通过 SharePoint Embedded 创建利用 SharePoint 中强大的文件和文档管理功能的应用程序。 这些类型的应用程序有两个不同的组件。
- 一个组件负责使用 Microsoft Graph API 对 SharePoint Embedded 执行 CRUD 操作。
- 另一个组件实现 接口,让用户使用和存储存储在 SharePoint Embedded 中的文档。
SharePoint Embedded 简介
SharePoint Embedded 为开发人员提供了一种创建文件和文档重点应用程序的更快方法。 SharePoint Embedded 由 SharePoint 提供支持。 开发人员可以集成 SharePoint 在其自己的自定义应用程序中提供的相同强大文件和文档功能。
查看 SharePoint Embedded 的另一种方法是,自定义应用程序将 SharePoint 用于所有文档存储和协作功能。 这有效地使用 SharePoint Embedded 作为 SharePoint 文档存储系统的“无外设 API”。
应用文档保留在 Microsoft 365 租户中
当使用者在其 Microsoft 365 租户中安装/注册 SharePoint Embedded 应用程序时,SharePoint Embedded 会创建另一个 SharePoint 分区。 此存储分区没有用户界面,但只能通过 API 访问分区中的文档。 这意味着,ISV 或开发人员的应用程序可以访问所有文档,但文档将仅驻留在使用者的 Microsoft 365 租户中。
使用者 Microsoft 365 设置应用于应用文档
存储在 SharePoint Embedded 应用程序创建的 SharePoint 分区中的所有文档都位于使用者的 Microsoft 365 租户中,因此受使用者的 Microsoft 365 租户设置的约束。
了解不同类型的应用权限和代理流
创建用于访问 REST API(如 Microsoft Graph 和 SharePoint Online)的应用程序时,不同的任务需要不同类型的访问权限。 为了解决此问题,OAuth v2.0 是用于 API 访问(包括 Microsoft Graph 和 SharePoint Online)的授权的开放标准。 它代表用户为应用程序提供对受保护资源的委派访问权限。 这包括两种类型的权限: 应用+用户 (也称为委派) 和 仅应用 (或应用程序) 。
应用+用户 (或委托) 权限:此模型是关于两方权限模型。 应用程序代表已登录用户执行任务并调用 API。 应用程序从登录应用程序的用户那里获取委托的权限,继承用户拥有的权限,包括无法访问某些数据或执行某些操作等任何限制。 这些反映了用户允许应用在其会话期间代表他们执行的任务。
例如,可能向应用授予代表用户发送电子邮件的权限,但如果用户无权发送电子邮件,则该应用也无法发送电子邮件。
当你希望应用像登录用户一样操作时,通常使用此类型的权限,在交互是代表用户且权限应因授予同意的用户而异的应用程序方案中。
仅限应用 (或应用程序) 权限:相反,当应用需要独立于用户访问资源时,将使用仅限应用的权限。 无论用户权限如何,应用程序都会获取直接授予自身的权限。 它允许应用程序使用自己的标识和特权访问 API 服务。 这非常适合独立于用户会话运行的后台服务或守护程序。
例如,如果你有一个需要访问文档库中所有文件的应用程序,即使是未与任何用户共享的文件,则仅限应用的权限将是正确的选择。
应用程序权限只能由管理员同意,因为它们通常授予更高的权限。
除了这两个选项之外,当应用程序需要代表用户执行任务 时,可以使用 第三个 OAuth 2.0 流“代表 (也称为 OBO 流) 。 下面是整个 OBO 流的工作原理:
- 客户端应用程序向授权服务器 ((如 Microsoft Entra ID) )进行身份验证,并请求 API ((例如项目 API 服务器) )的访问令牌。
- 用户登录并允许应用程序代表他们进行操作。
- 客户端应用程序接收表示用户会话的访问令牌和刷新令牌。
- 当客户端应用程序需要代表用户调用其他服务(如 SharePoint Online)时,它会发送它之前在 HTTP 标头中
Authorization
获取的访问令牌。 - 我们的服务器端 API 验证访问令牌并处理请求。 如果需要代表用户调用另一个服务 ((如 SharePoint Online) ),它将通过提供已获取的令牌从 Microsoft Entra ID 提取令牌。
- Microsoft Entra ID 为 SharePoint Online 颁发一个“新”访问令牌,项目 API 服务器现在可以使用该令牌来调用 SharePoint Online。
在处理 Microsoft Graph 或 SharePoint Online 的实际方案中,当用户希望应用访问其日历时,让应用程序登录每个操作并不理想。 相反,对于 OBO 流,用户只需进行身份验证一次,应用程序将代表他们执行所有授权的操作。
因此,OBO 流可确保每次调用链时都验证权限,从而简化用户体验并增强系统的安全性。
摘要
在本部分中,你已完成创建 Web 应用程序的初始步骤,该应用程序将在 SharePoint Embedded 容器上执行 CRUD 操作。