SharePoint Server 身份验证概述

 

**上一次修改主题:**2017-06-21

**摘要:**了解 SharePoint Server 2013 和 SharePoint Server 2016 中的用户身份验证、应用程序身份验证和服务器到服务器身份验证的工作方式。

SharePoint Server 要求对以下类型的交互进行身份验证:

  • 访问本地 SharePoint 资源的用户

  • 访问本地 SharePoint 资源的应用程序

  • 访问本地 SharePoint 资源的本地服务器,反之亦然

本文内容:

  • 用户身份验证

  • 应用程序身份验证

  • 服务器到服务器身份验证

SharePoint Server 中的用户身份验证

用户身份验证可根据身份验证提供程序对用户身份进行验证,该提供程序是包含用户凭据的目录或数据库,可验证用户提交的凭据是否正确。当用户尝试访问 SharePoint 资源时即会进行用户身份验证。

SharePoint Server 支持基于声明的身份验证。

基于声明的身份验证结果是一个基于声明的安全令牌,该令牌由 SharePoint Security Token Service (STS) 生成。

SharePoint Server 支持 Windows、基于表单和基于安全声明标记语言 (SAML) 的声明身份验证。有关这三种身份验证方法的工作方式,请参阅以下视频。

备注

视频中的信息适用于 SharePoint Server 2013 和 SharePoint Server 2016。

SharePoint Server 2013 和 2016 中的 Windows 声明身份验证视频

SharePoint Server 2013 和 2016 中的基于表单的声明身份验证视频

SharePoint Server 2013 和 2016 中的基于 SAML 的声明身份验证视频

有关详细信息,请参阅在 SharePoint Server 中计划用户身份验证方法.

SharePoint Server 中的应用程序身份验证

应用程序身份验证可验证远程 SharePoint 应用程序的标识,以及授权该应用程序和关联用户对受保护 SharePoint 资源的请求。当 SharePoint 商店应用程序或应用程序目录应用程序的外部组件(如位于 Intranet 或 Internet 的 Web 服务器)尝试访问受保护的 SharePoint 资源时会进行应用程序身份验证。

例如,假定用户打开一个包含 SharePoint 应用程序 IFRAME 的 SharePoint 页面,而该 IFRAME 需要外部组件(例如,位于 Intranet 或 Internet 上的服务器)来访问受保护的 SharePoint 资源,以便呈现该页面。SharePoint 应用程序的外部组件必须经过验证和授权,这样 SharePoint 才会提供请求的信息,该应用程序才会为用户呈现页面。

请注意,如果 SharePoint 应用程序不要求 SharePoint 受保护资源来为用户呈现页面,则不需要进行应用程序身份验证。例如,提供天气预报信息且只需要访问 Internet 上的天气信息服务器的 SharePoint 应用程序就不必使用应用程序身份验证。

应用程序身份验证由两个过程组成:

  • 身份验证

    验证应用程序是否使用了正确的常用受信任身份代理进行注册

  • 授权

    验证发出访问请求的应用程序和关联用户是否具有执行其操作(如访问文件夹、列表或者执行查询)的相应权限

若要执行应用程序身份验证,应用程序需要从 Microsoft Azure Access Control Service (ACS) 或通过使用 SharePoint Server 信任的证书自签名访问令牌来获得访问令牌。该访问令牌声明对特定 SharePoint 资源的访问请求,并且包括标识应用程序和关联用户的信息,而不验证用户凭据。访问令牌不是登录令牌。

对于 SharePoint 商店应用程序,下面是身份验证过程的一个示例:

  1. 用户打开一个包含须通过 SharePoint 商店应用程序呈现的 IFRAME 的 SharePoint 网页,该应用程序承载在 Internet 上并将 ACS 用作其信任代理。若要为用户呈现 IFRAME,SharePoint 商店应用程序必须访问 SharePoint 资源。

  2. SharePoint STS 从 ACS 请求并接收上下文令牌。

  3. SharePoint 将请求的网页与上下文令牌一起发送到用户的 Web 浏览器。

  4. 用户的 Web 浏览器将对 IFRAME 内容和上下文令牌的请求发送到位于 Internet 上的 SharePoint 商店应用程序服务器。

  5. SharePoint 商店应用程序服务器从 ACS 请求和接收访问令牌。

  6. SharePoint 商店应用程序服务器将 SharePoint 资源请求和访问令牌发送到 SharePoint 服务器。

  7. SharePoint 服务器授予访问权限、检查应用程序的权限(即安装应用程序时所指定的权限)以及关联用户的权限。

  8. 如果允许,SharePoint 会将请求的数据发送到 Internet 上的 SharePoint 商店应用程序服务器。

  9. Internet 上的 SharePoint 商店应用程序服务器会将 IFRAME 结果发送到 Web 浏览器,以便向用户呈现页面的 IFRAME 部分。

