Authentication kerberos:客户端如何知道要向其请求票证的服务名称?

Authentication kerberos:客户端如何知道要向其请求票证的服务名称?,authentication,single-sign-on,kerberos,http-authentication,spn,Authentication,Single Sign On,Kerberos,Http Authentication,Spn,假设客户机希望向HTTP代理验证自己的身份。代理使用kerberos配置,并且在其配置中明确设置了服务名称HTTP/proxy.foo.bar。客户端如何知道向哪个服务名称请求票证?它是向他请求的域名请求票证(在本例中它确实是proxy.foo.bar),还是在本例中的407回复中它收到了身份验证序列中的名称(其中不包含协商挑战,但我不知道是否有办法查看) 我正在尝试调试代理上的kerberos错误,该代理突然停止了对某些客户端的身份验证。问题是,在Wireshark中,我看到客户机请求的票证不

假设客户机希望向HTTP代理验证自己的身份。代理使用kerberos配置,并且在其配置中明确设置了服务名称HTTP/proxy.foo.bar。客户端如何知道向哪个服务名称请求票证?它是向他请求的域名请求票证(在本例中它确实是proxy.foo.bar),还是在本例中的407回复中它收到了身份验证序列中的名称(其中不包含协商挑战,但我不知道是否有办法查看)


我正在尝试调试代理上的kerberos错误,该代理突然停止了对某些客户端的身份验证。问题是,在Wireshark中,我看到客户机请求的票证不是针对在代理上配置的服务名称(与他被指示使用的名称相同)HTTP/proxy.foo.bar,而是针对代理IP解析为的名称HTTP/host.foo.bar(好吧,至少它是代理解析的名称,可能是客户端通过其他方式获得的),TGS就是找不到一个,因此发生了错误。

所以这里有两个问题(你没有问如何实际解决问题,需要更多细节-请参阅评论)

  • 您询问“代理使用kerberos配置,并且在其配置中明确设置了服务名称HTTP/proxy.foo.bar。客户端如何知道要向哪个服务名称请求票证?”
  • 答:其工作原理与此类似。客户端在web浏览器中键入URL或单击超链接。它在DNS域中查找与URL中的主机名匹配的IP主机。然后它转到该IP主机,查找URL中定义的服务,在本例中是HTTP服务。如果它接收到HTTP质询(是401,不是407)由于受Kerberos保护,它从web服务器转到其KDC,请求HTTP/proxy.foo.bar的Kerberos服务票证,然后返回到proxy.foo.bar,并将票证提供给该主机,以便在其上运行HTTP服务。主机验证该票证,如果一切正常,客户端web浏览器将呈现HTML。您已经看到当你在客户端上运行klist时的Kerberos票证。我没有任何web参考给你,这都是我不知道的

  • 在407回复中,您还问“它是否请求他请求的域名的票证(在本例中,它确实是proxy.foo.bar),或者它是否收到认证序列中的名称(在本例中,它不包含协商挑战,但我只是不知道是否有办法进行调查)?”
  • 答:你的问题有点难理解,但如果我理解正确,答案是web客户端请求一个票证,这是来自web服务器的HTTP 401协商身份验证挑战的结果(见上文)


    web上有许多图表对这一过程进行排序,其中包括:

    默认情况下,Kerberos只信任规范的DNS条目,这可能是DNS中的问题(即burka下的是谁??),与proxy.foo.bar和host.foo.bar关联的IP是相同的还是不同的?