Kerberos 约束委派概述

本文介绍 Windows Server 中 Kerberos 约束委派的新功能。

功能说明

Windows Server 中引入了 Kerberos 约束委派,以提供一种更安全的委派形式,可供服务使用。 配置后,受约束委派会限制指定服务器可以代表用户执行作的服务。 这需要域管理员权限才能为服务配置域帐户,并将帐户限制为单个域。 在现代企业中,前端服务不设计为仅与其域中的服务集成。

在早期作系统中,域管理员配置了该服务,服务管理员无法知道哪些前端服务委托给他们拥有的资源服务。 并且可委派给资源服务的任何前端服务都代表了一个潜在的攻击点。 如果托管前端服务的服务器受到安全威胁,并且它已配置为委派给资源服务,则资源服务也会受到安全威胁。

在 Windows Server 2012 R2 和 Windows Server 2012 中,为服务配置约束委派的功能将从域管理员转移到服务管理员。这样,后端服务管理员可以允许或拒绝前端服务。

Kerberos 协议的 Windows Server 2012 R2 和 Windows Server 2012 实现包括专门用于约束委派的扩展。 Service for User to Proxy (S4U2Proxy) 允许服务使用其用户 Kerberos 服务票证从密钥发行中心 (KDC) 获得服务票证,以用于后端服务。 这些扩展允许将约束委派配置到后端服务帐户(可在另一域中)。 有关这些扩展的详细信息,请参阅 MSDN 库中的 [MS-SFU]:Kerberos 协议扩展:用户服务和约束委派协议规范 的服务。

实际的应用程序

约束委派允许服务管理员通过限制应用程序服务可以代表用户执行作的位置来指定和强制实施应用程序信任边界。 服务管理员可以配置哪些前端服务账户能委派到其后端服务。

Microsoft Internet 安全和加速(ISA)服务器、Microsoft Forefront Threat Management Gateway、Microsoft Exchange Outlook Web Access(OWA)和 Microsoft SharePoint Server 等前端服务可以使用约束委派向其他域中的服务器进行身份验证。 这将通过使用现有的 Kerberos 基础结构来支持跨域的服务解决方案。 域管理员或服务管理员可以管理 Kerberos 约束委派。

跨域的基于资源的约束委派

当前端服务和资源服务不在同一域中时,Kerberos 约束委派允许你提供约束委派。 服务管理员可以通过指定前端服务的域帐户来配置新委派,这些帐户可以模拟资源服务的帐户对象上的用户。

此更改添加哪些值?

服务可以使用约束委派向其他域中的服务器进行身份验证,而不是使用不受约束的委派。 这为使用现有 Kerberos 基础结构的跨域服务解决方案提供身份验证支持,而无需信任前端服务来委托给任何服务。

这也会将服务器是否应信任委托标识源的决定从委派方域管理员转移到资源所有者。

哪些工作方式不同?

基础协议中的更改允许跨域约束委派。 Kerberos 协议的 Windows Server 2012 R2 和 Windows Server 2012 实现包括对服务(S4U2Proxy)协议的扩展。 这组 Kerberos 协议扩展允许服务使用其用户 Kerberos 服务票证从密钥发行中心 (KDC) 获得服务票证,以用于后端服务。

有关这些扩展的实现信息,请参阅 [MS-SFU]:Kerberos 协议扩展:MSDN 中的用户和约束委派协议规范的服务

有关使用与 Service for User (S4U) 扩展相比提早的票证授予票证 (TGT) 的 Kerberos 委派的基础消息队列的详细信息,请参阅 1.3.3 协议概述 部分(“[MS-SFU]:Kerberos 协议扩展:用户服务和约束委派协议规范”)。

基于资源的约束委派的安全影响

基于资源的约束委派可控制拥有所访问资源的管理员的委派。 这取决于资源服务的属性,而不是受信任委派的服务。 因此,基于资源的约束委派不能使用以前控制协议转换的 Trusted-to-Authenticate-for-Delegation 位。 在执行基于资源的约束委派时,KDC 始终允许协议转换,就像设置了位一样。

由于 KDC 不会限制协议转换,因此两个新的已知 SID 会向资源管理员提供此控制。 这些 SID 标识是否已发生协议转换,并且可以与标准访问控制列表一起使用,以根据需要授予或限制访问权限。

SID Description
AUTHENTICATION_AUTHORITY_ASSERTED_IDENTITY
S-1-18-1
SID,表示客户端的标识由身份验证机构根据拥有客户端凭据的证明进行断言。
SERVICE_ASSERTED_IDENTITY
S-1-18-2
SID,表示客户端标识由服务进行断言。

后端服务可以使用标准 ACL 表达式来确定如何对用户进行身份验证。

如何配置基于资源的约束委派?

若要配置资源服务以允许前端服务代表用户访问资源,请使用 Windows PowerShell cmdlet。

  • 若要检索主体列表,请使用 Get-ADComputerGet-ADServiceAccountGet-ADUser cmdlet 和 Properties PrincipalsAllowedToDelegateToAccount 参数。

  • 若要配置资源服务,请使用 New-ADComputerNew-ADServiceAccountNew-ADUserSet-ADComputerSet-ADServiceAccountSet-ADUser cmdlet 和 PrincipalsAllowedToDelegateToAccount 参数。