手動設定同盟伺服器陣列的服務帳戶

若要在 Active Directory 同盟服務 (AD FS) 中設定同盟伺服器陣列環境,您必須在將用來存放該陣列的 Active Directory 網域服務 (AD DS) 中建立並設定專用服務帳戶。 接著,您必須將該陣列中的每部同盟伺服器設定為使用此帳戶。 當您想要讓公司網路上的用戶端電腦使用「Windows 整合式驗證」向 AD FS 伺服器陣列中的任何同盟伺服器進行驗證時,您必須在組織中完成下列工作。

重要

從 AD FS 3.0 (Windows Server 2012 R2)起,AD FS 支援使用受群組管理的服務帳戶 (gMSA) 作為服務帳戶。 這是建議選項,因為此選項可免除長期管理服務帳戶密碼的需求。 本文件涵蓋使用傳統服務帳戶的替代案例,例如仍在執行 Windows Server 2008 R2 或舊版網域功能等級 (DFL) 的網域中。

注意

針對整個同盟伺服器陣列,您必須只執行此程序中的工作一次。 稍後,當使用 AD FS 同盟伺服器組態精靈建立同盟伺服器時,您必須在伺服器陣列中每一部同盟伺服器的 [服務帳戶] 精靈頁面上指定這個相同帳戶。

建立專用服務帳戶

  1. 在位於身分識別提供者組織的 Active Directory 樹系中建立專用使用者/服務帳戶。 Kerberos 驗證通訊協定必須有此帳戶,才能在伺服器陣列案例中運作,以及在每部同盟伺服器上允許傳遞驗證。 僅針對同盟伺服器陣列的用途使用此帳戶。

  2. 編輯使用者帳戶內容,然後選取 [密碼永久有效] 核取方塊。 此動作可確保此服務帳戶的功能不會因為網域密碼變更需求而中斷。

    注意

    針對此專用帳戶使用 Network Service 帳戶將會導致隨機失敗 (當嘗試透過「Windows 整合式驗證」存取時),因為 Kerberos 票證無法在伺服器之間彼此驗證。

設定服務帳戶的 SPN

  1. 因為 AD FS AppPool 的應用程式集區身分識別是以網域使用者/服務帳戶執行,您必須使用 Setspn.exe 命令列工具在網域中設定該帳戶的服務主體名稱 (SPN)。 執行 Windows Server 2008 的電腦預設會安裝 Setspn.exe。 在已加入該使用者/服務帳戶所在相同網域的電腦上執行下列命令:

    setspn -a host/<server name> <service account>
    

    例如,在所有同盟伺服器都在網域名稱系統 (DNS) 主機名稱 fs.fabrikam.com 下組成叢集,且已指派給 AD FS AppPool 的服務帳戶名稱是 adfs2farm 的案例中,輸入如下命令,然後按下 ENTER:

    setspn -a host/fs.fabrikam.com adfs2farm
    

    只需要為此帳戶完成一次此工作。

  2. 當 AD FS AppPool 身分識別已變更為該服務帳戶之後,設定 SQL Server 資料庫上的存取控制清單 (ACL),以允許對此新帳戶的讀取存取權,以便 AD FS AppPool 可以讀取原則資料。