Active Directory フェデレーション サービス (AD FS) の迅速な復元ツール

Active Directory フェデレーション サービス (AD FS) は、AD FS ファームを設定することで高可用性を実現します。 一部の組織では、複数の AD FS サーバーとネットワーク負荷分散インフラストラクチャの必要性をなくすために、単一のサーバー AD FS デプロイを採用しています。 このアプローチにより、潜在的な問題を解決した後にサービスを迅速に復元することができます。

AD FS の迅速な復元ツールを使用すると、オペレーティング システムまたはシステム状態の完全なバックアップと復元を必要とすることなく、AD FS データを復元することができます。 このツールを使用して、AD FS 構成を Azure またはオンプレミスの場所にエクスポートします。 エクスポートしたデータを新しい AD FS インストールに適用したり、AD FS 環境を再作成したり複製したりすることができます。

ユース ケース シナリオ

AD FS の迅速な復元ツールは、さまざまなシナリオで使用できます。

  • 問題発生後に AD FS 機能を迅速に復元する場合。 迅速な復元ツールを使用して、オンライン AD FS サーバーの代わりに迅速にデプロイできる AD FS のコールド スタンバイ インストールを作成します。

  • 同一のテスト環境と運用環境をデプロイする場合。 テスト環境で運用 AD FS の正確なコピーを迅速に作成します。 また、迅速な復元ツールを使用すると、検証済みのテスト構成を運用環境に迅速にデプロイすることもできます。

  • SQL と Windows 統合データベース (WID) の構成を移行する場合。 迅速な復元ツールを使用してデータを移行し、SQL ベースのファーム構成から WID に、またはその逆に移動します。

注意

SQL マージ レプリケーションまたは Always on 可用性グループを使用している場合、迅速な復元ツールはサポートされません。 SQL ベースのバックアップや SSL 証明書のバックアップを使用することをお勧めします。

バックアップの内容

迅速な復元ツールは次の AD FS 構成をバックアップします。

  • AD FS 構成データベース (SQL または WID)
  • 構成ファイル (AD FS フォルダーにあります)
  • インストール済みのカスタム認証プロバイダー、属性ストア、およびローカル要求プロバイダーの信頼の一覧
  • 自動生成されたトークンの署名、暗号化解除の証明書、および Active Directory Distributed Key Manager (DKM) コンテナーの秘密キー
  • SSL 証明書、および外部登録された証明書 (トークン署名、トークン暗号化解除、サービス通信)、および対応する秘密キー

注意

秘密キーはエクスポート可能である必要があります。 スクリプトを実行しているユーザーには、キーへのアクセス許可が必要です。

バックアップの暗号化

バックアップ データはすべて、クラウドにプッシュされる前、またはファイル システムに格納される前に暗号化されます。

バックアップの一部として作成された各ドキュメントは、AES-256 を使用して暗号化されます。 迅速な復元ツールに指定されたパスワードは、Rfc2898DeriveBytes クラス経由で新しいパスワードを生成するためのパス フレーズとして使用されます。

RngCryptoServiceProvider クラスは、AES と Rfc2898DeriveBytes クラスによって使用される salt (バイナリ BLOB) を生成します。

はじめに

AD FS の迅速な復元ツールの使用を開始するには、まず、次のシステムとツールの要件を確認します。

  • このツールは、Windows Server 2016 以降の AD FS で機能します。
  • このツールには、.NET Framework 4.0 以降が必要です。
  • WID を使用する場合は、プライマリ AD FS サーバーでツールを実行する必要があります。 Get-AdfsSyncProperties コマンドレットを使用して、サーバーがプライマリ サーバーであるかどうかを確認します。
  • 復元は、バックアップ サーバーと同じバージョンの AD FS サーバーで実行し、AD FS サービス アカウントと同じ Active Directory アカウントを使用する必要があります。

