Sun Java System Directory Server Enterprise Edition 6.3 インストールガイド

第 3 章 製品の理解

Sun JavaTM System Identity Synchronization for Windows 6.0 は、Sun Java System Directory Server と次の間で双方向のパスワードおよびユーザー属性の同期を提供します。

Identity Synchronization for Windows 6.0 では、Sun Java System Directory Server 6.3、6.2、6.1、6.0、および 5.2 Patch 5 をサポートします。

Sun Java System Identity Synchronization for Windows では、次のような方法で同期イベントを処理します。

Sun Java System Identity Synchronization for Windows バージョン 6.0 をインストール (または移行) する前に、この章で説明する概念を理解しておくことをお勧めします。この章は次の節で構成されます。

製品の特徴

Sun Java System Identity Synchronization for Windows では、次の特徴および機能を備えています。


注 –

Windows NT では次の機能を利用できません。


システムコンポーネント

次の図に示すように、Identity Synchronization for Windows は一連のコアコンポーネント、および任意の数の個々のコネクタとコネクタサブコンポーネントで構成されます。これらのシステムコンポーネントは、Sun Java System Directory Server (Directory Server) ディレクトリと Windows ディレクトリの間でパスワードおよびユーザー属性の更新を同期することに対応しています。

図 3–1 システムコンポーネント

主要なシステムコンポーネントを示したブロック図。

この節では、これらの Identity Synchronization for Windows コンポーネントについて定義し、説明します。

ウォッチドッグプロセス

ウォッチドッグとは、個々のバックグラウンド Java プロセスを起動、再起動、および停止する、Identity Synchronization for Windows Java テクノロジベースのプロセス (Java プロセス) です。ウォッチドッグは、セントラルロガー、システムマネージャー、およびコネクタを起動および監視します。ウォッチドッグは、サブコンポーネント、Message Queue、または Identity Synchronization for Windows コンソールを監視しません。

ウォッチドッグは、コアコンポーネントをインストールした場所にインストールされ、SolarisTM ソフトウェアデーモン、Red Hat Linux デーモン、または Windows サービスとして起動できます。

コア

Identity Synchronization for Windows をインストールするときは、先にコアコンポーネントをインストールしてから、使用している環境に合わせて設定します。

コアコンポーネントは、次のコンポーネントで構成されます。

設定ディレクトリ

Identity Synchronization for Windows は、自身の設定データを Directory Server の 設定ディレクトリに格納します。設定ディレクトリはインストールされません。

コンソール、システムマネージャー、コマンド行ユーティリティー、およびインストーラのいずれも、次のような製品の設定データを設定ディレクトリで読み書きします。

コンソール

Identity Synchronization for Windows では、製品コンポーネントの設定および管理タスクのすべてを集中化するコンソールを提供しています。

コンソールを使用すると、次の操作を実行できます。

コマンド行ユーティリティー

Identity Synchronization for Windows では、次のタスクをコマンド行から直接実行できるようにするコマンド行ユーティリティーも提供します。

製品のコマンド行ユーティリティーの詳細とその使用方法については、付録 A 「Identity Synchronization for Windows コマンド行ユーティリティーの使用」を参照してください。

システムマネージャー

Identity Synchronization for Windows システムマネージャーは、次の処理を実行する独立した Java プロセスです。

セントラルロガー

コネクタは、遠隔の地域に広く分散されるようにインストールできます。そのため、すべてのロギング情報を集中化することには、管理上大きな価値があります。このように集中化することで、管理者は同期アクティビティーを監視したり、エラーを検出したり、システム全体の健全性を評価したりすることが一箇所から行えるようになります。

管理者は、セントラルロガーのログを使用して、次のようなタスクを実行できます。

ログの種類には、次の 2 種類があります。


注 –

Identity Synchronization for Windows では、すべてのエラーログメッセージが監査ログにも書き込まれるため、ほかのイベントとの相関性がわかりやすくなります。


