返回

IIS Windows 身份验证:如何解决来自受信任域的 401 错误?

windows

IIS Windows 身份验证:修复来自受信任域的 401 错误

问题

当你使用来自受信任域的用户进行身份验证时,你可能会遇到令人沮丧的 401 未授权错误。尽管用户拥有正确的权限,但在尝试使用 IIS Windows 身份验证时仍然会被拒之门外。

解决方案

解决此问题涉及一系列步骤,我们将深入了解这些步骤:

1. 检查 Kerberos 委派设置

Kerberos 委派是解决此问题的重要因素。确保受信任域的计算机已启用它,方法是:

  • 转到活动目录用户和计算机
  • 右键单击受信任域并选择属性
  • 在“委派”选项卡中,选中“信任此计算机进行委派以服务”并选择“仅 Kerberos”

2. 检查 SPN 注册

服务主体名称 (SPN) 在 Windows 身份验证中起着至关重要的作用。对于 IIS 服务器,你需要注册 SPN:

  • 在 IIS 服务器上运行以下命令:
setspn -a HTTP/<IIS服务器主机名> <域\IIS服务帐户>

3. 检查 DNS 设置

正确的 DNS 设置对于主机名解析至关重要。受信任域的计算机必须能够解析 IIS 服务器的主机名。

4. 检查防火墙设置

防火墙设置有时会阻碍 Kerberos 委派。确保防火墙允许 TCP 端口 88 上来自受信任域计算机的流量。

5. 重启 IIS 服务

在进行任何更改后,重启 IIS 服务以使更改生效。

其他提示

  • 确保受信任域的用户是 IIS 应用程序池中应用程序池标识的一部分。
  • 使用 Fiddler 等工具跟踪 Kerberos 委派过程,以查找潜在问题。
  • 检查 IIS 日志以获取错误详细信息。

常见问题解答

问题 1:我已按照步骤操作,但仍然遇到 401 错误。

  • 双重检查每个步骤,确保已正确执行。
  • 使用 Fiddler 或其他网络分析工具查找 Kerberos 委派失败的特定原因。

问题 2:我无法在受信任域的计算机上启用 Kerberos 委派。

  • 确保域控制器已启用委派。
  • 检查受信任域计算机上的组策略设置,确保它们允许委派。

问题 3:我的 SPN 注册不成功。

  • 确保你具有在 IIS 服务器上注册 SPN 的权限。
  • 使用 Setspn 命令的 -X 选项检查 SPN 注册是否已成功。

问题 4:我的 DNS 设置似乎正确,但主机名仍然无法解析。

  • 使用 nslookup 或 ping 等工具验证 DNS 记录是否正确解析。
  • 尝试在受信任域的计算机上刷新 DNS 缓存。

问题 5:我已排除防火墙问题,但 Kerberos 委派仍然失败。

  • 使用 Kerberos 问题排查器工具 (klist、ktpass) 来分析 Kerberos 问题。
  • 检查受信任域的计算机上是否有任何第三方安全软件干扰 Kerberos 委派。

结论

通过遵循这些步骤并解决常见的故障排除问题,你可以有效解决 IIS Windows 身份验证中来自受信任域的 401 错误。这将确保你的系统安全可靠,同时为来自受信任域的用户提供无缝身份验证体验。