共用方式為


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

這很重要

Microsoft強烈建議移轉至 Microsoft Entra 標識碼,而不是升級至最新版本的 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 AD FS 2019 或更新版本中升級至 ,AD 架構必須至少為 88。 如需升級網域的詳細資訊,請參閱 將域控制器升級至較新版本的 Windows Server

  • 為完成設立一個明確的時間範圍。 不建議長時間操作混合模式。 讓AD FS處於混合模式狀態,可能會導致伺服器陣列發生問題。

  • 備份 AD FS 組態和同盟伺服器。

農場行為層級

根據預設,新 AD FS 伺服器場中的 FBL 與已安裝第一個場節點之 Windows Server 版本的值相符。

您可以將較新版本的 AD FS 伺服器加入至具有較低 FBL 的伺服器陣列。 伺服器群在與現有節點相同的 FBL 上運作。 當您在相同伺服器農場中以最低版本的 FBL 值操作多個 Windows Server 版本時,您的伺服器農場是「混合」狀態。不過,在提升 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 應用程式代理伺服器

現在您已更新 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. 移除舊的 Web 應用程式 Proxy 伺服器,執行下列 PowerShell Cmdlet,只保留先前步驟中所設定的新伺服器:

    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管理主控台。 移動至 Services > 範圍描述

  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 部署,以下是一些您可能會發現有用的文章。