【问题标题】:Windows authentication 401 error, SPN to Service accountWindows 身份验证 401 错误,SPN 到服务帐户
【发布时间】:2018-06-18 16:40:57
【问题描述】:

我正在苦苦挣扎,希望你能帮助我。

场景: 我在测试服务器上编写了一个 Web 应用程序,一切正常。我将完成的应用程序移动到实时系统,如果在 IIS 上启用了 Windows 身份验证,我会收到 HTTP 401 错误。我通过在服务器名称上设置 SPN 解决了​​这个问题,例如

setspn -a http/contoso contoso

但它需要与我的服务帐户一起使用。 我为服务帐户设置了 spn,例如:

setspn -a http/contoso.com mydomain\serviceaccount setspn -a http/contoso mydomain\serviceaccount

应用程序池作为 mydomain\serviceaccount 运行。在 Active Directory 中为此帐户设置了 Kerberos 委派。但仍然得到 401 错误。出于测试目的,服务帐户在此服务器上具有管理员角色。

【问题讨论】:

  • IIS 是愚蠢的,如果您无权访问资源,即使您通过了正确的身份验证,它仍然会返回 401。我为此浪费了几个小时。这可能是你的情况吗?
  • 我是这台服务器上的管理员,例如服务帐户。我发现了一些额外的教程如何解决这个问题,但是 IT 管理员不允许在他的域上执行此步骤,因为如果这种可能的解决方案可以解决我们的问题,我们现在不会。在开发系统上一切正常。这个问题只存在于生产系统上。 SPN 现在直接在服务器上设置,一切正常。
  • 打开 Wireshark 并查看您的票证是否正常并检查 Windows 事件日志。

标签: kerberos windows-authentication http-status-code-401 iis-8.5 spn


【解决方案1】:

这看起来像是一个重复的 SPN 问题。我相信您通过为服务帐户添加 SPN 已经完成了所有正确的事情,但是您需要在 IIS 中采取更多步骤来确保实际使用应用程序池凭据。

单击网站并在中心面板中单击配置编辑器。导航到“system.webServer/security/authentication/windowsAuthentication”,在此处将“useAppPoolCredentials”设置为 true,将“UsekernelMode”设置为 false。

关注本文了解更多信息 - https://blogs.msdn.microsoft.com/chiranth/2014/04/17/setting-up-kerberos-authentication-for-a-website-in-iis/

【讨论】:

  • 嗨,这是在 Tomcat 上而不是在 IIS 上,是否有与此等效的 Tomcat?
猜你喜欢
  • 1970-01-01
  • 2019-08-16
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
相关资源
最近更新 更多