重要
在使用本文中的步骤之前,请先按照 Kerberos 故障排除清单中的步骤进行操作。 Kerberos 问题的最常见原因是基础结构问题和服务主体名称(SPN)问题。 清单可帮助你识别此类问题。
如果目标服务具有单独的前端和后端组件,Kerberos 可以将客户端凭据(包括访问权限)委托给服务帐户。 简单来说,首先客户端访问前端服务,然后前端服务代表客户端访问后端服务。 在受约束的委派情况下,前端服务维护一个可以代表客户端访问的服务列表。
配置详细信息因前端服务使用的帐户类型而异。 本文为不同类型的服务帐户提供了单独的过程:
使用内置服务帐户时,进行排查 Kerberos 受限委派的问题
如果前端服务在内置帐户(例如本地计算机的计算机帐户)的安全上下文下运行,请按照以下步骤作。 如果前端服务在与计算机帐户(例如本地系统或网络服务)相关的安全上下文之一下运行,请遵循以下步骤。
步骤 1:检查拓扑类型
若要使用约束委派,前端和后端服务必须属于同一域。 如果这些服务位于不同的域或不同的受信任的林域中,则必须改为使用基于资源的约束委派(RBCD)。 有关详细信息,请参阅 Kerberos 身份验证故障排除指南:支持的拓扑类型。
步骤 2. 检查计算机帐户的委派设置
使用 Active Directory 用户和计算机(在“服务器管理器 工具 ”菜单上提供)执行这些步骤。
- 在 Active Directory 用户和计算机中,选择 “计算机”。 右键单击前端计算机的帐户,然后选择 “属性>委派”。
- 确保选择 仅信任此用户以委派到指定的服务。
- 确保所选的身份验证选项适用于访问 Web 服务的用户。
- 确保服务列表包括后端服务(或后端服务器的 HOST 等常见服务类)。 如有必要,请选择“ 添加 ”以将服务添加到列表中。
- 选择“确定”。
步骤 3. 在 IIS 中,检查应用程序池配置
使用 Internet Information Services (IIS) 工具(在“服务器管理器 工具 ”菜单上可用)查看应用程序池设置。
- 在 IIS 控制台中,展开 IIS 服务器并选择 应用程序池。 在右窗格中,右键单击 DefaultAppPool,然后选择“高级设置”。
- 选择 进程模型>标识。 确保已选择 内置帐户 ,并且已选择适当的内置帐户(如 NetworkService)。 选择 “确定 ”以返回到属性列表。
- 确保 “加载用户配置文件 ”设置为 True。 选择 “确定 ”关闭属性列表。
- 如果更改了任何设置,请重启 IIS 服务。
- 请重试进行身份验证。
排查使用自定义服务帐户时 Kerberos 约束委派的问题
如果前端服务在自定义帐户的安全上下文下运行,请按照以下步骤作。
步骤 1:检查拓扑类型
若要使用约束委派,前端和后端服务必须属于同一域。 如果这些服务位于不同的域或不同的受信任林中,则必须改用基于资源的约束委派(RBCD)。 有关详细信息,请参阅 Kerberos 身份验证故障排除指南:支持的拓扑类型。
步骤 2. 检查服务帐户权限
确保服务帐户是 Web 服务器上的本地管理员或IIS_Users组的一部分。
步骤 3. 检查服务帐户的委派设置
使用 Active Directory 用户和计算机 (可通过“服务器管理器 工具”菜单使用)执行这些步骤。
- 在 Active Directory 用户和计算机中,右键单击服务帐户(通常位于 “用户 ”容器中),然后选择“ 属性>委派”。
- 确保选择 仅信任此用户以委派到指定的服务。
- 确保所选的身份验证选项适用于访问 Web 服务的用户。
- 确保服务列表包括后端服务(或后端服务器的 HOST 等常见服务类)。 如有必要,请选择“ 添加 ”以将服务添加到列表中。
- 选择 “帐户”,然后查看 “帐户”选项 设置。 确保未选择帐户敏感且无法委派选项。
- 选择“确定”。
步骤 4. 检查前端服务器的计算机帐户的委派配置
除了自定义服务帐户,还必须为前端服务器的计算机账户配置委派。
- 在 Active Directory 用户和计算机中,选择 “计算机”,右键单击前端计算机的帐户,然后选择“ 属性>委派”。
- 确保选择仅信任此用户用于委派到指定服务,并同时选择从属选项使用任何身份验证协议。
- 确保服务列表包括后端服务(或后端服务器的 HOST 等常见服务类)。 如有必要,请选择“ 添加 ”以将服务添加到列表中。
- 选择“确定”。
步骤 5. 在 IIS 中,检查应用程序池配置
使用 Internet Information Services (IIS) 工具(在“服务器管理器 工具 ”菜单上可用)查看应用程序池设置。
- 在 IIS 控制台中,展开 IIS 服务器,然后选择 “应用程序池”。 在右窗格中,右键单击 DefaultAppPool,然后选择“高级设置”。
- 选择 “进程模型>标识”。 确保已选择 “自定义帐户 ”,并选择服务帐户。 选择 “确定 ”以返回到属性列表。
- 确保 “加载用户配置文件 ”设置为 True。 选择 “确定 ”关闭属性列表。
- 重启 IIS 服务。
- 请重试进行身份验证。