首页 > 解决方案 > 每个请求的 Kerberos 挑战

问题描述

我使用 Kerberos 身份验证在 IIS(版本:10)中托管了几个应用程序。并且所有 Web 应用程序都配置在一个网站下。

仅启用 Windows 身份验证。

我观察到的是每个请求我得到 401,然后是 200。第一次调用的期望是 401,然后是 200,因为它已经过身份验证,所以从同一个客户端到同一个 api 的所有后续调用都是 200。

我尝试应用 authPersistSingleRequest="false" 进行 Windows 身份验证。注意:这是在 Windows 身份验证的 asp.net mvc 应用程序中引用每个资源(2 x 401.2 和 1 x 200)的 3 个请求之后完成的

然后我可以看到一个 api(Web 应用程序)现在正在按预期工作。而且我们仍然对其他 api 有问题(在不同的 Web 应用程序中)。

谁能帮助我了解除了我上面提到的之外是否还有其他设置可以使其按预期工作。

标签: iiskerberoskerberos-delegation

解决方案


确保您使用应用程序池正确配置了 spn 帐户。

打开 IIS 管理器并选择配置编辑器。

在下拉菜单中选择 system.webServer > security > authentication > windowsAuthentication

在此处输入图像描述

将 useAppPoolCredentials 设置为 True。

在 Internet Explorer 中,将站点地址添加到受信任的网站列表中,并在用户身份验证 -> 受信任区域站点设置中的登录中指定使用当前用户名和密码自动登录。

在此处输入图像描述

有关更多详细信息,请参阅以下链接:

对 Internet Explorer 中的 Kerberos 故障进行故障排除


推荐阅读