Apache-2.2

使用 Apache 和 Linux MIT Kerberos 單點登錄 Intranet

  • May 17, 2010

編輯:解決了!請看下面我的回答。

您好,我正在尋找一種通過以下方式在 Intranet 上進行單點登錄的方法:

  1. Linux 使用者通過圖形前端(例如 GNOME)登錄。
  2. 他自動從 MIT Kerberos KDC 為他的使用者名請求一個 TGT。
  3. 通過某種方式,Apache 伺服器(我們假設它與 KDC 在同一台伺服器上)被告知該使用者已登錄。
  4. 當使用者訪問 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

</目錄>

  1. 然後,我將 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。
  1. klist在終端中執行。您應該看到網路伺服器的票證!$$ IMAGE $$
  2. kdestroy在終端中執行。$$ IMAGE $$
  3. 硬刷新 (CTRL+F5) 內部站點。您現在會看到登錄提示!$$ IMAGE $$

引用自:https://serverfault.com/questions/142220