コネクタ

コネクタは、単一のデータソースタイプでの同期プロセスを管理する Java プロセスです。コネクタは、データソースでユーザーによる変更を検出し、Message Queue を介してこれらの変更をリモートコネクタに発行します。

Identity Synchronization for Windows では、次のディレクトリ固有のコネクタを提供します。これらのコネクタは、ディレクトリやドメイン間でユーザー属性およびパスワード更新を双方向に同期します。


注 –

ウォッチドッグは、コネクタをインストールした場所にインストールされ、コネクタを起動、再起動、および停止します。詳細については、「ウォッチドッグプロセス」を参照してください。


コネクタサブコンポーネント

サブコンポーネントは、コネクタとは独立して実行される軽量プロセスまたはライブラリです。コネクタは、Directory Server や Windows NT の内部でパスワードを収集するといった遠隔からアクセスできないネイティブリソースにアクセスするためにサブコンポーネントを使用します。

次のコネクタサブコンポーネントは、同期されるディレクトリで設定またはインストールされ、暗号化された接続を介して対応するコネクタと通信します。


注 –

Active Directory コネクタは、サブコンポーネントを必要としません。


ディレクトリサーバープラグイン

ディレクトリサーバープラグインは、ディレクトリサーバーコネクタのサブコンポーネントです。同期される Directory Server ごとにディレクトリサーバープラグインを設定します。

このプラグインには、次の機能があります。


注 –

これまで Identity Synchronization for Windows では、2 方向のマルチマスターレプリケーション (MMR) のみをサポートしていました。これからは N 方向の MMR 環境でもディレクトリサーバープラグインが機能します。


Windows NT コネクタサブコンポーネント

使用しているインストールで Windows NT SAM レジストリとの同期が必要な場合は、Identity Synchronization for Windows のインストールプログラムによって、Windows NT コネクタとともに次の項目がプライマリドメインコントローラ (PDC) にインストールされます。

Message Queue

Identity Synchronization for Windows では、パブリッシュ/サブスクライブモデルの持続的なメッセージキューメカニズムである Sun Java System Message Queue (Message Queue) を使用して、属性およびパスワードの変更をディレクトリソース間で伝播させます。Message Queue は、ディレクトリソースの同期を管理するコネクタに対して、管理情報および設定情報も配信します。

Message Queue は、Java Message Service オープン標準を実装した企業向けのメッセージングシステムです。この仕様では、Java アプリケーションが分散環境でメッセージを作成、送信、受信、および読み取る共通の方法を提供する、一連のプログラミングインタフェースを記述しています。

Message Queue は、共通のメッセージサービスを使用してメッセージを交換するメッセージの発行元とサブスクライバで構成されます。このサービスは、1 つ以上の専用のメッセージ ブローカから成ります。メッセージブローカはメッセージキューへのアクセス制御、アクティブな発行元およびサブスクライバに関する情報の維持、およびメッセージが配信されたことの確認を行います。

Message Queue は次の処理を行います。

システムコンポーネントの分散

効果的に配備を開発する前に、Identity Synchronization for Windows コンポーネントの編成と製品の動作について理解します。この節の内容は次のとおりです。

コア


注 –

Sun Java System Message Queue 3.6 Enterprise Edition は、コアをインストールする予定のマシンと同じマシンにインストールしてください。


サポートされるオペレーティングシステムのディレクトリサーバーのいずれかに、すべてのコアコンポーネントを 1 回だけインストールします。Identity Synchronization for Windows では、管理サーバーがマシンにインストールされていない場合はインストールされます。

ディレクトリサーバーコネクタおよびプラグイン

ディレクトリサーバーコネクタは、サポートされるオペレーティングシステムのいずれにでもインストールできます。ディレクトリサーバーコネクタは、同期される Directory Server が実行されているマシンと同じマシンにインストールする必要はありません。ただし、設定された Directory Server ソースごとにディレクトリサーバーコネクタを 1 つインストールします。

