Apache-2.2

集成的 Windows 身份驗證在綁定到 AD 網路的 PC 上不起作用

  • July 14, 2014

背景:

  1. 執行 LAMP 堆棧的 Web 伺服器
  2. Web 伺服器在總部有通往 AD 網路的 VPN 隧道
  3. 全球多個 AD 網路,具有 VPN 隧道和與總部網路的信任關係
  4. 在 Web 伺服器上配置 Kerberos 身份驗證並使用 keytab 文件為所有網路工作
  5. 我是網路管理員,但無權訪問任何 AD 網路配置

我們有一個 AD 網路的問題,當用於訪問我們的 Web 伺服器的 PC 綁定到有問題的 AD 時,該網路僅顯示為 IE 或 Chrome。沒有令牌傳遞,並且伺服器日誌中沒有與令牌協商相關的條目。如果我們使用 Firefox 並啟用 network.negotiate-auth 選項,那麼使用者可以毫無問題地登錄,但是在使用 IE 時會出現需要授權的錯誤。該網站位於 Intranet 區域中,並且已檢查 IWA(這由 GPO 控制)

如果使用者嘗試使用 IE 或 Chrome 從其 AD 外部訪問該站點,他們會收到預期的身份驗證登錄提示,然後會正確發送令牌。

我已經與網路管理員交談過,他們確信 AD 不需要特殊配置來確保 Kerberos 身份驗證有效,但我不明白為什麼身份驗證適用於其他六個 AD 網路,並且如果不是由於AD 配置本身。

我錯過了什麼嗎?什麼可以解釋未能協商令牌?

$$ Note - this is not urgent, and as I am leaving the office now will answer any requests for more details on Monday $$

問題是在 AD 網路內部時正在發送令牌並自動嘗試協商,但由於生成密鑰表時使用的加密,它總是失敗。

最初我們使用**-crypto DES-CBC-CRC**,但一旦我們改為使用**-crypto RC4-HMAC-NT**,問題就消失了。

不是這方面的專家,但我傾向於認為,如果沒有交換協商令牌,問題可能在於應用程序沒有使用 keytab 的關聯使用者名註冊其 SPN。

如果是這種情況,在 AD 伺服器上執行的以下命令可能會修復它:

setspn –a HTTP/(yourhostname) (keytabusername)

例如 setspn -a HTTP/intranetappsrv.mycompany.com jbossaccount

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