在 SharePoint Server 中计划 Kerberos 身份验证

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

Kerberos 协议支持使用受信任源提供的票证的身份验证方法。 Kerberos 票证代表关联到经身份验证的客户端计算机的用户的网络凭据。 Kerberos 协议定义用户如何通过与网络服务进行交互来获得对网络资源的访问权限。 Kerberos 密钥发行中心 (KDC) 代表用户向客户端计算机颁发授权票证的票证 (TGT)。 在 Windows 中,客户端计算机是 Active Directory 域服务 (AD DS) 域的成员,并且 TGT 证明域控制器对用户凭据进行了身份验证。

在建立与网络服务的网络连接之前,客户端计算机会向 KDC 提供其 TGT 并请求服务票证。 根据之前颁发的 TGT(用于确认客户端计算机是否已经过身份验证),KDC 会向客户端计算机颁发服务票证。 随后客户端计算机将该服务票证提交至网络服务。 服务票证还必须包含用于标识服务的可接受的服务主体名称 (SPN)。 要启用 Kerberos 身份验证,客户端和服务器计算机必须已建立到 KDC 的受信任连接。 客户端和服务器计算机还必须能够访问 AD DS。

Kerberos 身份验证和 SharePoint Server

应考虑选择 Kerberos 身份验证的原因如下:

  • Kerberos 协议是最强大的集成 Windows 身份验证协议,并支持高级安全功能,其中包括客户端和服务器的高级加密标准 (AES) 加密和相互身份验证。

  • Kerberos 协议允许委派客户端凭据。

  • 在可用的安全身份验证方法中,Kerberos 需要的域控制器网络流量最少。 Kerberos 可减少某些情况下的页面延迟,或增加某些情况下前端 Web 服务器可处理的页面的数量。 Kerberos 还可降低域控制器上的负载。

  • Kerberos 协议是一个受许多平台和供应商支持的开放式协议。

Kerberos 身份验证可能不合适的原因如下:

  • 与其他身份验证方法不同,Kerberos 身份验证需要额外的基础结构和环境配置才能正常运行。 在许多情况下,需要域管理员权限才能配置 Kerberos 身份验证,这可能难以设置和管理。 Kerberos 配置不当可能会阻止对您的网站的成功验证。

  • Kerberos 身份验证需要客户端计算机连接到 KDC 和 AD DS 域控制器。 在 Windows 和 SharePoint 部署中,KDC 是一个 AD DS 域控制器。 虽然这在组织 Intranet 中是常见的网络配置,但通常不通过此方式配置面向 Internet 的部署。

Kerberos 委派

Kerberos 身份验证支持客户端标识委派。 这意味着服务可模拟已验证客户端的标识。 模拟使服务能够代表客户端将已验证标识传递给其他网络服务。 基于声明的身份验证还可用于委派客户端凭据,但要求后端应用程序可以识别声明。

通过与 SharePoint Server 结合使用,Kerberos 委派可以让前端服务验证客户端,然后使用客户端的标识验证后端系统。 后端系统随后会执行自己的身份验证。 当客户端使用 Kerberos 身份验证对前端服务进行身份验证时,Kerberos 委派可用于将客户端的标识传递给后端系统。 Kerberos 协议支持以下两种类型的委派:

  • 基本 Kerberos 委派(非约束)

  • Kerberos 约束委派

基本 Kerberos 委派和 Kerberos 约束委派

基本 Kerberos 委派可以跨越同一林中的域边界,但不能跨越林边界。 Kerberos 约束委派既不能跨越域边界,也不能跨越林边界,除非要使用运行 Windows Server 2012 的域控制器。

对 SharePoint Server 实现 Kerberos 身份验证可能需要约束委派,具体视 SharePoint Server 部署包含的服务应用程序而定。

重要

若要使用以下任何服务应用程序部署 Kerberos 身份验证,SharePoint Server 和所有外部数据源必须驻留在同一 Windows 域中: > Excel Services > PerformancePoint Services > InfoPath Forms Services > Visio Services > 这些服务应用程序在 SharePoint Foundation 2013 中不可用。 Excel Services 在 SharePoint Server 2016 中不可用。

