使用 Windows 內部資料庫升級現有的 AD FS 伺服器陣列

重要

Microsoft 強烈建議遷移到 Microsoft Entra ID,而不是升級為最新版 AD FS。 如需詳細資訊,請參閱解除委任 AD FS 的資源

在本文中,您將了解如何使用 Windows 內部資料庫 (WID) 升級 Active Directory 同盟服務 (AD FS) 的伺服器陣列行為層級。 從 Windows Server 2016 開始,伺服器陣列行為層級 (FBL) 在 AD FS 中推出。 FBL 是全伺服器陣列設定,可決定 AD FS 伺服器陣列可以使用的功能。

系統管理員可以在「混合模式」中將新的同盟伺服器新增至現有的 Windows Server 伺服器陣列。混合模式會以與原始伺服器陣列相同的伺服器陣列行為層級運作,以確保一致的行為。 無法設定或使用較新的 Windows Server AD FS 版本功能。

必要條件

您必須先符合下列必要條件,才能升級伺服器陣列行為層級:

  • 決定要升級至哪個 Windows Server 版本

  • 在新電腦上部署目標 Windows Server 版本,套用所有 Windows Update,並安裝 Active Directory 同盟服務伺服器角色。 如需詳細資訊,請參閱將同盟伺服器新增至現有的同盟伺服器陣列

  • 如果您也使用 Windows Server Web 應用程式 Proxy,請在新電腦上部署目標 Windows Server 版本、套用所有 Windows Update,以及安裝遠端存取伺服器角色和 Web 應用程式 Proxy 角色服務。 如需詳細資訊,請參閱使用 Web 應用程式 Proxy

  • 如果您要升級至 Windows Server 2016 或更新版本中的 AD FS,伺服器陣列升級要求 AD 結構描述至少為層級 85。 如果您要升級至 Windows Server 2019 或更新版本中的 AD FS,AD 結構描述必須至少為層級 88。 如需升級網域的詳細資訊,請參閱將網域控制站升級至更新版本的 Windows Server

  • 已針對完成規劃定義的時間範圍。 不建議長時間操作混合模式狀態。 讓 AD FS 處於混合模式狀態,可能會導致伺服器陣列發生問題。

  • 備份您的 AD FS 設定和同盟伺服器。

伺服器陣列行為層級

依預設,新 AD FS 伺服器陣列中的 FBL 會比對安裝的第一個伺服器陣列節點的 Windows Server 版本的值。

您可以將較新版本的 AD FS 伺服器加入至具有較低 FBL 的伺服器陣列。 伺服器陣列在與現有節點相同的 FBL 上運作。 當您有多個 Windows Server 版本於最低版本的 FBL 值的相同伺服器陣列中運作時,您的伺服器陣列會是「混合」。不過,在引發 FBL 之前,您無法利用較新版本的功能。 如果您的組織想要在引發 FBL 之前測試新功能,則必須部署個別伺服器陣列。

下表依 Windows Server 版本列出可能的 FBL 值和設定資料庫名稱。

Windows Server 版本 FBL 值 AD FS 設定資料庫名稱
2012 R2 1 AdfsConfiguration
2016 3 AdfsConfigurationV3
2019 和 2022 4 AdfsConfigurationV4

注意

升級 FBL 會建立新的 AD FS 設定資料庫。

現在您已了解 FBL 的目的,並已完成必要條件,您可以準備檢閱目前的 FBL。

若要尋找您目前的 FBL:

  1. 登入您的同盟伺服器,並開啟提升權限的 PowerShell 工作階段。

  2. 執行下列 PowerShell 命令,以傳回目前的 FBL 和伺服器陣列節點資訊。

    Get-AdfsFarmInformation
    
  3. 檢閱 CurrentFarmBehaviorFarmNodes

移轉同盟伺服器

收集目前的同盟伺服器陣列資訊之後,您就可以準備開始升級程序。 若要開始升級:

  1. 將新的同盟伺服器新增至您現有的伺服器陣列。 如需詳細資訊,請參閱將同盟伺服器新增至現有的同盟伺服器陣列

  2. 登入您的新同盟伺服器,然後開啟提升權限的 PowerShell 工作階段。 如果您有一部以上的伺服器,請僅在一部伺服器上執行此命令。

  3. 執行下列命令,以設定同盟伺服器同步屬性來取得主要電腦角色。 如需詳細資訊,請參閱 Set-AdfsSyncProperties

    Set-AdfsSyncProperties -Role PrimaryComputer
    
  4. 登入伺服器陣列中的其他任何同盟伺服器,開啟提升權限的 PowerShell 工作階段。

  5. 執行下列命令,將角色設定為次要電腦。

    Set-AdfsSyncProperties -Role SecondaryComputer -PrimaryComputerName "<primary-server-FQDN>"
    
  6. 更新任何負載平衡器、DNS 或網路設定,以使用新的同盟伺服器,驗證伺服器可正常運作。 如需詳細資訊,請參閱驗證您的 Windows Server 2012 R2 同盟伺服器運作正常

  7. 從先前的伺服器解除安裝 Active Directory 同盟服務伺服器角色,然後執行下列命令來移除過時的項目。

    Set-AdfsFarmInformation -RemoveNode "<old-server-FQDN>"
    

