SharePoint 加载项的授权和身份验证

用户登录到 SharePoint 时,说明用户的安全令牌已经过验证。 令牌由标识提供程序颁发。 SharePoint 支持多种类型的用户身份验证。 有关详细信息,请参阅 SharePoint 中的身份验证、授权和安全性

SharePoint 加载项也是需要进行身份验证和授权的安全主体。 可以通过若干种不同的方法对加载项进行身份验证和授权。 有关详细信息,请参阅 SharePoint 加载项的三个授权系统。)

授权策略:仅用户策略、仅加载项策略,或用户+加载项策略

授权过程验证经过身份验证的使用者(用户或加载项或两者)是否有权执行某些操作或访问特定资源(例如列表或 SharePoint 文档文件夹)。

SharePoint 使用三种类型的授权策略:

  • 仅用户策略要求对 SharePoint 的调用仅包含已通过身份验证的用户标识。

  • 仅加载项策略要求调用仅包含已通过身份验证的加载项标识。

  • 用户+加载项策略要求调用包含两种类型的已通过身份验证的标识。

当用户通过 SharePoint UI(而非加载项)访问 SharePoint 资源时,SharePoint 使用仅用户策略。 但是,对于从 SharePoint 加载项发出的调用,SharePoint 使用仅加载项策略或用户+加载项策略。

SharePoint 加载项确定包含在对 SharePoint 的请求中的访问令牌类型使用哪种策略。 如果发出用户+加载项请求,则 SharePoint 要求加载项和用户都具有对加载项所访问资源的权限。 如果是仅加载项请求,SharePoint 要求加载项具有对资源的权限,但用户是否具有权限则不重要。 (仅当 SharePoint 加载项被事先授予执行此操作的权限时,才能发出仅加载项请求;通常是在其已安装的情况下。)

有关授权策略以及策略工作方式的详细信息,请参阅 SharePoint 中的加载项授权策略类型

加载项权限和加载项权限请求范围

SharePoint 加载项开发人员必须通过加载项清单文件,指定加载项对加载项 Web 外部的 SharePoint 资源所需的权限。 (加载项自动拥有整个加载项 Web 的完全控制权限。)当加载项设计为从 SharePoint 内部启动时,加载项安装基础结构会提示安装加载项的用户授予或拒绝所需的权限。 授予权限后,网站用户即可使用加载项,无需重新授予权限。

但是,当加载项设计为从 SharePoint 外部启动,即未在 SharePoint 上安装时,SharePoint 会提示执行加载项的用户在每次加载项运行时授予所需的权限。 移动设备上的加载项和 Office 加载项是可以访问 SharePoint 的加载项示例,但未在其上安装。

只有网站所有者可以在 SharePoint 网站上安装 SharePoint 加载项(除非已创建具有加载项安装权限的自定义角色)。 用户只能向加载项授予用户自己所具有的权限。 因此,用户无法安装需要用户所不具备的权限的加载项。

同样,用户无法运行需要用户所不具备的权限的外部启动的加载项。 但是,当 SharePoint 加载项已在 SharePoint 上安装时,它可以请求发出仅加载项调用的权限。 具有该权限的加载项可以通过运行加载项的用户没有权限执行此操作的方式访问 SharePoint。

加载项还可以由 SharePoint Online 租户管理员或 SharePoint 场管理员撤销或授予权限。

在加载项清单文件中,SharePoint 加载项指定它正确运行所需的权限。 权限请求指定加载项所需的权限以及它们需要权限的范围。 范围指定了 SharePoint 层次结构中应用权限请求的位置。

SharePoint 支持四种不同的内容范围:租赁、网站集、网站和列表。 还有一些适用于执行搜索查询、访问分类数据、社交功能、Microsoft Business Connectivity Services (BCS) 功能和 Project Server 2013 功能的特殊范围。

有关详细信息,请参阅 SharePoint 中的加载项权限

何时使用 OAuth?

你可能已听说 OAuth 2.0 在 SharePoint 加载项的身份验证和授权中扮演着重要角色。确实如此,但这并不一定是每个 SharePoint 加载项授权过程的必要组成部分。

如果计划生成使用服务器端代码在远程 Web 应用程序中运行并向 SharePoint 回信的 SharePoint 加载项,则需要使用 OAuth。

如果远程 Web 应用程序不在本地,可使用低信任授权系统,其中 Azure ACS 是访问令牌颁发者。

如果是本地部署,则通常使用高信任系统,其中加载项本身和数字证书为访问令牌颁发者。

不应使用 OAuth 从加载项 Web 本身的页面上的 JavaScript 或从使用跨域库的远程网页中进行调用。 有关跨域库的详细信息,请参阅创建使用跨域库的 SharePoint 加载项

另请参阅