如果 IIS 託管網站使用 Kerberos 進行保護,Linux 電腦可以連接到它嗎?

如果 IIS 託管網站使用 Kerberos 進行保護,Linux 電腦可以連接到它嗎?

我在使用 Kerberos 的測試環境中配置 IIS 7.0 網站時遇到問題。我有一個 Windows Server 2008 R2 試用版,安裝了 AD DS、AD RMS、DHCP、DNS 和 IIS 角色。我已進入網站的 IIS 安全性設定並設定 Windows 驗證以允許 Kerberos 登入。

我遇到的問題是它不經常使用 Kerberos 作為安全協定。當我將 IIS 中的提供者設定為「協商」時,Fiddler2 指示標頭將在 50% 的情況下傳回 NTLM 標頭,在另外 50% 的情況下傳回 Kerberos 標頭。如果我在 IIS 中將提供者設定為“Negotiate:Kerberos”,我根本無法訪問該站點,因為它會立即報告 401 錯誤。此外,任何使用 Linux 電腦連線到任一設定中的網站的嘗試都會立即指向 401 安全性錯誤。

任何人都可以提供一些有關如何配置此功能的見解或指南嗎?除了啟用 Kerberos 之外,無論我連接的機器是什麼,我特別需要阻止任何回退到 NTLM。到目前為止,我還沒有找到任何完全解決此問題的 technet 或 serverfault 文章。

答案1

在 Firefox 中,您需要將其設定為在 about:config 下使用 Kerberos網路.協商-身份驗證.可信任-uris網路.negotiate-auth.delegation-uris

對於 Chrome/chrom 嘗試chromium-browser –auth-server-whitelist=”company.com”

答案2

如果您要設定 Linux 服務/應用程式以對 IIS 服務端點進行身份驗證,您可以讓 Linux 方塊對 IIS 託管的 Windows 網站進行驗證,如下所示:

  1. 確保您的 IIS 網站 Windows 驗證提供者Windows Auth 的設定順序如下:
    • NTLM
    • 談判
  2. 為您想要驗證的帳戶建立一個主體:
    • 使用kerberos工具登入網域內的Windows伺服器(通常是AD伺服器)
    • 註冊服務主體名稱(SPN)針對您要進行身份驗證的帳戶,同時產生 Kerberos keytab 檔案:
      • 使用通行證為 Linux 產生金鑰表
      • ktpass -princ HTTP/[email protected] -ptype KRB5_NT_PRINCIPAL -mapuser myuser -pass mypassword -out c:\user.keytab
      • 注意:該 urlmyiis.site.com必須與您將訪問的端點匹配,這一點很重要;和SITE.COM你的相匹配網域元件
    • 您可以透過以下方式檢查您的 SPNsetspn -L myuser
    • 此時,您已將 SPN 對應到 AD 使用者;用於 Linux 的 Kerberos keytab 文件,用於取得 KDC(AD 伺服器)頒發的 kerberos 票證,以使用 Negotiate 提供者進行身份驗證。
  3. 根據 Kerberos 的風格,將金鑰表匯入 Linux 盒子/應用程式。若要查看密鑰表中的憑證:

相關內容