若要对以下任一服务应用程序或产品部署 Kerberos 身份验证,SharePoint Server 可使用基本 Kerberos 委派或 Kerberos 约束委派:

  • Business Data Connectivity Service(此服务应用程序在 SharePoint Foundation 2013 中不可用)

  • Access Services(此服务应用程序在 SharePoint Foundation 2013 中不可用)

  • SQL Server Reporting Services (SSRS)(单独产品)

  • Project Server 2016(单独产品)

为 Kerberos 身份验证启用的服务可以多次委托标识。 当标识从服务传递到服务时,委派方法可以从基本 Kerberos 更改为受约束的 Kerberos。 但是,这是不可能的。 委派方法无法从约束 Kerberos 更改为基本 Kerberos。 因此,必须预测和规划后端服务是否需要基本的 Kerberos 委派。 这可能会影响域边界的规划和设计。

启用了 Kerberos 的服务可使用协议转换来将非 Kerberos 标识转换为可委派给其他启用了 Kerberos 的服务的 Kerberos 标识。 例如,此功能可用于将前端服务中的非 Kerberos 标识委派给后端服务中的 Kerberos 标识。

重要

协议转换需要 Kerberos 约束委派。 因此,经过协议转换的标识不能跨越域边界。

基于声明的身份验证可用作 Kerberos 委派的替代方案。 利用基于声明的身份验证,客户端的身份验证声明能在不同的服务之间传递,前提是它们满足所有以下条件:

  • 两个服务之间必须存在信任关系。

  • 这些服务必须都可以识别声明。

有关 Kerberos 身份验证的详细信息,请参阅以下资源:

Kerberos 身份验证和基于声明的身份验证

SharePoint 2013 和 SharePoint Server 2016 支持基于声明的身份验证。 基于声明的身份验证是在 Windows Identity Foundation (WIF)(一组用于实现基于声明的标识的 .NET Framework 类)基础之上构建而成。 基于声明的身份验证依赖 WS 联合身份验证和 WS-Trust 等标准。 有关基于声明的身份验证的详细信息,请参阅以下资源:

When you create a SharePoint Server web application by using Central Administration, you must select one or more claims-based authentication types. When you create a SharePoint Server web application by using the New-SPWebApplication Microsoft PowerShell cmdlet, you can specify either claims authentication and claims authentication types or classic mode authentication. Claims authentication is recommended for all SharePoint Server web applications. By using claims authentication, all supported authentication types are available for your web applications and you can take advantage of server-to-server authentication and app authentication. For more information, see What's new in authentication for SharePoint Server 2013.

重要

The following service applications in SharePoint Server require the translation of claims-based credentials to Windows credentials. 此转换过程使用声明到 Windows 令牌服务 (C2WTS) : >Excel Services>PerformancePoint Services>InfoPath Forms Services>Visio Services>> 这些服务应用程序在 SharePoint Foundation 2013 中不可用。 Excel Services is not available in SharePoint Server 2016.

需要 C2WTS 的服务应用程序必须使用 Kerberos 约束委派,因为 C2WTS 需要协议转换,而只有 Kerberos 约束委派才支持协议转换。 对于前面列表中的服务应用程序,C2WTS 会将服务器场中的声明转换为 Windows 凭据以进行传出身份验证。 请务必了解,仅当传入身份验证方法是 Windows 声明或 Windows 经典模式时,这些服务应用程序才能使用 C2WTS。 通过 Web 应用程序访问的服务应用程序和使用安全声明标记语言 (SAML) 声明或基于表单的身份验证声明的服务应用程序不使用 C2WTS。 因此,它们无法将声明转换为 Windows 凭据。

Kerberos 身份验证和新的 SharePoint 应用程序模型

如果使用 Windows 声明模式进行用户身份验证,并且 Web 应用程序配置为仅使用 Kerberos 身份验证而不回退到将 NTLM 作为身份验证协议,则应用程序身份验证将无法工作。 有关详细信息,请参阅在 SharePoint Server 中规划应用身份验证

另请参阅

概念

在 SharePoint Server 中计划用户身份验证方法