次の手順に従って、ツールを設定します。

  1. MSI をダウンロードして AD FS サーバーにインストールします。

  2. ツールをインストールしたら、PowerShell プロンプトから次のコマンドを実行します。

    Import-Module 'C:\Program Files (x86)\ADFS Rapid Recreation Tool\ADFSRapidRecreationTool.dll'
    

バックアップの作成: Backup-ADFS

バックアップの作成には、Backup-ADFS PowerShell コマンドレットを使用します。 このバックアップ コマンドレットは、AD FS の構成、データベース、SSL 証明書などをバックアップします。

バックアップ コマンドレットを使用する前に、次のアクセスとアクセス許可の要件を確認します。

  • ローカル管理者として実行します。バックアップ コマンドレットを実行するには、ユーザーが少なくともローカル管理者である必要があります。

  • ドメイン管理者としてバックアップします。Active Directory DKM コンテナー (既定の AD FS 構成で必要) をバックアップするには、ユーザー権限が次の条件の 1 つ以上を満たしている必要があります。

    • ユーザーはドメイン管理者である必要があります。
    • ユーザーは、AD FS サービス アカウントの資格情報を渡す必要があります。
    • ユーザーは DKM コンテナーへのアクセス権を持っている必要があります。
  • ドメイン管理者として gMSA アカウントを使用します。グループの管理されたサービス アカウント (gMSA) の場合、ユーザーはドメイン管理者であるか、コンテナーに対するアクセス許可を持っている必要があります。 ユーザーが gMSA 資格情報を指定することはできません。

Backup-ADFS コマンドレット パラメーター

各バックアップには、adfsBackup_ID_Date-Time パターンに従って名前が付けられます。 名前には、バックアップのバージョン番号、日付、時刻が含まれます。

Backup-ADFS コマンドレットのパラメーターを次に示します。

Backup-ADFS 
  -StorageType {FileSystem | Azure} 
  -EncryptionPassword <string> 
  -AzureConnectionCredentials <pscredential> 
  -AzureStorageContainer <string> 
  [-BackupComment <string>] 
  [-ServiceAccountCredential <pscredential>]
  [-BackupDKM]
  [<CommonParameters>]
    
Backup-ADFS -StorageType {FileSystem | Azure} 
  -EncryptionPassword <string>
  -StoragePath <string> 
  [-BackupComment <string>]
  [-ServiceAccountCredential <pscredential>]
  [-BackupDKM]
  [<CommonParameters>]

次の一覧では、Backup-ADFS コマンドレットのパラメーターの詳細について説明します。

  • BackupDKM: 既定の構成で AD FS キーを含む Active Directory DKM コンテナーをバックアップします (自動生成されたトークンの署名と暗号化解除の証明書)。 この方法では、Microsoft Entra ldifde ツールを使用して、Microsoft Entra コンテナーとそのすべてのサブツリーをエクスポートします。

  • StorageType <string>: ユーザーがバックアップを実行する際に、バックアップの場所を選択します。

    • FileSystem は、ユーザーがバックアップをローカル フォルダーまたはネットワークに格納することを示します。 ファイル システムにバックアップを格納するには、ユーザーが次の要件を満たす必要があります。

      • ストレージ パスを指定する必要があります。

      そのパス ディレクトリには、バックアップごとに新しいディレクトリが作成されます。 作成される各ディレクトリには、バックアップされたファイルが含まれます。

    • Azure は、ユーザーが Azure Storage コンテナーにバックアップを格納することを示します。 クラウドにバックアップを格納するには、ユーザーが次の要件を満たす必要があります。

      • Azure Storage 資格情報をコマンドレットに渡す必要があります。 ストレージ資格情報には、アカウント名とキーが含まれています。
      • また、コンテナー名も渡す必要があります。 コンテナーが存在しない場合は、バックアップ中に作成されます。
  • EncryptionPassword <string>: バックアップされたすべてのファイルを保存する前の暗号化に使用するパスワード。

  • AzureConnectionCredentials <pscredential>: Azure ストレージ アカウントのアカウント名とキー。

  • AzureStorageContainer <string>: Azure でのバックアップに使用するストレージ コンテナー。

  • StoragePath <string>: バックアップの保存場所。

  • ServiceAccountCredential <pscredential>: 現在実行中の AD FS サービスに使用されているサービス アカウント。 このパラメーターは、ユーザーが DKM をバックアップする必要があり、ドメイン管理者ではない場合、またはコンテナーの内容にアクセスできない場合にのみ必要です。

  • BackupComment <string[]>: 復元中に表示するバックアップに関する情報文字列。 この文字列は、Hyper-V チェックポイントの名前付けの概念に似ています。 既定値は空の文字列です。