同期される Directory Server が存在するホストごとにディレクトリサーバープラグインを設定してください。


注 –

Directory Server ソースごとに 1 つのディレクトリサーバーコネクタがインストールされます。ただし、ディレクトリサーバープラグインは同期される各マスター、ハブ、コンシューマレプリカに対して設定するようにしてください。


Active Directory コネクタ

Active Directory コネクタは、サポートされるオペレーティングシステムのいずれにでもインストールできます。Windows を実行しているマシンに Active Directory コネクタをインストールする必要はありません。ただし、Active Directory ドメインごとに Active Directory コネクタを 1 つインストールしてください。コンポーネントの分散例については、次の図を参照してください。

図 3–2 Directory Server および Active Directory のコンポーネントの分散

Active Directory コンポーネントを示すブロック図。

Windows NT コネクタおよびサブコンポーネント

Windows NT SAM レジストリと同期するには、Windows NT コネクタをプライマリドメインコントローラ (PDC) にインストールしてください。NT ドメインの PDC には、コネクタのほかに変更検出機能 およびパスワードフィルタDLL という 2 つの NT コネクタサブコンポーネントもインストールプログラムによってインストールされます。1 つの NT コネクタは、1 つの NT ドメインに対してユーザーとパスワードを同期します。コンポーネントの分散例については、次の図を参照してください。

図 3–3 Directory Server と Windows NT のコンポーネントの分散

Windows NT コネクタおよびサブコンポーネントを示すブロック図。

Identity Synchronization for Windows がディレクトリソースでの変更を検出する方法

この節では、ユーザーエントリおよびパスワードの変更が Sun Java System Directory Server (Directory Server)、Windows Active Directory、および Windows NT のコネクタによって検出される方法について説明します。

ここで説明する内容は、次のとおりです。

ディレクトリサーバーコネクタが変更を検出する方法

ディレクトリサーバーコネクタは、Directory Server の旧バージョン形式の更新履歴ログを LDAP を介して検証し、ユーザーエントリおよびパスワードの変更イベントを検出します。ディレクトリサーバープラグインを使用すると、コネクタは次の処理を実行できます。

旧バージョン形式の更新履歴ログの詳細については、『Sun Java System Directory Server Enterprise Edition 6.3 Reference』「Replication and the Retro Change Log Plug-In」を参照してください。

図 3–4 ディレクトリサーバーコネクタが変更を検出する方法

ディレクトリサーバーコネクタが変更を検出する方法を示すブロック図。

Active Directory コネクタが変更を検出する方法

Windows 2000/2003 Server Active Directory コネクタは、Active Directory USNChanged および PwdLastSet 属性値を検証してユーザーエントリおよびパスワードの変更を検出します。

Directory Server の旧バージョン形式の更新履歴ログとは異なり、エントリで属性を変更しても、Active Directory は変更された属性を報告しません。代わりに、Active Directory では USNchanged 属性の増加させることでエントリの変更を識別します。個々の属性に対する変更を検出するために、Active Directory コネクタはオブジェクトキャッシュと呼ばれるインプロセスデータベースを使用します。オブジェクトキャッシュは、各 Active Directory エントリのハッシュされたコピーを格納し、コネクタがエントリで変更された属性を正確に判断できるようにします。

Active Directory コネクタを Windows にインストールする必要はありません。これらのコネクタは、Solaris や Red Hat Linux などほかのオペレーティングシステム上でも実行でき、LDAP を介して遠隔から変更を加えたり検出したりすることができます。

図 3–5 Active Directory コネクタが変更を検出する方法

Active Directory コネクタが変更を検出する方法を示すブロック図。

Windows NT コネクタが変更を検出する方法