请注意 SharePoint 商店应用程序如何无需获取用户凭据即可访问 SharePoint 服务器资源。该访问通过 ACS 进行身份验证,受到运行 SharePoint Server 且通过一组应用程序和用户权限授权的服务器的信任。

对于 SharePoint 应用程序目录应用程序,下面是身份验证过程的一个示例:

  1. 用户打开一个包含须通过应用程序目录应用程序呈现的 IFRAME 的 SharePoint 网页,该应用程序承载在 Intranet 上并将自签名证书用作其访问令牌。若要为用户呈现 IFRAME,应用程序目录应用程序必须访问 SharePoint 资源。

  2. SharePoint 将请求的页面与 IFRAME 一起发送到用户的 Web 浏览器。

  3. 用户的 Web 浏览器将对 IFRAME 内容的请求发送到 Intranet 上的应用程序目录应用程序服务器。

  4. 应用程序目录应用程序服务器验证用户身份,生成访问令牌并使用其自签名证书对其进行签名。

  5. 应用程序目录应用程序服务器将 SharePoint 资源请求和访问令牌发送到 SharePoint 服务器。

  6. SharePoint 服务器授予访问权限、检查应用程序的权限(即安装应用程序时所指定的权限)以及关联用户的权限。

  7. 如果允许,SharePoint 服务器会将请求的数据发送到 Intranet 上的应用程序目录应用程序服务器。

  8. 应用程序目录应用程序服务器会将 IFRAME 结果发送到 Web 浏览器,以便向用户呈现页面的 IFRAME 部分。

备注

应用程序目录应用程序可以将 ACS 或自签名证书用于其访问令牌。

有关详细信息,请参阅在 SharePoint Server 中规划应用身份验证.

SharePoint Server 中的服务器到服务器身份验证

服务器到服务器身份验证可验证服务器的资源请求,该验证基于在运行 SharePoint Server 的服务器的 STS 与支持 OAuth 服务器到服务器协议的另一台服务器的 STS 之间建立的信任关系,比如运行 SharePoint Server、Exchange Server 2016、Skype for Business 2016 或 Azure Workflow Service 的本地服务器和在 Office 365 中运行的 SharePoint Server 之间。基于此信任关系,请求服务器可以根据服务器和用户权限,代表指定用户帐户访问 SharePoint 服务器上的受保护资源。

例如,运行 Exchange Server 2016 的服务器可以为特定用户帐户请求运行 SharePoint Server 的服务器的资源。这与应用程序身份验证形成了鲜明对比,在应用程序身份验证中,应用程序无权访问用户帐户凭据信息。用户当前登录到服务器后是否能够进行资源请求,具体取决于服务和请求。

当运行 SharePoint Server 的服务器尝试访问某服务器上的资源或某服务器尝试访问运行 SharePoint Server 的服务器上的资源时,必须对传入访问请求进行身份验证,以便服务器接受传入访问请求和后续数据。服务器到服务器身份验证可验证运行 SharePoint Server 的服务器和所代表的用户是否受信任。

用于服务器到服务器身份验证的令牌是一个服务器到服务器令牌,而不是登录令牌。服务器到服务器令牌包含有关请求访问权限的服务器和服务器所代表的用户帐户的信息。

对于本地服务器,下面是一个基本过程示例:

  1. 用户打开一个从另一台服务器请求信息的 SharePoint 网页(例如,显示 SharePoint Server 和 Exchange Server 2016 中的任务列表)。

  2. SharePoint Server 生成服务器到服务器令牌。

  3. SharePoint Server 将服务器到服务器令牌发送到其他服务器。

  4. 其他服务器验证 SharePoint 服务器到服务器令牌。

  5. 其他服务器向 SharePoint Server 发送一条消息,指示所发送的服务器到服务器令牌是有效令牌。

  6. 运行 SharePoint Server 的服务器上的服务访问该服务器上的数据。

  7. 运行 SharePoint Server 的服务器上的服务向用户呈现页面。

当两台服务器均在 Office 365 中运行时,过程示例如下所示:

  1. 用户打开一个从另一台服务器请求信息的 SharePoint 网页(例如,显示 SharePoint Online 和 Exchange Online 中的任务列表)。

  2. SharePoint Online 从 ACS 请求和接收服务器到服务器令牌。

  3. SharePoint Online 将服务器到服务器令牌发送到 Office 365 服务器。

  4. Office 365 服务器使用 ACS 验证服务器到服务器令牌中的用户标识。

  5. Office 365 服务器向 SharePoint Online 发送一条消息以指示所发送的服务器到服务器令牌是有效令牌。

  6. SharePoint Online 上的服务访问 Office 365 服务器上的数据。

  7. SharePoint Online 上的服务向用户呈现页面。

有关详细信息,请参阅规划 SharePoint Server 中的服务器到服务器身份验证.