【问题标题】:WWW-Authenticate not working with Kerberos (only NTLM)WWW-Authenticate 不适用于 Kerberos(仅 NTLM)
【发布时间】:2018-11-13 15:14:00
【问题描述】:

我在为 Intranet 网站设置 SSO 时遇到问题。目前我正在使用 Tomcat 8.0 和Waffle 1.8.4。它们工作得很好,但只有一个问题:浏览器(如herehere 所述应用设置后的 Firefox 和 IE)无法进行 Kerberos 身份验证,只能进行 NTLM。

我使用 Wireshark 分析了流量,Tomcat 发送 http 标头字段“WWW-Authenticate”,浏览器在标头字段“Authentication”中回答包含 NTLMSSP 的 base64 编码字符串。我猜这不是 Kerberos,还是它?

我读过一篇帖子 (WWW-Authenticate uses NTLM and not Kerberos),为了让 Kerberos 工作,必须使用命令 setspn.exe 在 AD 中注册服务器。 我尝试为 setspn (described here) 获得正确的语法,但没有任何运气。 服务器有以下参数:

  • IP:10.0.0.1

  • 服务:Tomcat-Http

  • 端口:8080

  • 账户名:company-net\foobar

我将这个命令用于setspn:

setspn -A "HTTP/10.0.0.1:8080 company-net\foobar"

但不起作用。服务器和客户端都在同一个 Windows 域中,使用 Windows 10。

这有什么问题?

我还需要什么吗?

【问题讨论】:

    标签: single-sign-on kerberos ntlm


    【解决方案1】:

    Kerberos 依赖 DNS(有效主机名)和 SPN 来运行。到目前为止,您似乎已经做了一些研究,这很好。鲜为人知的是,当您将原本完美运行的正常 Kerberos 客户端指向主机的 IP,而不是指向其 DNS 主机名时,将绕过 Kerberos,而将采用回退身份验证机制 - NTLM 在此案子。

    Michael-O,本论坛的顶级 Kerberos 贡献者,said it best with his answer about this back in 2012

    Kerberos 不适用于 IP 地址,它依赖于域名和 仅正确的 DNS 条目。

    【讨论】:

    • 正是这个。不支持 IP 地址。除了他们现在,在 Win 10 1507+ docs.microsoft.com/en-us/windows-server/security/kerberos/…
    • 感谢您的帮助。弄清楚这个 IP 地址是不允许的,会花费我很多时间。我刚刚读到,Windows 10 禁用了注册表项 allowtgtsessionkey(12),所以我们必须使用 Windows SSPI API(Waffle,Nsspi 使用 C# 访问安全上下文)和可以忘记纯 Java 解决方案,如 JGSS、JAAS 或 SPNEGO。你注意到了吗?
    猜你喜欢
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    相关资源
    最近更新 更多