2

我們假設客戶端想要對HTTP代理進行身份驗證。代理服務器配置了kerberos,並且明確了服務名稱HTTP/proxy.foo.bar在其配置中設置。客戶如何知道要求購票的服務名稱?它是否向請求的域名請求票據(在這種情況下,它實際上是proxy.foo.bar),還是它在驗證序列中收到名稱,在這種情況下是407回覆包含談判挑戰,但我只是不知道是否有辦法查看它)?kerberos:客戶端如何知道請求票證的服務名稱?

我試圖調試代理服務器上的kerberos錯誤,它突然停止驗證某些客戶端。問題是,在Wireshark中看到,我看到客戶端請求的票證不是在代理上配置的服務名稱(他指示使用同一名稱),HTTP/proxy.foo.bar,但是對於代理IP解析到的名稱,HTTP/host.foo.bar(好吧,至少它是代理解析的名稱,可能是客戶端獲得它的一些其他方式),而TGS無法找到一個,從而發生錯誤。

+0

默認的Kerberos只信任*規範* DNS條目,這可能是問題(即誰是,布爾卡??下) –

+0

在DNS,是與proxy.foo.bar和host.foo.bar相關的IP相同還是不同? –

回答

2

所以你在這裏有兩個問題(你沒有問過如何真正解決問題,要做更多的細節將需要 - 見評論)。

  1. 你問「代理配置使用Kerberos,並具有明確的服務名稱HTTP/proxy.foo.bar在它的CONFIGS設置。客戶如何知道哪個服務名票,請求?

A.它的工作原理與此類似。客戶端鍵入Web瀏覽器中的URL或單擊超鏈接。它在DNS域中查找與URL中的主機名相匹配的IP主機。然後它轉到該IP主機,尋找在URL中定義的服務,在這種情況下它是HTTP服務。如果它從Web服務器收到HTTP 401協商質詢(它是401,而不是407),由於它受到Kerberos保護,它會轉到它的KDC併爲HTTP/proxy.foo.bar請求一個Kerberos服務票據,然後回退到proxy.foo.bar,並向該主機提供運行在其上的HTTP服務的票證。主機驗證此票證,如果一切正常並且客戶端Web瀏覽器呈現HTML。當您在客戶端上運行klist時,您已經看到了Kerberos票券。我沒有任何網站引用給你,這是我的頭頂。

  1. 你還問「是否要求把車票給域名他正在請求(在這種情況下,確實proxy.foo.bar),或者它在認證序列接收名字,在這種情況下回復407(這包含談判挑戰,但我不知道是否有辦法查看它)?

A.你的問題有點難以跟隨,但如果我正確認識你,答案是Web客戶端請求的門票爲HTTP 401的結果,從Web服務器協商身份驗證挑戰(往上看)。

有許多圖表測序網絡上的這個過程中,包括在這裏:http://www.zeroshell.org/kerberos/Kerberos-operation/

相關問題