2.5. 参照の使用
リファーラルは、特定の情報についてどのサーバーに接続するかをクライアントアプリケーションに通知します。このリダイレクトは、クライアントアプリケーションが、ローカルサーバーに存在しないディレクトリーエントリーを要求するか、メンテナンスのためにデータベースがオフラインになったときに発生します。本セクションでは、リファーラルに関する以下の情報を提供します。
ディレクトリーでリファーラル部分を使用する方法に関する概念情報は、『Red Hat Directory Server デプロイメントガイド』 を参照してください。
2.5.1. リファーラルモードでのサーバーの起動
リファーラルは、現在のサーバーが利用できない場合や、クライアントが現在のサーバーに保持されない情報を要求する場合に、クライアントアプリケーションを別のサーバーにリダイレクトするために使用されます。たとえば、Directory Server の設定変更中に Directory Server を起動すると、そのサーバーが利用できない場合に、すべてのクライアントを別のサプライヤーへ参照します。リファーラルモードで Directory Server を起動するには、refer コマンドを使用します。
refer オプションを指定して nsslapd を実行します。
# ns-slapd refer -D /etc/dirsrv/slapd-instance_name [-p port] -r referral_url
/etc/dirsrv/slapd-instance_name
/ は、Directory Server 設定ファイルがあるディレクトリーです。これは、Red Hat Enterprise Linux でのデフォルトの場所です。- port は、リファーラルモードで開始する Directory Server のオプションのポート番号です。
- referral_url は、クライアントに返される参照先です。LDAP URL の形式は、付録C LDAP URLを参照してください。
2.5.2. デフォルト参照の設定
Directory Server は、ディレクトリーが維持する接尾辞にない DN で操作を送信するクライアントアプリケーションにデフォルトのリファーラル情報を返します。以下の手順では、コマンドラインを使用してディレクトリーのデフォルトリファーラル情報を設定する方法を説明します。
2.5.2.1. コマンドラインを使用したデフォルトのリファーラルの設定
dsconf config replace コマンドを使用して、
nsslapd-referral
パラメーターのデフォルトのリファーラルを設定します。たとえば、ldap://directory.example.com/
をデフォルトのリファーラルとして設定するには、以下のコマンドを実行します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-referral="ldap://directory.example.com/"
2.5.3. スマートリファーラルの作成
スマートリファーラルは、ディレクトリーエントリーまたはディレクトリーツリーを特定の LDAP URL にマッピングします。スマートリファーラルを使用すると、クライアントアプリケーションは特定のサーバーまたは特定のサーバーの特定のエントリーを参照できます。
たとえば、クライアントアプリケーションは、ディレクトリーエントリー uid=jdoe,ou=people,dc=example,dc=com を要求します。サーバー directory.europe.example.com のエントリー cn=john doe,o=people,ou=europe,dc=example,dc=com を参照するクライアントにスマートリファーラルが返されます。
ディレクトリーがスマートリファーラルを使用する方法は、RFC 2251 セクション 4.1.11 で指定された標準仕様に準拠します。RFC は、http://www.ietf.org/rfc/rfc2251.txt でダウンロードできます。
2.5.3.1. コマンドラインを使用したスマートリファーラルの作成
スマートリファーラルを作成するには、referral オブジェクトクラスで関連ディレクトリーエントリーを作成し、
ref
属性をリファーラル LDAP URL に設定します。
たとえば、
ldap://directory.europe.example.com/cn=user,ou=people,ou=europe,dc=example,dc=com
を参照する uid=user,ou=people,dc=example,dc=com という名前のスマートカードを作成するには、次のコマンドを実行します。
# ldapadd -D "cn=Directory Manager" -W -p 389 -h server2.example.com -x dn: uid=user,ou=people,dc=example,dc=com objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson objectclass: referral sn: user uid: user cn: user ref: ldap://directory.europe.example.com/cn=user,ou=people,ou=europe,dc=example,dc=com
注記
Directory Server は、LDAP URL 領域後の情報を無視します。このため、リファーラルとして使用する LDAP URL 内の領域の代わりに %20 を使用します。
DN パスにすでにリファーラルがある場合は、ldapadd に
-M
オプションを使用します。スマートリファーラルの詳細は、『Directory Server デプロイメントガイド』 を参照してください。
2.5.4. バグ修正参照の作成
以下の手順では、接尾辞 にリファーラルを作成する方法を説明します。これは、接尾辞のプロセスがデータベースまたはデータベースリンクではなく、リファーラルを使用して処理されることを意味します。
警告
リファーラルを返すように接尾辞を設定すると、接尾辞に関連付けられたデータベースに含まれる ACI は無視されます。
2.5.4.1. コマンドラインを使用した接尾辞リファーラルの作成
接尾辞リファーラルを作成するには、以下を実行します。
- 必要に応じて、ルートまたは従属接尾辞が存在しない場合は作成します。詳細については、「接尾辞の作成」 を参照してください。
- 接尾辞にリファーラルを追加します。以下に例を示します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend suffix set --add-referral="ldap://directory.example.com/" database_name
2.5.4.2. Web コンソールを使用した接尾辞リファーラルの作成
接尾辞リファーラルを作成するには、以下を実行します。
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- Database メニューを開きます。
- 必要に応じて、ルートまたは従属接尾辞が存在しない場合は作成します。詳細については、「接尾辞の作成」 を参照してください。
- 一覧で接尾辞を選択し、Referrals タブを開きます。
- Create Referral をクリックします。
- リファーラル URL を作成するために、フィールドに入力します。
- Create Referral をクリックします。