現在您已將新的同盟伺服器新增至伺服器陣列並移除先前的同盟伺服器,您可以準備升級 FBL。 如需解除委任的詳細資訊,請參閱解除委任 AD FS 伺服器的步驟

升級伺服器陣列行為層級

收集目前的同盟伺服器陣列資訊之後,您就可以準備開始升級程序。 若要開始升級:

  1. 登入您的主要同盟伺服器,然後開啟提升權限的 PowerShell 工作階段。

  2. 執行下列命令來測試您是否可以提高伺服器陣列的行為層級。

    Test-AdfsFarmBehaviorLevelRaise
    
  3. 檢閱輸出之後,若要升級伺服器陣列行為層級,請執行下列命令。 會出現提示詢問您是否要繼續。

    Invoke-AdfsFarmBehaviorLevelRaise
    
  4. 檢閱命令輸出以確認作業成功。 若要驗證新的伺服器陣列行為層級,請執行下列 PowerShell 命令,以傳回目前的 FBL 和伺服器陣列節點資訊。

    Get-AdfsFarmInformation
    

您現在已升級 FBL,以符合您的目標 Windows Server 版本。 如果您也使用 Windows Server Web 應用程式 Proxy 角色服務,請繼續進行下一節。

升級 Web 應用程式 Proxy

現在您已更新 FBL,您必須將 Web 應用程式 Proxy (WAP) 升級至最新層級。

  1. 登入您新部署的 Web 應用程式 Proxy 伺服器,並開啟提升權限的 PowerShell 工作階段。

  2. 匯入同盟憑證所使用的憑證,並記下憑證指紋。

  3. 若要設定 WAP,請執行下列 PowerShell 命令,以您自己的值取代預留位置 <value>。 針對任何其他 Web 應用程式 Proxy 伺服器重複此步驟。

    $trustcred = Get-Credential -Message "<Enter Domain Administrator credentials>"
    Install-WebApplicationProxy -CertificateThumbprint "<SSLCertThumbprint>" -FederationServiceName "<FScomputername>" -FederationServiceTrustCredential $trustcred
    
  4. 若要檢閱目前的連線 Web 應用程式 Proxy 伺服器,請執行下列命令,記下 ConnectedServerNameConfigurationVersion 值。

    Get-WebApplicationProxyConfiguration
    

    注意

    如果 ConfigurationVersion 為 Windows Server 2016,請略過下一個步驟。 這是 Windows Server 2016 和更新版本上 Web 應用程式 Proxy 的正確值。

  5. 執行下列 PowerShell Cmdlet 來移除舊的 Web 應用程式 Proxy 伺服器,只保留先前步驟中所設定的新伺服器:

    Set-WebApplicationProxyConfiguration -ConnectedServersName "WAPServerName1", "WAPServerName2"
    
  6. 若要升級 WAP 伺服器的 ConfigurationVersion,請執行下列 PowerShell 命令:

    Set-WebApplicationProxyConfiguration -UpgradeConfigurationVersion
    

您現在已完成 Web 應用程式 Proxy 的升級。

使用 Windows Hello 企業版的憑證信任模型

如果您在 Windows Server 2019 或更新版本上使用 AD FS,且 Windows Hello 企業版處於憑證信任模型,可能會遇到下列事件記錄檔錯誤訊息。

Received invalid Oauth request. The client 'NAME' is forbidden to access the resource with scope 'ugs'.

修正這個錯誤:

  1. 開啟 AD FS 管理主控台。 移至 [服務 > 範圍描述]

  2. 以滑鼠右鍵按一下 [範圍描述],然後選取 [新增範圍描述]

  3. 在 [名稱] 底下,輸入 ugs,然後選取 [套用 > 確定]

  4. 以系統管理員身分啟動 PowerShell,並執行下列命令。

    $id = (Get-AdfsApplicationPermission -ServerRoleIdentifiers 'http://schemas.microsoft.com/ws/2009/12/identityserver/selfscope' | ?{ $_.ClientRoleIdentifier -eq '38aa3b87-a06d-4817-b275-7a316988d93b' }).ObjectIdentifier
    Set-AdfsApplicationPermission -TargetIdentifier $id -AddScope 'ugs'
    
  5. 重新啟動 AD FS 服務。

  6. 重新啟動用戶端。 系統應該會提示使用者設定 Windows Hello 企業版。

下一步

既然您已升級 AD FS 部署,以下是一些可能對您有幫助的文章。