重要
在使用本文中的步骤之前,请先按照 Kerberos 故障排除清单中的步骤进行操作。 Kerberos 问题的最常见原因是基础结构问题和服务主体名称(SPN)问题。 清单可帮助你识别此类问题。
如果目标服务具有单独的前端和后端组件,Kerberos 可以将客户端凭据(包括访问权限)委托给服务帐户。 简单来说,首先客户端访问前端服务,然后前端服务代表客户端访问后端服务。 对于基于资源的约束委派(RBCD),后端服务维护一个服务列表,这些服务被授权可以代表客户端访问它。 此列表与后端服务使用的帐户相关联。 必须使用 Windows PowerShell 来配置此设置。
注释
必须对这些过程使用 ActiveDirectory PowerShell 模块。 若要确保环境具有正确的 PowerShell 模块,请打开 PowerShell 窗口,然后按给定顺序运行以下命令:
Add-WindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory
配置详细信息因前端服务使用的帐户类型而异。 本文为不同类型的服务帐户提供了单独的过程:
使用内置服务帐户时对 Kerberos RBCD 进行故障排除
若要检查后端(资源)服务器委派配置,请打开 Windows PowerShell 命令提示符窗口,然后运行以下 cmdlet:
Get-ADComputer -Identity <BackEndSvcAcct> -PrincipalsAllowedToDelegateToAccount注释
在此命令中, <BackEndSvcAcct> 表示后端服务帐户(在本例中为后端计算机的名称)。
此 cmdlet 检索能够委托给后端服务的主体列表。 执行下列操作之一:
- 如果该列表中包含前端服务正在使用的服务帐户,则 RBCD 配置正确。 跳到步骤 3。
- 如果此列表不包括前端服务正在使用的服务帐户,请转到下一步。
若要在后端服务帐户上配置 RBCD,请运行以下 cmdlet:
Set-ADComputer -AuthType Negotiate -Identity <BackEndSvcAcct> -PrincipalsAllowedToDelegateToAccount <FrontEndSvcAcct>注释
在此命令中, <BackEndSvcAcct> 表示后端服务帐户, <FrontEndSvcAcct> 表示前端服务帐户。
检查前端服务帐户选项。 使用 Active Directory 用户和计算机 (可通过“服务器管理器 工具”菜单使用)执行这些步骤。
- 在 Active Directory 用户和计算机中,右键单击服务帐户(通常位于 计算机 容器中),然后选择 “属性>帐户”。
- 查看 帐户选项 设置。 确保未选择帐户敏感且无法委派选项。
- 选择“确定”。
如果使用自定义服务帐户,在排除 Kerberos RBCD 故障时需注意的问题
若要检查后端(资源)服务器委派配置,请打开 PowerShell 命令提示符窗口,然后运行以下 cmdlet:
Get-ADUser -Identity <BackEndSvcAcct> -PrincipalsAllowedToDelegateToAccount重要
如果后端服务使用托管服务帐户,请使用
Get-ADServiceAccount而不是Get-ADUser。注释
在此命令中, <BackEndSvcAcct> 表示后端服务帐户。
此 cmdlet 检索可以委托给后端服务的主体列表。 执行下列操作之一:
- 如果此列表包含前端服务正在使用的服务帐户,则 RBCD 已正确配置。 跳到步骤 3。
- 如果此列表不包括前端服务正在使用的服务帐户,请转到下一步。
若要在后端服务帐户上配置 RBCD,请运行以下 cmdlet:
Set-ADUser -Identity <BackEndSvcAcct> -PrincipalsAllowedToDelegateToAccount <FrontEndSvcAcct>重要
如果服务使用托管服务帐户,请使用 Get-ADServiceAccount 而不是 Get-ADUser。
注释
在这些命令中, <BackEndSvcAcct> 表示后端服务帐户, <FrontEndSvcAcct> 表示前端服务帐户。
检查前端服务帐户选项。 使用 Active Directory 用户和计算机 (可通过“服务器管理器 工具”菜单使用)执行这些步骤。
- 在 Active Directory 用户和计算机中,右键单击服务帐户(通常位于 “用户 ”容器中),然后选择“ 属性>帐户”。
- 查看 帐户选项 设置。 确保未选择帐户敏感且无法委派选项。
- 选择“确定”。