共用方式為


將 Kerberos 與 Client Access Server 陣列或負載平衡解決方案配合使用

 

適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上次修改主題的時間: 2016-11-28

對於在 Active Directory 站台中具有多個 Client Access Server 的 MicrosoftExchange Server 2010 部署,拓撲通常需要 Client Access Server 陣列及負載平衡解決方案來分配站台中所有 Client Access Server 的流量。如需 Client Access Server 陣列的詳細資訊,請參閱瞭解 RPC Client Access。如需負載平衡的詳細資訊,請參閱瞭解 Exchange 2010 中的負載平衡

使用 Kerberos 驗證

通常,網路中加入網域的電腦上的郵件用戶端使用 NTLM 驗證。在某些情況下,您可能必須使用 Kerberos 驗證。由於 Kerberos 為設定和實作帶來其他挑戰,因此應僅在需要時才進行 Kerberos 驗證。如需 Kerberos 的詳細資訊,請參閱 Kerberos 增強功能Microsoft Kerbero

注意事項附註:
Kerberos 僅可用於網路中加入網域的電腦。這包括由 VPN 連線的用戶端。對於網路之外的連線 (例如 Outlook Anywhere),不支援 Kerberos。

可能會由於以下原因,要求您為 Exchange 2010 組織使用 Kerberos 驗證:

  • 本機安全性原則需要使用 Kerberos 驗證。

  • 您遇到或預期會遇到 NTLM 延展性問題,例如至 RPC 用戶端存取服務的直接 MAPI 連線導致時斷時續的 NTLM 失敗。

    在大規模的客戶部署中,NTLM 會導致 Client Access Server 出現瓶頸,進而導致出現偶發性的驗證失敗。使用 NTLM 驗證的服務對 Active Directory 延遲問題更加敏感。如果出現 Client Access Server 要求的速率增大的情況,這些問題會導致驗證失敗。

若要設定 Kerberos 驗證,您必須熟悉 Active Directory 以及 Client Access Server 陣列的設定。此外,您必須具有 Kerberos 的工作知識。

Kerberos 及負載平衡 Client Access Server 的問題

如果 Client Access Server 已進行負載平衡,或包含在 Client Access Server 陣列中,則使用 NTLM 驗證設定的用戶端不會出現連線問題。但是,在 Exchange 2010 Service Pack 1 (SP1) 之前,使用 Kerberos 需要進行其他設定,且可能出現問題。

在具有負載平衡器或用戶端存取陣列的拓撲中,用戶端連線至個別伺服器的依據不是伺服器名稱,而是陣列或負載平衡器名稱。除非您執行其他組態步驟,否則這會妨礙 Kerberos 驗證。

使用 Kerberos 時,第一個組態步驟是為用戶端存取服務設定特定服務主要名稱 (SPN) 的陣列。一旦設定該陣列,設定為使用交涉驗證的電子郵件用戶端就會嘗試執行 Kerberos 驗證。這些用戶端將在陣列環境中取得 Kerberos 服務票證,並向 Client Access Server 呈現這些票證。但是在特定的 Client Access Server 上,Exchange 服務在本機系統或網路服務帳戶的環境中執行,因此將嘗試在這些環境 (而非陣列環境) 中驗證 Kerberos 服務票證。這會使環境不相符,並導致 Kerberos 驗證失敗。由於已增強 Kerberos 的安全性,因此設定為執行交涉驗證的用戶端不會回復為 NTLM 驗證,而是將預設使用 Outlook Anywhere (如果可用),或無法驗證和連線。

若要成功進行 Kerberos 驗證,Client Access Server 陣列成員必須使用由陣列所有成員共用的替代認證。該認證也必須與陣列特定的 SPN 相關聯。此共用認證可以是電腦帳戶,也可以是服務帳戶,陣列中的每個 Client Access Server 必須都瞭解該認證。通常,組織需要定期變更帳戶密碼。這會將正在進行的分配及更新此共用認證的工作託管給所有 Client Access Server。在 Exchange 2010 SP1 之前,Windows Server 2008 和 Microsoft Exchange 都沒有此問題的解決方案。

注意事項附註:
雖然此討論針對網路負載平衡器及 Client Access Server 陣列,但是導致用戶端無法直接連線至特定 Client Access Server 的所有網路基礎結構或組態都具有同樣的驗證問題。此組態的其他範例包括具有 DNS 循環配置資源負載平衡的 Client Access Server 和具有自訂 DNS 記錄的 Client Access Server。以下解決方案旨在簡化將替代服務帳戶認證分配給 Client Access Server 陣列的成員或網路負載平衡器後面 Client Access Server 的工作,其目的並非是使用在用戶端存取陣列中未設定 Client Access Server 的組態。

解決方案

若要解決此問題,必須存在可由陣列中或負載平衡器後面的所有 Client Access Server 使用的共用認證。此認證稱為「替代服務帳戶認證」(ASA 認證),可以是電腦帳戶,也可以是使用者服務帳戶。為了將此替代服務帳戶認證分配給所有 Client Access Server,Exchange 2010 SP1 中已實作了三重解決方案。

已延伸 Client Access Server 服務主機,以使用共用認證進行 Kerberos 驗證。此服務主機延伸可監視本機電腦。新增或移除認證時,將更新本機系統和網路服務環境中的 Kerberos 驗證套件。一旦將認證新增至驗證套件,所有用戶端存取服務即可將認證用於 Kerberos 驗證。除了可以使用共用認證之外,Client Access Server 還可以驗證直接註明的服務要求。此延伸稱為「servicelet」,依預設將執行,且不需要有任何組態或動作即可執行。

使用 Exchange 管理命令介面可以取得及設定共用認證和密碼。這樣就可以從遠端電腦設定認證。透過將認證儲存到目標電腦的登錄,可以設定認證供服務主機使用。您可以使用 Set-ClientAccessServer Cmdlet (具有新 AlternateServiceAccountCredential 參數) 設定認證。設定共用認證密碼之後,共用認證允許用戶端存取服務對內部網路連線的用戶端執行 Kerberos 驗證。如需 Set-ClientAccessServer Cmdlet 的詳細資訊,請參閱 Set-ClientAccessServer

已建立了管理指令碼,以協助自動執行將共用認證分配給指令碼範圍內指定的所有 Client Access Server 的工作。建議藉由此指令碼來使用和維護用於 Client Access Server 陣列 Kerberos 驗證的共用認證。此指令碼提供了一種方式,可自動使用 Set-ClientAccessServer Cmdlet 簡化下列工作:

  • 初始設定   在陣列或樹系的所有 Client Access Server 上設定 ASA 認證。

  • 密碼變換   除了更新 Active Directory 之外,會產生 ASA 認證的新密碼,並將該密碼推至所有 Client Access Server。

  • 將一台或多台電腦新增至 Client Access Server 陣列   會從現有伺服器複製 ASA 認證,然後將其分配給其他伺服器,這樣這些伺服器可以使用現有認證和密碼執行 Kerberos 驗證。

  • 持續維護   會建立排程工作,以使用自動方式定期變換密碼。

詳細資訊

如需如何針對負載平衡的 Client Access Server 設定 Kerberos 驗證的詳細資訊,請參閱設定負載平衡的 Client Access Server 的 Kerberos 驗證

如需 RollAlternateServiceAccountCredential.ps1 指令碼的詳細資訊,請參閱在命令介面中使用 RollAlternateserviceAccountCredential.ps1 指令碼

 © 2010 Microsoft Corporation. 著作權所有,並保留一切權利。