バックアップの例

次の PowerShell の例では、AD FS の迅速な復元ツールと Backup-ADFS コマンドレットを使用した AD FS 構成のバックアップ オプションを示します。

ドメイン管理者として DKM を使用してファイル システムにバックアップする

次のコマンドレットは、-BackupDKM パラメーターを用いて、DKM で AD FS 構成をファイル システムにバックアップします。 この方法では、ドメイン管理者または委任されたアクセス許可を持つユーザーとして、DKM コンテナーの内容にアクセスできます。

Backup-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -EncryptionPassword "password" -BackupComment "Clean Install of AD FS (FS)" -BackupDKM

ローカル管理者として DKM を使用してファイル システムにバックアップする

次のコマンドレットでも、DKM を使用して AD FS 構成をファイル システムにバックアップしますが、少し異なる方法を使用します。 このオプションでは、-ServiceAccountCredential $cred パラメーターを使用してサービス アカウントの資格情報を指定し、ローカル管理者として操作を実行します。

Backup-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -EncryptionPassword "password" -BackupComment "Clean Install of AD FS (FS)" -BackupDKM -ServiceAccountCredential $cred

DKM を使用せずに Azure Storage コンテナーにバックアップする

次のコマンドレットでは、DKM を使用せずに AD FS 構成を Azure Storage コンテナーにバックアップします。 -AzureStorageContainer "adfsbackups" パラメーターを使用してコンテナーを指定します。

Backup-ADFS -StorageType "Azure" -AzureConnectionCredentials $cred -AzureStorageContainer "adfsbackups"  -EncryptionPassword "password" -BackupComment "Clean Install of AD FS"

DKM を使用せずにファイル システムにバックアップする

次のコマンドレットでは、DKM を使用せずに AD FS 構成をファイル システムにバックアップします。 -BackupDKM パラメーターが指定されていないことに注意してください。

Backup-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -EncryptionPassword "password" -BackupComment "Clean Install of AD FS (FS)"

バックアップの復元: Restore-ADFS

Backup-ADFS を使用して作成された構成を新しい AD FS インストールに適用するには、Restore-ADFS コマンドレットを使用します。 復元コマンドレットは、Install-AdfsFarm コマンドレットを使用して新しい AD FS ファームを作成し、AD FS の構成、データベース、証明書などを復元します。

復元コマンドレットでは、既存のバックアップの復元場所を確認します。 コマンドレットは、実行された日時と、ユーザーがバックアップに添付したと思われるバックアップ コメントに基づいて適切なバックアップを選択するようユーザーに指示します。 フェデレーション サービス名が異なる複数の AD FS 構成がある場合、ユーザーは最初に適切な AD FS 構成を選択するように求められます。

復元コマンドレットを使用する前に、次の要件を確認します。

  • AD FS ロールがサーバーにインストールされていない場合、コマンドレットによってロールがインストールされます。
  • このコマンドレットを実行するには、ユーザーはローカルとドメイン両方の管理者である必要があります。

重要

AD FS の迅速な復元ツールを使用してバックアップを復元する前に、サーバーがドメインに参加していることを確認してください。

Restore-ADFS コマンドレット パラメーター

Restore-ADFS コマンドレットのパラメーターを次に示します。

