Web 伺服器的 Kerberos 身份驗證
在我盲目地進行“試錯”測試之前,我想問一些關於 Web 伺服器的 Kerberos 身份驗證的一般性問題。我想評估 Kerberos 的可能性。當然,主要的好處是單點登錄。但它也可能是 LDAP 身份驗證等的合適替代方案(幸運的是,我們的 Active Directory 已經包含 Kerberos KDC)。歡迎提供幫助、提示和討論!
我想討論一個相當複雜的設置來找到限制:MS Browser -> Linux Squid Proxy -> (Linux httpd Reverse-Proxy) -> Linux httpd Webserver
1)據我了解,Webserver 和 Browser 都需要與 KDC 建立永久連接才能獲取和驗證身份驗證票,對嗎?
我們的 KDC 只能在我們的內部網路上訪問。這是否意味著我們網路之外的任何客戶都無法在我們的網站上進行身份驗證?如果是這樣,那麼是否可以在我們的網路中放置一個反向代理(可以訪問我們的 KDC)以代表瀏覽器獲取 Kerberos 票證?網路伺服器自己能否代表瀏覽器獲取 Ticket?那會是一個合適的解決方法嗎?我是否應該使用備用 ldap 身份驗證來處理外部客戶端(LDAP 伺服器只需要對 Web 伺服器而不是瀏覽器可用)?
使用代理(正常的正向代理,如 squid)時,kerberos 是如何工作的?代理是否代表瀏覽器獲取票證?我可以使用某種直通機制嗎?我真的需要更改代理上的任何內容以防止它破壞 kerberos 身份驗證嗎?我在網上找到了很多HOWTO,但沒有一個明確說明是允許一般訪問代理還是訪問代理背後的網站。
我可能會提出更多問題,但我認為這可能是深入了解基於票證的身份驗證的一個很好的起點。
提前謝謝!
為了回答您的問題,
- 是的,網路伺服器和瀏覽器/客戶端需要連接到 KDC 以驗證票證。您必須進行 kinit/域登錄才能獲得 TGT,並且 Web 瀏覽器將獲得 HTTP 服務票證以訪問 Web 伺服器。
- 在 Internet 上公開 kerberos/domaincontroller 不是一個好習慣。嘗試使用網路身份驗證。
- 我不明白你打算用代理做什麼,但你可以從 kerberos 獲得一張可代理的票,並根據你的需要使用它。
Firefox 已經支持 gss-api 協商方法。您所要做的就是執行 kinit 並在 about:config http://grolmsnet.de/kerbtut/firefox.html中配置協商身份驗證並訪問您的網頁。如果您使用的是 apache,請檢查 mod_auth_kerb。Lighttpd 也有一些 kerberos 支持。