AD FS 構成データベースの役割

AD FS 構成データベースは、Active Directory フェデレーション サービス (AD FS) 2.0 (すなわち、フェデレーション サービス) の単一のインスタンスを表すすべての構成データを格納します。AD FS 構成データベースは、フェデレーション サービスがパートナー、証明書、属性ストア、クレーム、およびこれらの関連エンティティに関するさまざまなデータを識別するために必要とする一連のパラ メーターを定義します。この構成データは、Microsoft SQL Server® データベース、または Windows Server® 2008 および Windows Server 2008 R2 に含まれている Windows Internal Database 機能に格納できます。

Windows Internal Database は、リレーショナル データ ストアを使用し、独自の管理ユーザー インターフェイス (UI) は持っていません。代わりに、管理者は、AD FS 管理スナップイン、Fsconfig.exe、または Windows PowerShell™ コマンドレットを使用して、AD FS 構成データベースの内容を変更できます。このトピックでは、AD FS 2.0 で提供される以下のデータベース オプションについて説明します。これを読むことで、Windows Internal Database と SQL Server データベースを使用する場合の利点と欠点について理解できます。

  • AD FS 2.0 フェデレーション サーバー構成ウィザードを使用して Windows Internal Database を構成する

  • Fsconfig.exe を使用して SQL Server を構成する

AD FS 構成データベースのすべての内容は、Windows Internal Database のインスタンスまたは SQL データベースのインスタンスのいずれかに格納できますが、両方に格納することはできません。つまり、AD FS 構成データベースの同じインスタンスを格納するために、Windows Internal Database を使用するフェデレーション サーバーと SQL Server のデータベースを使用するフェデレーション サーバーを混在させることはできません。

AD FS 2.0 フェデレーション サーバー構成ウィザードを使用して Windows Internal Database を構成する

Fsconfig.exe コマンドライン ツールまたは AD FS 2.0 フェデレーション サーバー構成ウィザードを使用して、AD FS 構成データベースを Windows Internal Database インスタンス内に作成できます。これらのツールのいずれかを使用する場合、以下のオプションのいずれかを選択してフェデレーション サーバー トポロジを作成できます。各オプションでは、AD FS 構成データベースを格納するために Windows Internal Database を使用します。

  • スタンドアロンのフェデレーション サーバーを作成する

  • フェデレーション サーバー ファームに最初のフェデレーション サーバーを作成する

  • フェデレーション サーバー ファームにフェデレーション サーバーを追加する

ス タンドアロン オプションを選択する場合、Windows Internal Database は AD FS 構成データベースの単一のインスタンスを格納するために使用されます。このインスタンスを複数のフェデレーション サーバー間で共有することはできません。したがって、これは小規模の運用環境またはテスト ラボ環境での使用に適しています。スタンドアロンのフェデレーション サーバーのセットアップ方法については、「AD FS 2.0 展開ガイド」の「スタンドアロンのフェデレーション サーバーを作成する」(英語) を参照してください。

フェ デレーション サーバー ファームに最初のフェデレーション サーバーを作成するオプションを選択する場合は、後からファームにフェデレーション サーバーを追加できるように、スケーラビリティを考慮して Windows Internal Database を構成します。最初のフェデレーション サーバーを設定する方法、またはファームにフェデレーション サーバーを追加する方法の詳細については、「AD FS 2.0 展開ガイド」の「フェデレーション サーバー ファームに最初のフェデレーション サーバーを作成する」(英語) または「フェデレーション サーバー ファームにフェデレーション サーバーを追加する」(英語) を参照してください。

ファーム オプションを使用してフェデレーション サーバー ファームを展開する場合は、SAML (Security Assertion Markup Language) トークン リプレイ検出、SAML アーティファクト解決など、AD FS 2.0 の一部の機能を使用できません。サーバー ファーム構成時にすべての機能セットにアクセスするには、代わりに Microsoft SQL Server を使用して AD FS 構成データベースを格納してください。

フェデレーション サーバー ファーム オプションの動作
このセクションでは、AD FS 2.0 フェデレーション サーバー構成ウィザードのフェデレーション サーバー ファーム オプションに関連する重要な概念について説明します。