Windows NT コネクタは、ユーザーオブジェクトに関する監査イベントのセキュリティーログを検証してユーザーエントリおよびパスワードの変更を検出します。監査は有効にしてください。有効にしない場合、Identity Synchronization for Windows で Windows NT マシンからのログメッセージを読み取れません。監査ログの記録が有効であることを確認するには、「Windows NT マシンでの監査の有効化」を参照してください。

図 3–6 Windows NT コネクタが変更を検出する方法

Windows NT コネクタが変更を検出する方法を示すブロック図。

変更検出機能およびパスワードフィルタ DLL のサブコンポーネントの説明については、「Windows NT コネクタサブコンポーネント」を参照してください。

パスワード更新の伝播

この節では、平文パスワードを取得する 2 つの方法について説明します。平文パスワードは、Windows ソースと Directory Server ソースとの間でパスワードの変更を伝播させるために必要です。

パスワードフィルタ DLL を使用した平文パスワードの取得

Windows NT コネクタは、Sun Java System Directory Server にパスワードの更新を伝播させるために平文パスワードを取得する必要があります。ただし、Windows ディレクトリから平文パスワードを抽出することはできません。パスワードがディレクトリに格納される時点で、すでにパスワードは暗号化されています。

Windows NT では、ディレクトリに永続的に格納される前に平文パスワードをコンポーネントが収集できるようにする パスワードフィルタ DLL インタフェースを提供します。

オンデマンドパスワード同期を使用した平文パスワードの取得

Active Directory では、Windows NT と同じパスワードフィルタをサポートしていますが、Window NT で使用されるプライマリドメインコントローラではなく各ドメインコントローラにパスワードフィルタ DLL をインストールしてください。これは、インストールでの過大な負担となる可能性があるため、Identity Synchronization for Windows ではオンデマンドパスワード同期と呼ばれる別の手法を使用して、パスワードの変更を Active Directory から Directory Server に同期します。

オンデマンドパスワード同期では、ユーザーが Windows 2000/2003 でパスワードを変更したあとでログインを試みたときに Directory Server 上で新しいパスワードの値を取得するための方法が提供されます。

また、パスワードフィルタ DLL を使用せずに Active Directory 上でパスワードを同期することもできます。

    オンデマンドパスワード同期のプロセスは次のとおりです。

  1. ユーザーは、Windows を実行しているマシンで Ctrl-Alt-Del を押し、自分のパスワードを変更します。新しいパスワードが Active Directory に格納されます。

  2. Active Directory コネクタは、スケジュールされた間隔でシステムをポーリングします。

    コネクタは、USNchanged (Update Sequence Number) および PwdLastSet 属性に対する変更に基づいてパスワードの変更を検出すると、パスワードの変更に関するメッセージを Message Queue に発行します。メッセージは、SSL 暗号化チャネル上を転送されます。

    オンデマンドパスワード同期の動作方法を示すブロック図。
  3. ディレクトリサーバーコネクタは、SSL を介して Message Queue からパスワードの変更メッセージを受信します。

  4. ディレクトリサーバーコネクタは、ユーザーエントリの dspswvalidate 属性を true に設定します。これにより、古いパスワードは無効になり、パスワードの変更がディレクトリサーバープラグインに通知されます。

  5. ユーザーがログインを試みると、Sun Java System ディレクトリサーバープラグインは、Directory Server に対して認証を求める LDAP アプリケーション (Portal Server など) を使用して、Directory Server エントリのパスワードの値が無効であることを検出します。

  6. ディレクトリサーバープラグインは、Active Directory で対応するユーザーを検索します。プラグインは、ユーザーが見つかると、ユーザーが Directory Server へのログインを試みたときに入力されたパスワードを使って、Active Directory へのバインドを試みます。


    注 –

    オンデマンドパスワード同期では、Directory Server に対してアプリケーションで SASL Digest-MD5 などのより複雑な認証メカニズムを使用する代わりに、単純認証を使用する必要があります。


  7. Active Directory に対するバインドに成功すると、ディレクトリサーバープラグインは、パスワードを設定し、Directory Server 上のユーザーエントリから無効なパスワードフラグを取り除いて、ユーザーがログインできるようにします。

    ユーザーエントリおよびパスワードの変更が Active Directory および Directory Server で更新される方法を示す図。
    注 –

    ユーザー認証に失敗すると、ユーザーエントリのパスワードは Directory Server に残り、Directory Server および Active Directory 上のパスワードは、ユーザーが有効なパスワードでログインするまで一致しません。有効なパスワードは、Active Directory に対して認証されたパスワードです。


