Windows 客户端(在本例中为浏览器)配置为在构建 Kerberos 票证请求以发送到 KDC 时忽略 DNS CNAME 记录。如果您有 CNAME,它还将解析 CNAME 指向的 A 记录,并在构建请求时使用 A 记录的 FQDN。这可以被覆盖:
- IE(https://support.microsoft.com/en-us/help/938305/error-message-when-you-try-to-log-on-to-a-web-site-that-requires-kerbe)
- 铬(https://www.chromium.org/administrators/policy-list-3#DisableAuthNegotiateCnameLookup)。
我的场景类似,但涉及客户端浏览器和后端之间的中间层。客户端使用 Kerberos 向前端进行身份验证,这很好,前端使用 Kerberos 约束委派将客户端的凭据委托给后端,这也很好。
我们最近发现此配置存在问题。我们的一些后端服务位于 AWS ELB 之后,而后者又在它们前面有 CNAME,因此可以重新部署它们。
所以现在的问题是:在委派客户端凭据时,是否可以更改前端服务器的 Kerberos 客户端的行为以使用后端 ELB 的 CNAME 来形成 Kerberos 请求,就像您可以在浏览器上做的那样?
一些限定词:
- 中间层用 ASP.NET 编写并在 IIS 上运行。
- 我们无法将 DNS 区域中的 A 记录配置为指向后端 ELB,因为它们使用 AWS SDN 功能来配置多个 IP,这些 IP 可能会发生变化。