プライマリ フェデレーション サーバー
プライマリ フェデレーション サーバーは、Windows Server 2008 または Windows Server 2008 R2 を実行するコンピューターで、AD FS 2.0 フェデレーション サーバー構成ウィザードを使用してフェデレーション サーバーの役割を果たすように構成され、AD FS 構成データベースの読み書き可能なコピーが格納されています。プライマリ フェデレーション サーバーを作成するには、AD FS 2.0 フェデレーション サーバー構成ウィザードを使用して、新しいフェデレーション サービスを作成するオプションを選択し、コンピューターをファーム内の最初のフェデレーション サーバーにします。そのファーム内の他のすべてのフェデレーション サーバー (セカンダリ フェデレーション サーバー) は、プライマリ フェデレーション サーバーに対して行われた変更を、ローカルに保存されている AD FS 構成データベースのコピーに同期させる必要があります。

セカンダリ フェデレーション サーバー
セ カンダリ フェデレーション サーバーは、プライマリ フェデレーション サーバーからの AD FS 構成データベースのコピーを格納しますが、このコピーは読み取り専用です。セカンダリ フェデレーション サーバーは、ファーム内のプライマリ フェデレーション サーバーに接続し、一定間隔でサーバーをポーリングしてデータが変更されたかどうかをチェックすることにより、プライマリとデータを同期します。セカンダ リ フェデレーション サーバーは、ネットワーク環境のさまざまなサイトから出されるアクセス要求による負荷を分散する役割を果たすと同時に、プライマリ フェデレーション サーバーにフォールト トレランスを提供します。

プライマリ フェデレーション サーバーがクラッシュしてオフラインになった場合でも、すべてのセカンダリ フェデレーション サーバーは通常どおり要求を処理し続けます。ただし、プライマリ フェデレーション サーバーがオンライン状態に戻るまで、フェデレーション サービスに新たに変更を加えることはできません。Windows PowerShell を使用して、セカンダリ フェデレーション サーバーをプライマリフェデレーション サーバーとして指定することができます。詳細については、「Windows PowerShell による AD FS 2.0 の管理」(英語) を参照してください。

AD FS 構成データベースの同期方法
AD FS 構成データベースはその役割が重要であるため、ネットワークのすべてのフェデレーション サーバーで使用できます。これにより、各サーバーは要求の処理時にフォールト トレランス機能と負荷分散機能を提供できます (ネットワーク ロード バランサーが使用されている場合)。ただし、セカンダリ フェデレーション サーバーがこの機能を提供するためには、プライマリ フェデレーション サーバーに格納されている AD FS 構成データベースと同期する必要があります。

ファームにフェデレーション サーバーを追加する場合、セカンダリ フェデレーション サーバーになる新しいコンピューターは、プライマリ フェデレーション サーバーに接続して AD FS 構成データベースのコピーを複製します。これ以降、新しいフェデレーション サーバーは、次の図に示すように定期的にプライマリ フェデレーション サーバーから更新を取得し続けます。

各 セカンダリ フェデレーション サーバーは、変更を確認するために、5 分おきにプライマリ フェデレーション サーバーをポーリングします。Windows PowerShell コマンドレットを使用すると、このデフォルトの 5 分間隔の値を調整できるほか、いつでも強制的に即時同期を行うことができます。この方法の詳細については、「Windows PowerShell による AD FS 2.0 の管理」(英語) を参照してください。

Windows Internal Database の同期プロセスでは、中間段階の変更をより効率的に転送できるように、増分転送もサポートされています。増分転送プロセスでは、必要なネットワーク上のト ラフィックを大幅に削減でき、転送が完了するまでの時間を大幅に短縮できます。

AD FS 構成データベースの Windows Internal Database から SQL Server のインスタンスへの移行は、AD FS 2.0 ではサポートされていません。

Fsconfig.exe を使用して SQL Server を構成する

