文章編號: 907272 - 上次校閱: 2009年12月8日 - 版次: 5.0

Kerberos 驗證和委派問題的疑難排解

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
IIS 開發 o 人 h 員 ? 工 u 具 ? 支援語音資料行

Kerberos 驗證和委派問題的疑難排解

若要自訂您的需要此資料行的 我們想要邀請您送出您的想法,有關您感興趣的主題,而且在將來知識庫文件和支援語音資料行,處理您想要查看的問題。您可以送出您的想法和使用 Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) 表單的意見反應。另外還有連結至表單底部的 這個資料行。

在此頁中

全部展開 | 全部摺疊
我的名稱是 Martin 姓氏在前,我是使用 Microsoft 的 Microsoft 網際網路資訊服務 (IIS) 重大問題解析群組。我已經與 Microsoft 九年,所有九年與 IIS 小組已被。 我已編譯從多個位置 http://msdn.microsoft.com (http://msdn.microsoft.com) http://www.microsoft.com (http://www.microsoft.com) Kerberos 和資訊如何對委派問題進行疑難排解。

IIS 6.0

下列白皮書告訴您,如何設定 Microsoft Windows Server 2003 中的委派。本白皮書具有特定資訊的網路負載平衡 (NLB),但是包含了有關如何設定委派的案例,而不使用 NLB 的絕佳詳細資料。若要欲這份白皮書請造訪下列 Microsoft 網站]:
http://technet.microsoft.com/en-us/library/cc757299.aspx (http://technet.microsoft.com/en-us/library/cc757299.aspx)
附註特別是當您使用 NLB 時,請使用 HTTP 服務主要名稱 (SPN)。