Restore-ADFS 
  -StorageType {FileSystem | Azure} 
  -DecryptionPassword <string> 
  -AzureConnectionCredentials <pscredential>
  -AzureStorageContainer <string>
  [-ADFSName <string>]
  [-ServiceAccountCredential <pscredential>]
  [-GroupServiceAccountIdentifier <string>]
  [-DBConnectionString <string>]
  [-Force]
  [-RestoreDKM]  
  [<CommonParameters>]
    
Restore-ADFS 
  -StorageType {FileSystem | Azure} 
  -DecryptionPassword <string>
  -StoragePath <string>
  [-ADFSName <string>]
  [-ServiceAccountCredential <pscredential>]
  [-GroupServiceAccountIdentifier <string>]
  [-DBConnectionString <string>]
  [-Force]
  [-RestoreDKM]
  [<CommonParameters>]

次の一覧では、Restore-ADFS コマンドレットのパラメーターの詳細について説明します。

  • StorageType <string>: 使用するストレージの種類。

    • FileSystem では、バックアップをローカル フォルダーまたはネットワークに格納します。
    • Azure では、バックアップを Azure Storage コンテナーに格納します。
  • DecryptionPassword <string>: バックアップされたすべてのファイルの暗号化に使用されるパスワード。

  • AzureConnectionCredentials <pscredential>: Azure ストレージ アカウントのアカウント名とキー。

  • AzureStorageContainer <string>: バックアップを Azure に格納するためのストレージ コンテナー。

  • StoragePath <string>: バックアップの保存場所。

  • ADFSName <string>: バックアップされた、今から復元するフェデレーションの名前。

    • 名前が指定されておらず、フェデレーション サービス名が 1 つしか存在しない場合は、そのフェデレーション サービス名が使用されます。
    • 複数のフェデレーション サービスがその場所にバックアップされている場合、ユーザーは、バックアップされたフェデレーション サービスの 1 つを選択するように求められます。
  • ServiceAccountCredential <pscredential>: 復元する新しい AD FS サービスに使用するサービス アカウントを指定します。

  • GroupServiceAccountIdentifier <string>: 復元する新しい AD FS サービスにユーザーが使用する gMSA。

    • 既定では、値が指定されていない場合、アカウントが gMSA の場合は、バックアップされたアカウント名が使用されます。
    • 値が指定されておらず、アカウントが gMSA でもない場合、ユーザーはサービス アカウントを指定するように求められます。
  • DBConnectionString <string>: 復元に別のデータベースを使用するには、SQL 接続文字列を指定するか、「WID」と入力します。

  • Force <bool>: バックアップ プロセスを選択した後、ツールからのプロンプトをスキップします。

  • RestoreDKM <bool>: DKM コンテナーを Active Directory に復元します。 新しい Active Directory に復元し、DKM が最初にバックアップされた場合は、このオプションを設定します。

復元の例

次の PowerShell の例では、AD FS の迅速な復元ツールと Restore-ADFS コマンドレットを使用した AD FS 構成の復元オプションを示します。

ドメイン管理者として DKM を使用してファイル システムに復元する

次のコマンドレットは、-RestoreDKM パラメーターを用いて、DKM で AD FS 構成をファイル システムに復元します。

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -RestoreDKM

DKM を使用せずにファイル システムに復元する

次のコマンドレットでは、DKM を使用せずに AD FS 構成をファイル システムに復元します。 -RestoreDKM パラメーターが指定されていないことに注意してください。

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password"

DKM を使用せずに Azure Storage コンテナーに復元する

次のコマンドレットでは、DKM を使用せずに AD FS 構成を Azure Storage コンテナーに復元します。 -AzureStorageContainer "adfsbackups" パラメーターを使用してコンテナーを指定します。

Restore-ADFS -StorageType "Azure" -AzureConnectionCredential $cred -DecryptionPassword "password" -AzureStorageContainer "adfsbackups"

WID に復元する

