Iis

使用 Exchange WebDAV/Outlook Web Access 進行身份驗證

  • February 18, 2010

我在從除 IIS 和 Exchange 伺服器之外的任何機器訪問 Exchange WebDav / OWA 時遇到問題。

我們有一個執行 Windows 2003 的小型開發域。一台伺服器(我們將其稱為 IIS_box)執行 IIS 和 Exchange 2003。IIS_Box 在/Exchange/虛擬目錄上設置了 Outlook Web Access,權限拒絕匿名使用者以及基本身份驗證和集成windows 身份驗證已啟用。

在 IIS_Box 上,訪問 http://IIS_Box.ourDomain.net/Exchange/使用者展示 OWA 應用程序,而不會提示輸入使用者名/密碼。但是,轉到http://IIS_Box/Exchange/時,使用者會看到一個使用者名/密碼對話框。

如果使用者沒有輸入使用者名和密碼,他們會收到401.2 Unauthorized: Access denied due to server configuration錯誤。如果使用者嘗試輸入使用者名和密碼,他們會得到一個401.1 Unauthorized: Access is denied due to invalid credentials.

在任何其他機器上,使用者都會看到使用者名/密碼對話框,並且無論他們使用 FQDN 還是僅使用裸伺服器名稱,都會收到 401 錯誤。

任何人都知道問題是什麼以及我們如何解決它?

編輯:

傑夫在下面的回答之後,客戶正在使用 IE7。

在 IIS_Box 上,將非 FQDN URL 添加到 IIS_Box 上的“Intranet”區域允許該 URL 工作。極好的!

但是,將普通 URL 和 FQDN URL 添加到其他電腦上的“Intranet”區域不會。URL 現在顯示為“本地 Intranet”,但我仍然收到基本身份驗證提示和 401 錯誤。

如果我進入客戶端 IE 設置,在 Advanced..Security 下,如果我禁用“啟用集成 Windows 身份驗證”,則一切正常(如果它位於 Intranet 區域中)。我不必在 IIS_Box 上關閉此設置!

但是,它只能在 IE 中正常工作,而不是在使用 WebDAV 介面的程式碼中 - 我嘗試在 Visual Studio 中執行/調試並作為編譯/獨立執行檔。啊!

編輯2:

經過 一番 探勘,似乎“啟用集成 Windows 身份驗證”實際上啟用了 Kerberos 和 NTLM 之間的協商(至少在 IE7 中)。

禁用它後,將使用 NTLM。

啟用它後,將協商 Kerberos 或 NTLM。如果不支持 Kerberos,則使用 NTLM。如果支持但失敗,**則不使用NTLM 。

因此,我要去看看我們是否存在潛在的 Kerberos 問題……

原來我有兩個問題。

  1. 該網站未被辨識為“Intranet 站點”,因此它可能根本沒有嘗試 Kerberos/NTLM 身份驗證。
  2. 我們在幕後遇到了 Kerberos 錯誤。我正在訪問 IIS_Box 並且事件日誌出現錯誤,並KRB_AP_ER_MODIFIED顯示有關host/IIS_Box.ourDomain.net不匹配的消息HTTP/IIS_Box.ourDomain.net

第一個問題在 Jeff 的建議下得到解決 - 謝謝。

第二個是通過在域控制器上執行以下命令進行排序的:

    setspn -A HTTP/IIS_Box.ourDomain.net IIS_Box

我發布此解決方案以防其他人遇到類似問題並發現此問題。(我討厭發現很多人和我有同樣的問題,但找不到他們是如何解決的。)

什麼網路瀏覽器?我知道在 IE 上,關於什麼是“內部網”以及允許將 NTLM 身份驗證發送到網路伺服器的規則是相當拜占庭式的。

基本上,我懷疑客戶端瀏覽器配置,特別是如果瀏覽器是 IE。瀏覽器必須相信 URL 是有福的“內部網”才能發送 NTLM 憑據;如果它認為 URL不是Intranet,它甚至不會嘗試發送 NTLM 身份驗證。

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