信頼できる同期

Identity Synchronization for Windows では、コンポーネントが一時的に利用不可になった場合にもユーザーの変更イベントを確実に逃さないように多くの予防策をとっています。Identity Synchronization for Windows の信頼性は、TCP ネットワークプロトコルに似ています。TCP は、緩く断続的に接続されたネットワークであっても、最終的にすべてのデータが正常に配信されることを保証しています。一時的なネットワーク停止中に送信されたデータは、ネットワークがダウンしている間はキューに入れられ、接続が復元してから再配信されます。Identity Synchronization for Windows は、次のいずれかのコンポーネントが一時的に利用不可になっても、ユーザーの変更イベントを最終的に検出して適用します。

これらのコンポーネントのいずれかが利用できなくなると、Identity Synchronization for Windows では、影響を受けるコンポーネントが利用できるようになってパスワードを始めとするすべての変更を含むようになるまで同期を遅らせます。このバージョンの Identity Synchronization for Windows では、SunTM Cluster ソフトウェアやその他の真の高可用性ソリューションをサポートしません。ユーザーは Identity Synchronization for Windows と直接対話しないため、高可用性は通常必要ありません。壊滅的な失敗が発生した場合は、Identity Synchronization for Windows コンポーネントを再インストールし、idsync resync コマンドを使用してすべてのディレクトリソースを再同期できます。

ほとんどの状況では、コンポーネントが利用できなくなると、同期イベントがキューに入れられ、コンポーネントが利用可能になったときだけ同期イベントが適用されます。このプロセスには、2 つの例外があります。

配備の例: 2 台のマシン構成

この節では、Identity Synchronization for Windows がユーザーオブジェクトの作成および双方向のパスワード変更操作を Directory Server ソースと Active Directory ソースの間で同期するときに使用する配備シナリオについて説明します。

この配備シナリオは、2 台のマシンで構成されます。


注 –

このシナリオでは Windows NT を使用していませんが、Identity Synchronization for Windows では NT ドメインとの同期もサポートしています。


この配備シナリオで使用される同期の要件 (ノード構造と関連の属性値) を次の図に示します。

ノード構造と属性値を示す同期の要件。

このシナリオでは、次のような 2 つの目標があります。


注 –

Identity Synchronization for Windows では、同じタイプの複数の同期ソースをサポートします。たとえば配備や複数の Active Directory ドメインで複数の Directory Server を使用できます。

作成、変更、および削除の同期設定は、ディレクトリの全体でグローバルであり、個々のディレクトリソースに対して指定することはできません。ユーザーオブジェクトの作成を Directory Server から Active Directory へ同期する場合、すべての Directory Server からインストール時に設定したすべての Active Directory ドメインや Windows NT ドメインにユーザーオブジェクトの作成が伝播します。


物理的な配備

すべての製品コンポーネントを単一の Solaris システム上に物理的に配備して、Active Directory ドメインはコンポーネントがインストールされていない別の Active Directory ドメインコントローラに配置した様子を次の図に示します。

図 3–7 Directory Server および Active Directory のシナリオ

Directory Server および Active Directory の物理的な配備。

コンポーネントの分散

corp.example.com は、Solaris オペレーティングシステム上に Directory Server をインストールしたマシンです。同期される Directory Server インスタンスのルートサフィックスは dc=corp,dc=example,dc=com です。

このトポロジは次を含みます。