Windows Internal Database を使用して既存の AD FS ファームをアップグレードする

重要

マイクロソフトでは、最新バージョンの AD FS にアップグレードするのではなく、Microsoft Entra ID へ移行することを強くお勧めしています。 詳細については、AD FS の使用停止に関するリソースの記事を参照してください

この記事では、Windows Internal Database (WID) を使用して Active Directory フェデレーション サービス (AD FS) のファーム動作レベルをアップグレードする方法について説明します。 Windows Server 2016 以降では、AD FS にファーム動作レベル (FBL) が導入されています。 FBL はファーム全体の設定で、AD FS ファームで使用できる機能を決定します。

管理者は、既存の Windows Server ファームに新しいフェデレーション サーバーを "混在モード" で追加できます。混在モードは、一貫した動作を確保するために、元のファームと同じファーム動作レベルで動作します。 新しい Windows Server AD FS バージョンの機能を構成および使用することはできません。

前提条件

ファーム動作レベルをアップグレードする前に、次の前提条件を満たす必要があります。

  • どのバージョンの Windows Server にアップグレードするかを決定する。

  • 新しいコンピューターにターゲットの 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 バージョンの値と一致します。

FBL が低いファームに、新しいバージョンの AD FS サーバーを参加させることができます。 そのファームは、既存のノードと同じ 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 セッションを開きます。 複数のサーバーがある場合は、1 つのサーバーでのみこのコマンドを実行します。

  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
    

これで、ターゲットの Windows Server バージョンに合わせて FBL をアップグレードしました。 Windows Server Web アプリケーション プロキシ ロール サービスも使用している場合は、次のセクションに進みます。

Web アプリケーション プロキシをアップグレードする

FBL を更新したので、Web アプリケーション プロキシ (WAP) を最新レベルにアップグレードする必要があります。

  1. 新しくデプロイした Web アプリケーション プロキシ サーバーにサインインし、管理者特権の PowerShell セッションを開きます。

  2. フェデレーション証明書によって使用される証明書をインポートし、証明書の拇印をメモします。

  3. WAP を構成するには、次の PowerShell コマンドを実行し、プレースホルダー <value> を実際の値に置き換えます。 他の Web アプリケーション プロキシ サーバーに対して、この手順を繰り返します。

    $trustcred = Get-Credential -Message "<Enter Domain Administrator credentials>"
    Install-WebApplicationProxy -CertificateThumbprint "<SSLCertThumbprint>" -FederationServiceName "<FScomputername>" -FederationServiceTrustCredential $trustcred
    
  4. 現在接続されている Web アプリケーション プロキシ サーバーを確認するには、次のコマンドを実行し、ConnectedServerNameConfigurationVersion の値をメモします。

    Get-WebApplicationProxyConfiguration
    

    Note

    ConfigurationVersion が Windows Server 2016 の場合は、次の手順をスキップしてください。 これは、Windows Server 2016 以降の Web アプリケーション プロキシの正しい値です。

  5. 次の PowerShell コマンドレットを実行して、前の手順で構成した新しいサーバーを保持して、古い Web アプリケーション プロキシ サーバーを削除します。

    Set-WebApplicationProxyConfiguration -ConnectedServersName "WAPServerName1, WAPServerName2"
    
  6. 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'.

このエラーを修復するには:

  1. AD FS の管理コンソールを開きます。 [サービス] > [スコープの説明] の順に移動します。

  2. [スコープの説明] を右クリックし、[スコープの説明の追加] を選択します。

  3. 名前に「ugs」と入力し、[適用] > [OK] を選択します。

  4. 管理者として Windows 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 for Business を構成するように求められます。

次の手順

これで、AD FS の展開がアップグレードされました。役に立つ記事をいくつか紹介します。