重要
マイクロソフトでは、最新バージョンの AD FS にアップグレードするのではなく、Microsoft Entra ID へ移行することを強くお勧めしています。 詳細については、「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 更新プログラムを適用して、Active Directory フェデレーション サービス サーバーの役割をインストールします。 詳細については、「 既存のフェデレーション サーバー ファームにフェデレーション サーバーを追加する」を参照してください。
Windows Server Web アプリケーション プロキシも使用している場合は、ターゲットの Windows Server バージョンを新しいコンピューターに展開し、すべての Windows 更新プログラムを適用して、リモート アクセス サーバーの役割と Web アプリケーション プロキシの役割サービスをインストールします。 詳細については、「 Web アプリケーション プロキシの使用」を参照してください。
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 | Adfs設定 |
2016 | 3 | AdfsConfigurationV3 (英語) |
2019 年と 2022 年 | 4 | AdfsConfigurationV4 (英語) |
注
FBL をアップグレードすると、新しい AD FS 構成データベースが作成されます。
FBL の目的を理解し、前提条件を完了したので、現在の FBL を確認する準備ができました。
現在の FBL を検索するには:
フェデレーション サーバーにサインインし、管理者特権の PowerShell セッションを開きます。
次の PowerShell コマンドを実行して、現在の FBL とファーム ノードの情報を返します。
Get-AdfsFarmInformation
CurrentFarmBehavior
とFarmNodes
を確認します。
フェデレーション サーバーを移行する
現在のフェデレーション ファーム情報を収集したら、アップグレード プロセスを開始する準備ができました。 アップグレードを開始するには:
既存のファームに新しいフェデレーション サーバーを追加します。 詳細については、「 既存のフェデレーション サーバー ファームにフェデレーション サーバーを追加する」を参照してください。
新しいフェデレーション サーバーにサインインし、管理者特権の PowerShell セッションを開きます。 複数のサーバーがある場合は、1 つのサーバーでのみこのコマンドを実行します。
次のコマンドを実行して、プライマリ コンピューターの役割を受け取るようにフェデレーション サーバー同期プロパティを設定します。 詳細については、「 Set-AdfsSyncProperties」を参照してください。
Set-AdfsSyncProperties -Role PrimaryComputer
ファーム内の他のフェデレーション サーバーにサインインし、管理者特権の PowerShell セッションを開きます。
次のコマンドを実行して、役割をセカンダリ コンピューターに設定します。
Set-AdfsSyncProperties -Role SecondaryComputer -PrimaryComputerName "<primary-server-FQDN>"
新しいフェデレーション サーバーを使用するようにロード バランサー、DNS、またはネットワーク構成を更新し、サーバーが動作することを確認します。 詳細については、「 Windows Server 2012 R2 フェデレーション サーバーが動作可能であることを確認する」を参照してください。
前のサーバーから Active Directory フェデレーション サービス サーバーの役割をアンインストールし、次のコマンドを実行して古いエントリを削除します。
Set-AdfsFarmInformation -RemoveNode "<old-server-FQDN>"
新しいフェデレーション サーバーをファームに追加し、前のフェデレーション サーバーを削除したら、FBL をアップグレードする準備ができました。 使用停止の詳細については、「 AD FS サーバーの使用停止手順」を参照してください。
ファームの動作レベルをアップグレードする
現在のフェデレーション ファーム情報を収集したら、アップグレード プロセスを開始する準備ができました。 アップグレードを開始するには:
プライマリ フェデレーション サーバーにサインインし、管理者特権の PowerShell セッションを開きます。
次のコマンドを実行して、ファームの動作レベルを上げることができるかどうかをテストします。
Test-AdfsFarmBehaviorLevelRaise
出力を確認したら、ファームの動作レベルをアップグレードするには、次のコマンドを実行します。 続行するかどうかを確認するメッセージが表示されます。
Invoke-AdfsFarmBehaviorLevelRaise
コマンド出力を確認して、操作が成功したことを確認します。 新しいファーム動作レベルを確認するには、次の PowerShell コマンドを実行して、現在の FBL とファーム ノードの情報を返します。
Get-AdfsFarmInformation
これで、ターゲットの Windows Server バージョンに合わせて FBL をアップグレードできました。 Windows Server Web アプリケーション プロキシ役割サービスも使用している場合は、次のセクションに進みます。
Web アプリケーション プロキシのアップグレード
FBL を更新したので、Web アプリケーション プロキシ (WAP) を最新レベルにアップグレードする必要があります。
新しくデプロイされた Web アプリケーション プロキシ サーバーにサインインし、管理者特権の PowerShell セッションを開きます。
フェデレーション証明書で使用される証明書をインポートし、証明書の拇印をメモします。
WAP を構成するには、次の PowerShell コマンドを実行し、プレースホルダー
<value>
を独自の値に置き換えます。 それ以上の Web アプリケーション プロキシ サーバーに対して、この手順を繰り返します。$trustcred = Get-Credential -Message "<Enter Domain Administrator credentials>" Install-WebApplicationProxy -CertificateThumbprint "<SSLCertThumbprint>" -FederationServiceName "<FScomputername>" -FederationServiceTrustCredential $trustcred
現在接続されている Web アプリケーション プロキシ サーバーを確認するには、次のコマンドを実行し、
ConnectedServerName
とConfigurationVersion
の値をメモします。Get-WebApplicationProxyConfiguration
注
ConfigurationVersion が
Windows Server 2016
場合は、次の手順をスキップします。 これは、Windows Server 2016 以降の Web アプリケーション プロキシの正しい値です。次の PowerShell コマンドレットを実行して、前の手順で構成した新しいサーバーのみを保持して、古い Web アプリケーション プロキシ サーバーを削除します。
Set-WebApplicationProxyConfiguration -ConnectedServersName "WAPServerName1", "WAPServerName2"
WAP サーバーの ConfigurationVersion をアップグレードするには、次の PowerShell コマンドを実行します。
Set-WebApplicationProxyConfiguration -UpgradeConfigurationVersion
これで、Web アプリケーション プロキシのアップグレードが完了しました。
Windows Hello for Business を使用した証明書信頼モデル
Windows Server 2019 以降で AD FS を使用していて、証明書信頼モデルで Windows Hello for Business を使用している場合は、次のイベント ログ エラー メッセージが表示されることがあります。
Received invalid Oauth request. The client 'NAME' is forbidden to access the resource with scope 'ugs'.
このエラーを修正するには:
AD FS 管理コンソールを開きます。 [サービス>スコープの説明] に移動します。
[スコープの説明] を右クリックし、[スコープの説明の追加] を選択します。
[名前] に 「ugs」と入力し、[ 適用] > [OK] を選択します。
管理者として 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'
AD FS サービスを再起動します。
クライアントを再起動します。 ユーザーに Windows Hello for Business の構成を求めるメッセージが表示されます。
次のステップ
AD FS のデプロイをアップグレードしたので、役に立つ記事をいくつか紹介します。