Fsconfig.exe コマンドライン ツールを使用すると、単一の SQL Server データベース インスタンス内に AD FS 構成データベースを作成できます。SQL Server データベースを AD FS 構成データベースとして使用すると、Windows Internal Database を使用する場合に比べて次の利点があります。

  • 管理者は SQL Server の高可用性機能を活用できます。

  • 高トラフィック時のパフォーマンスが向上します。

  • SAML アーティファクト解決や SAML/WS フェデレーション トークン リプレイ検出などの機能 (後述) がサポートされます。

AD FS 構成データベースを SQL データベース インスタンスに格納する場合は、"プライマリ フェデレーション サーバー" の用語は適用されません。これは、次の図に示されているように、すべてのフェデレーション サーバー上で同様に、クラスター化された同じ SQL Server インスタンスを使用する AD FS 構成データベースの読み書きが可能になるためです。

SQL Server を使用して、2 つ以上のサーバーがサーバー クラスターとして連携動作するように構成することにより、AD FS 2.0 は、着信クライアント要求へのサービス提供において高い可用性を保つことができます。高可用性により、サーバーを追加することでサーバーの処理能力を向上 させることができるスケールアウト アーキテクチャが実現されます。シングル ポイント障害は、自動的なクラスター フェールオーバーによって軽減されます。

高可用性は、SQL のクラスタリング技術によるネットワーク負荷分散とフェールオーバー サービスを使用することで達成できます。高可用性を実現するための SQL Server の構成方法については、「高可用性ソリューションの概要」 (https://go.microsoft.com/fwlink/?LinkId=179853) を参照してください。

SAML アーティファクト解決
SAML (Security Assertion Markup Language) アーティファクト解決は、SAML 2.0 プロトコルのうち、証明書利用者がクレーム プロバイダーからトークンを直接取得する方法を記述している部分に基づいたエンドポイントです。解決プロセスの最初の段階では、ブラウザー クライアントがリソース フェデレーション サーバーに接続してアーティファクトを提供します。第 2 段階では、アーティファクトのメッセージを解決するために、アカウント パートナー組織でホストされている SAML アーティファクトのエンドポイント URL にリソース フェデレーション サーバーがアーティファクトを送信します。最終段階では、アカウント フェデレーション サーバーがブラウザー クライアントの代わりにトークンをフェデレーション サーバーに発行します。

アカウント パートナー組織の管理者は、ファーム内のすべてのアカウント フェデレーション サーバーで、Windows ルート証明書プログラムのメンバーのルート証明書にチェーンする SSL 証明書を IIS のフェデレーション パッシブ Web サイト (<ComputerName>\Sites\Default Web Site\adfs\ls) に割り当てまたはバインドする必要があります。これは、リソース フェデレーション サーバーで SSL 証明書を [ローカル コンピューター] の [信頼されたユーザー] 証明書ストアに手動で追加することが必要になったり、組織で公開されているアーティファクトを解決できなくなることを避けるために重要です。

SAML/WWS-Federation のトークン リプレイ検出
トークン リプレイと いう語は、アカウント パートナー組織内のブラウザー クライアントがリソース フェデレーション サーバーに認証されるために、アカウント フェデレーション サーバーから受け取った同じトークンの送信を何度も試みる動作を指します。この動作は、ユーザーが認証ページを再送信する目的でブラウザーの [戻る] ボタンをクリックしたときに発生します。

AD FS 2.0 では、同じトークンを使用する複数のトークン要求を検出して破棄することができるトークン リプレイ検出と いう機能が提供されています。トークン リプレイ検出機能を有効にすると、同じトークンが複数回使用されないようにすることで、WS-Federation パッシブ プロファイルと SAML WebSSO プロファイルの両方で認証要求の整合性が保護されます。キオスクを使用する場合など、セキュリティが非常に重要な懸念事項になる状況では、この機能を有効 にする必要があります。

キオスクの場合、ユーザーがすべての Web サイトからサインアウトした後で、悪意のあるユーザーが、ブラウザーの履歴を使用して前のユーザーが読み込んだフェデレーション認証ページを再送信しよう とすることが考えられます。この機能は、後続のトークンのリプレイを検出して複数回の認証試行が成功しないようにするために、アカウント パートナー組織によって行われた成功した認証に関する追加情報を保存することで、このような問題を軽減します。