最近另一個常用的 Kerberos 問題已經需要允許使用相同的 DNS 名稱的多個應用程式集區。不幸的是,使用 Kerberos 委派認證時您無法繫在同一個服務主要名稱 (SPN) 結至不同的應用程式集區。您無法這麼因為 Kerberos 的設計。Kerberos 通訊協定需要多個共用的密碼,才能正常運作的通訊協定。藉由使用相同的 SPN 針對不同的應用程式集區,我們會消除這些共用機密資料的其中一個。Active Directory 目錄服務將會支援這種設定的 [Kerberos 通訊協定因為的安全性問題。

以這種方式來設定 [SPN 會造成 Kerberos 驗證失敗。這個問題的可能解決,就是使用通訊協定轉換。初始驗證用戶端與伺服器執行 IIS 之間會藉由使用 NTLM 驗證通訊協定來處理。Kerberos 會處理 IIS 和後端資源伺服器之間驗證。

Microsoft Internet Explorer 6 (含) 以後版本

用戶端瀏覽器可能會遇到這類的接收的問題重複登入提示輸入認證或從執行 IIS 的伺服器的 「 401 拒絕存取 」 錯誤訊息。我們發現下列可能有助於解決這些問題的兩個問題:
  • 確認 啟用整合式 Windows 驗證 選取瀏覽器的內容中。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    299838? (http://support.microsoft.com/kb/299838/ ) 無法交涉 Kerberos 驗證升級至 Internet Explorer 6 之後
  • 如果在 [新增/移除程式,啟用 Internet Explorer 增強式安全性設定,則您必須加入使用委派的 信任的網站 清單的網站。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    815141? (http://support.microsoft.com/kb/815141/ ) Internet Explorer 增強式安全性設定會變更瀏覽經驗

IIS 5.0 及 IIS 6.0

您從 IIS 4.0 升級到 IIS 5.0 或 IIS 6.0 之後委派可能無法正確,運作,或可能是有人或應用程式已經修改 Metabase 屬性 NTAuthenticationProviders。 如需有關如何修正這個問題的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
248350? (http://support.microsoft.com/kb/248350/ ) Kerberos 驗證失敗,則從 IIS 4.0 升級到 IIS 5.0 之後

當您設定 SPN 時,就會發生問題的特定區域

判斷伺服器名稱

判斷是否您要連線到 Web 站台使用伺服器的實際的 NetBIOS 名稱,或使用如 DNS 名稱的一個別名名稱 (比方說 www.microsoft.com)。如果您正在使用而不是實際的名稱伺服器的名稱來存取 Web 伺服器,必須為新服務主要名稱 (SPN) 已註冊使用 Setspn 工具從 Windows 2000 Server 資源工具箱 」。因為 Active Directory 目錄服務並不知道這個服務名稱,票證授與服務 (TGS) 並不會提供您要驗證使用者票證。這種行為會強制用戶端使用下一個可用的驗證方法,是 NTLM,重新協商以決定。如果的 Web 伺服器回應 www.microsoft.com 但伺服器的 DNS 名稱命名 webserver1.development.microsoft.com,您必須在 Active Directory 中登錄 www.microsoft.com 正在執行執行 IIS 的伺服器上。要執行此動作必須下載 Setspn 工具,然後在執行 IIS 的伺服器上安裝它。

如需有關如何取得 Setspn 工具的詳細資訊,請造訪下列 Microsoft 網站]:
http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en)
如果您使用的 Windows Server 2003 和 IIS 6,Microsoft Windows Server 2003 的 Setspn 工具是可用從下列位置:
http://support.microsoft.com/kb/970536 (http://support.microsoft.com/kb/970536)
如果要判斷您是否使用實際的名稱來連線,嘗試使用伺服器的實際名稱,而不是 DNS 名稱連線到伺服器。如果您無法連線到伺服器,請參閱驗證電腦受信任可以委派 」 一節。

如果您可以連線至伺服器,請依照下列步驟設定 SPN 您用以連接伺服器的 DNS 名稱:
  1. 安裝 Setspn 工具。
  2. 在伺服器執行 IIS 上, 開啟命令提示字元],然後再開啟 C:\Program Files\Resource 套件資料夾]。
  3. 執行下列命令,新增這個新的 SPN (www.microsoft.com) 到伺服器的 Active Directory:
    Setspn-A HTTP/www.microsoft.com webserver1
    附註在這個命令 webserver1 會表示伺服器的 NetBIOS 名稱。
您會收到類似下列的輸出:
Registering ServicePrincipalNames for CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=com
HTTP/www.microsoft.com
Updated object
若要檢視以查看此新值伺服器上的 [清單的 SPN] 中, 執行 IIS 的伺服器上輸入下列命令:
Setspn L webservername
請注意您不需註冊所有服務。許多服務類型,例如 HTTP、 W3SVC、 WWW、 RPC、 CIFS (檔案存取)、 WINS 和不斷電供電系統 (UPS) 會對應至名為 HOST 預設服務型別。比方說如果用戶端軟體會使用一個 HTTP/webserver1.microsoft.com SPN webserver1.microsoft.com] 伺服器上建立網頁伺服器的 HTTP 連線,但未在伺服器上註冊此 SPN Windows 2000 網域控制站會自動對應連接到 HOST/webserver1.microsoft.com。這種對應只適用於 Web 服務已在本機系統帳戶下執行時。

請確認電腦受信任可以委派

如果執行 IIS 這台伺服器是網域的成員,但不是網域控制站,電腦必須受信任可以委派的 Kerberos 才能正常運作。要這麼做,請您執行下列步驟:
  1. 在網域控制站上按一下 [開始],並指向 [設定,然後按一下 [控制台]
  2. 在 [控制台] 中,開啟 [系統管理工具]。
  3. 連按兩下 [Active Directory 使用者及電腦
  4. 在您的網域之下按一下 [電腦]。
  5. 在清單找不到執行 IIS 的伺服器、 伺服器] 名稱上按一下滑鼠右鍵,然後按一下 [內容]。
  6. 按一下 [一般] 索引標籤、 按一下以選取 [信任可以委派] 核取方塊,然後再按 [確定]
請注意是否多個網站都達到依相同的 URL,但在不同的連接埠上,委派將無法運作。若要將這項工作中,您必須使用不同的主機名稱和不同的 SPN。當 Internet Explorer 要求任一 http://www mywebsite.com 或 http://www mywebsite.com:81 時,Internet Explorer 會要求的 SPN HTTP/www.mywebsite.com 票證。Internet Explorer 不會將連接埠或 vdir 加入 SPN 要求。這種行為是相同的 http://www mywebsite.com/app1 或 http://www mywebsite.com/app2。在這種情況下 Internet Explorer 會為 SPN 要求票證 http://www mywebsite.com 從金鑰發行中心 (KDC)。可以只為一個識別宣告每一個 SPN。因此,您就也收到 KRB_DUPLICATE_SPN 錯誤訊息如果您嘗試宣告每一個身分此 SPN。

委派和 Microsoft ASP.NET

如需有關當您使用的 ASP.NET 時,委派認證的組態應用程式,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
810572? (http://support.microsoft.com/kb/810572/ ) 如何設定 ASP.NET 應用程式為委派案例
模擬和委派是兩種方法來驗證用戶端的名義上的伺服器。決定何者若要使用這些方法和它們的實作可能會造成一些混淆。您必須檢閱這兩種方法之間差異,並檢查您的應用程式使用哪一種方法,您可能想。我建議,就是讀取下列白皮書以取得進一步的詳細資訊:
http://msdn2.microsoft.com/en-us/library/ms998351.aspx (http://msdn2.microsoft.com/en-us/library/ms998351.aspx)

?考

http://technet.microsoft.com/en-us/library/cc757299.aspx (http://technet.microsoft.com/en-us/library/cc757299.aspx)

http://msdn.microsoft.com/msdnmag/issues/05/09/SecurityBriefs/default.aspx (http://msdn.microsoft.com/msdnmag/issues/05/09/SecurityBriefs/default.aspx)

http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en)
305971? (http://support.microsoft.com/kb/305971/ ) Windows 2000 Server 提示認證的網域使用者
262177? (http://support.microsoft.com/kb/262177/ ) 如何啟用 Kerberos 事件記錄
326985? (http://support.microsoft.com/kb/326985/ ) 如何疑難排解與 Kerberos 相關的問題,在 IIS 中
842861? (http://support.microsoft.com/kb/842861/ ) TechNet 支援網路廣播: 疑難排解與安全的 Web 應用程式和 Microsoft SQL Server 的 Kerberos 驗證
如往常請隨意送出您想要在將來解決資料行的主題或使用 Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1321) 表單的知識庫中的想法。

這篇文章中的資訊適用於:
  • Microsoft Internet Information Services 6.0
關鍵字:?
kbmt kbiis kbhowto kbasp KB907272 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:907272? (http://support.microsoft.com/kb/907272/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。