次のコマンドレットでは、AD FS 構成を WID に復元します。 WID 値が -DBConnectionString パラメーターに渡されていることにご留意ください。

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -DBConnectionString "WID"

SQL に復元する

次のコマンドレットでは、AD FS 構成を SQL に復元します。 Data SourceIntegrated Security の値が -DBConnectionString パラメーターに渡されていることにご留意ください。

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -DBConnectionString "Data Source=TESTMACHINE\SQLEXPRESS; Integrated Security=True"

指定された gMSA アカウントを使用して復元する

次のコマンドレットでは、指定された gMSA アカウントを使用して、AD FS 構成を復元します。 -GroupServiceAccountIdentifier パラメータを使用していることにご留意ください。

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -GroupServiceAccountIdentifier "mangupd1\adfsgmsa$"

指定されたサービス アカウント資格情報を使用して復元する

次のコマンドレットでは、指定されたサービス アカウントの資格情報を使用して、AD FS 構成を復元します。 -ServiceAccountCredential パラメータを使用していることにご留意ください。

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -ServiceAccountCredential $cred

ログ ファイル

バックアップと復元の操作ごとにログ ファイルが作成されます。 ログ ファイルは 、%LOCALAPPDATA%\ADFSRapidRecreationTool で確認できます。

注意

復元を実行すると、PostRestore_Instructions ファイルが作成される場合があります。 このファイルには、AD FS サービスを開始する前に手動でインストールする必要がある追加のデータやサービスの情報が含まれています。 このファイルで、認証プロバイダー、属性ストア、およびローカル要求プロバイダーの信頼が指定されています。

バージョン リリース履歴

次のセクションでは、AD FS の迅速な復元ツールのバージョン詳細について説明します。

バージョン 2.0.2464.1

リリース: 2023 年 12 月

修正された問題:

  • バグの修正: 復元中に CNG & CSP キーが区別されました

バージョン 1.0.82.3

リリース: 2020 年 4 月

修正された問題:

  • CNG ベースの証明書のサポートが追加されました

バージョン 1.0.82.0

リリース: 2019 年 7 月

修正された問題:

  • LDAP エスケープ文字を含む AD FS サービス アカウント名のバグ修正

バージョン 1.0.81.0

リリース: 2019 年 4 月

修正された問題:

  • 証明書のバックアップと復元のバグ修正
  • ログ ファイルへのトレース情報が追加されました

バージョン 1.0.75.0

リリース: 2018 年 8 月

修正された問題:

  • -BackupDKM スイッチの Backup-ADFS コマンドレットが更新されました。 このツールでは、現在のコンテキストが DKM コンテナーにアクセスできるかどうかを判断します。 アクセスできる場合、このツールにはドメイン管理権限やサービス アカウントの資格情報は必要ありません。 この更新により、ユーザーが資格情報を明示的に指定したり、ドメイン管理者アカウントとして操作を実行したりしない自動バックアップが有効になりました。

バージョン 1.0.73.0

リリース: 2018 年 8 月

修正された問題:

  • アプリケーションが FIPS に準拠するように暗号化アルゴリズムが更新されました

    重要

    FIPS 準拠の暗号化アルゴリズムが変更されたため、以前のバックアップは最新バージョンのツールでは機能しなくなります。

  • マージ レプリケーションを使用する SQL クラスターのサポートを追加

バージョン 1.0.72.0

リリース: 2018 年 7 月

修正された問題:

  • バグの修正: インプレース アップグレードをサポートするように .MSI インストーラーが修正されました

バージョン 1.0.18.0

リリース: 2018 年 7 月

修正された問題:

  • バグ修正: 特殊文字が含まれているサービス アカウントのパスワードを処理できるようになりました ('&'など)
  • バグ修正: Microsoft.IdentityServer.Servicehost.exe.config が別のプロセスで使用されていることが原因による復元エラーに関連する問題が解決されました

バージョン 1.0.0.0

リリース: 2016 年 10 月

AD FS の迅速な復元ツールの初回リリース