IIS 開發人員支援語音欄
Kerberos 驗證與疑難排解委派問題
為了根據您的需求自訂此欄,我們想要邀請您提交您對感興趣主題的想法,以及您希望在未來知識庫文章和支援語音欄中解決的問題。 您可以使用 [要求] 表單提交您的想法和意見反應。 此欄底部也有表單的連結。
我的名稱 <名稱>,而我是 Microsoft Microsoft Internet Information Services (IIS) 重大問題解決] 群組的成員。 我在 Microsoft 工作了九年,而且已經在 IIS 團隊工作了九年。 我已經編譯來自多個位置的資訊,內容是關於 HTTP://msdn.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 服務主體名稱 (SPN) 尤其是當您使用 NLB 時。 最近另一個常見的 Kerberos 問題是需要允許多個應用程式集區使用相同的 DNS 名稱。 很抱歉,當您使用 Kerberos 委派認證時,您無法將相同的服務主體名稱 (SPN) 系結至不同的應用程式集區。 由於 Kerberos 的設計,您無法執行此動作。 Kerberos 通訊協定需要多個共用的機密,通訊協定才能正確運作。 針對不同的應用程式集區使用相同的 SPN,我們就能排除其中一個共用的機密。 由於安全性問題,Active Directory 目錄服務將不支援此 Kerberos 通訊協定設定。 以這種方式設定 SPN 會導致 Kerberos 驗證失敗。 此問題的可能因應措施是使用通訊協定轉換。 用戶端與執行 IIS 之伺服器之間的初始驗證,會使用 NTLM 驗證通訊協定來處理。 Kerberos 會處理 IIS 和後端資源伺服器之間的驗證。
Microsoft Internet Explorer 6 或更新版本
用戶端瀏覽器可能會遇到問題,例如從執行 IIS 的伺服器收到重複的認證登入提示或「401 拒絕存取」錯誤訊息。 我們發現下列兩個問題可能有助於解決這些問題:
-
確認已在瀏覽器的屬性中選取 [ 啟用整合式 Windows 驗證 ]。
-
如果 Internet Explorer 增強式安全性設定已在 [新增/移除程式] 中啟用,您必須將使用委派的網站新增至信任的
網站清單。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:815141 Internet Explorer 增強式安全性設定變更流覽體驗
IIS 5.0 和 IIS 6.0
從 IIS 4.0 升級至 IIS 5.0 或 IIS 6.0 之後,委派可能無法正常運作,或可能是某人或應用程式已修改元化屬性 NTAuthenticationProviders。
當您設定 SPN 時,可能會發生特定問題區域
判斷伺服器名稱
判斷您是使用伺服器的實際 NetBIOS 名稱或使用別名來連線至網站,例如 DNS 名稱 (例如 www.microsoft.com) 。 如果您是使用實際伺服器名稱以外的名稱來存取 Web 服務器,則必須使用 Windows 2000 伺服器資源套件中的 Setspn 工具,註冊新的服務主體名稱 (SPN) 。 由於 Active Directory 目錄服務不知道這個服務名稱,因此授票服務 (TGS) 不會提供您驗證使用者的票證。 此行為會強制用戶端使用下一個可用的驗證方法,也就是 NTLM 重新委派。 如果 Web 服務器回應的是 www.microsoft.com 的 DNS 名稱,但伺服器名稱為 webserver1.development.microsoft.com,則您必須在執行 IIS 的伺服器上的 Active Directory 中註冊 www.microsoft.com。 若要這麼做,您必須下載 Setspn 工具,並將其安裝在執行 IIS 的伺服器上。
若要判斷您是否要使用實際名稱連線,請嘗試使用伺服器的實際名稱來連線至伺服器,而不是使用 DNS 名稱。 如果您無法連線到伺服器,請參閱一節。 如果您可以連線到伺服器,請依照下列步驟,為您用來連線至伺服器的 DNS 名稱設定 SPN:-
安裝 Setspn 工具。
-
在執行 IIS 的伺服器上,開啟命令提示字元,然後開啟 C:\Program Files\Resource Kit 資料夾。
-
執行下列命令,將這個新的 SPN (www.microsoft.com) 新增至伺服器的 Active Directory:
Setspn -A HTTP/www.microsoft.com webserver1注意:在此命令中, Webserver1 代表伺服器的 NetBIOS 名稱。
您收到的輸出結果與下列類似:
註冊 CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=com 的 ServicePrincipalNames HTTP/www.microsoft.com 更新的物件 若要檢視伺服器上的 SPN 清單以查看此新值,請在執行 IIS 的伺服器上輸入下列命令:Setspn -L Webservername 注意,您不需要註冊所有服務。 許多服務類型,例如 HTTP、W3SVC、WWW、RPC、CIFS (檔案存取) 、WINS,以及 UPS) (不斷電供應系統供應器,都會對應到名為 HOST 的預設服務類型。 例如,如果您的用戶端軟體使用 HTTP/webserver1.microsoft.com SPN 在 webserver1.microsoft.com 伺服器上建立與 Web 服務器的 HTTP 連線,但此 SPN 並未在伺服器上登錄,Windows 2000 網域控制站會自動將連線對應至 HOST/webserver1.microsoft.com。 只有當 Web 服務在本機系統帳戶下執行時,才會套用此對應。
確認電腦是否受信任以進行委派
如果執行 IIS 的伺服器是該網域的成員,但並非網域控制站,則電腦必須受信任,才能讓 Kerberos 正確運作。 如果要執行這項操作,請依照下列步驟執行:
-
在網域控制站上,按一下 [開始],指向 [設定],然後按一下[主控台]。
-
在 主控台 中,開啟[系統管理工具]。
-
按兩下[Active Directory 消費者和電腦]。
-
在您的網域底下,按一下 [ 電腦]。
-
在清單中,找出執行 IIS 的伺服器,以滑鼠右鍵按一下伺服器名稱,然後按一下 [ 內容]。
-
按一下 [一般] 索引標籤,按一下以選
取 [信任的委派] 核取方塊,然後按一下 [ 確定]。
請注意,如果同一個 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 票證。從金鑰發佈中心 (KDC) mywebsite.com。 每個 SPN 只能針對一個身分識別宣告。 因此,如果您嘗試針對每個身分識別宣告此 SPN,也會收到KRB_DUPLICATE_SPN錯誤訊息。
委派和 Microsoft ASP.NET
如需使用 ASP.NET 應用程式時委派認證設定的詳細資訊,請按一下下列文章編號以檢視 Microsoft 知識庫中的文章:
810572 如何為委派案例 設定 ASP.NET 應用程式 模擬和委派是伺服器代表用戶端驗證的兩種方法。 決定要使用哪些方法及其實作可能會造成一些混淆。 您必須檢閱這兩種方法之間的差異,並檢查您可能會想要用於應用程式的這些方法。 我建議閱讀下列白皮書以取得進一步的詳細資料:
參考
HTTP://technet.microsoft.com/en-us/library/cc757299.aspxHTTP://msdn.microsoft.com/msdnmag/issues/05/09/SecurityBriefs/default.aspx
262177 如何啟用 Kerberos 事件記錄
疑難排解 Internet Explorer 中的 Kerberos 失敗
一如往常,您可以使用 [要求] 表單,就您想要在未來的欄或知識庫中解決的主題提交想法。