Apache-2.2
使用 Apache 和 Linux MIT Kerberos 單點登錄 Intranet
編輯:解決了!請看下面我的回答。
您好,我正在尋找一種通過以下方式在 Intranet 上進行單點登錄的方法:
- Linux 使用者通過圖形前端(例如 GNOME)登錄。
- 他自動從 MIT Kerberos KDC 為他的使用者名請求一個 TGT。
- 通過某種方式,Apache 伺服器(我們假設它與 KDC 在同一台伺服器上)被告知該使用者已登錄。
- 當使用者訪問 Intranet 時,會自動授予他訪問其 Web 應用程序的權限。
我認為我在搜尋網路時沒有看到這種功能。我知道存在以下可能性:
- 使用諸如 mod_auth_kerb 之類的身份驗證模組,使用者會看到一個登錄提示,以輸入他的使用者名和密碼,然後針對 MIT Kerberos 伺服器進行身份驗證。(我希望這是自動的。)
- 當使用者是 Active Directory 的一部分時,IIS 支持通過 ASP.Net 集成 Windows 登錄。(我正在尋找 Linux / Apache 等價物。)
任何建議、批評和想法都將受到高度讚賞。這是為了展示概念驗證的學校項目,因此每條方便的資訊都非常受歡迎。:)
我找到了!
我按照https://help.ubuntu.com/community/SingleSignOn上的說明(請參閱:“應用程序安裝”)配置 Apache 網路伺服器。
這是我的 httpd.conf$$ IMAGE $$:
伺服器名稱 www.eindwerk.lan
< 目錄 /var/www/ > 選項索引 FollowSymLinks MultiViews
AllowOverride None Order allow,deny allow from all AuthType Kerberos
KrbMethodNegotiate on
KrbMethodK5Passwd on
AuthName "Kerberos Login" KrbAuthRealm EINDWERK.LAN Krb5Keytab /etc/apache2/auth/apache2.keytab require valid-user
</目錄>
- 然後,我將 Mozilla Firefox 配置為信任我的內部站點 (www.eindwerk.lan)$$ IMAGE $$:
network.negotiate-auth.delegation-uris:eindwerk.lan
network.negotiate-auth.trusted-uris:eindwerk.lan 2.
kinit
在終端中執行。$$ IMAGE $$ 3. 瀏覽到內部站點:您現在自動登錄!這是如何運作的?
- Mozilla Firefox 執行正常 HTTP/GET 請求。
- Apache 回复 HTTP/401 需要授權。
- Mozilla Firefox 使用我們剛剛獲得的 Kerberos 令牌進行回复
kinit
。$$ IMAGE OF WIRESHARK CAPTURE $$- 發生 Kerberos 身份驗證,Apache 回复 HTTP/200 OK。
klist
在終端中執行。您應該看到網路伺服器的票證!$$ IMAGE $$kdestroy
在終端中執行。$$ IMAGE $$- 硬刷新 (CTRL+F5) 內部站點。您現在會看到登錄提示!$$ IMAGE $$