LDAP アダプタの「リフェラル」セクションのプロパティーを使えば、LDAP リフェラル情報を入力できます。
表 1–52 LDAP アダプタ — 「リフェラル」設定
次に、「リフェラル」セクションに含まれるプロパティーに関する追加の注意事項を示します。
リフェラルとは、クライアントの要求を別のサーバーにリダイレクトするために使用される構成要素のことです。リフェラルには、ほかのオブジェクトの名前と場所が含まれます。これは、クライアントから要求された情報が 1 つ以上の別の場所、おそらく 1 つ以上の別のサーバー上に存在していることを示すために、サーバーによって送信されます。
検索処理を実行すると、リフェラルエントリが検出される可能性がありますが、このエントリは、その情報が格納されている場所へのポインタにすぎません。このポインタの形式は通常、このアダプタの「プロバイダ URL」設定と似たものになります。その構成要素は次のとおりです。
ホスト名
ポート番号
コンテキスト名 (省略可能)
リフェラル検出時の選択肢は、次のとおりです。
無視: リフェラルを無視します。
追跡: リフェラルを追跡します。つまり、参照先のシステムに接続し、検索処理を続行します。
スロー: リフェラル例外をスローします。クライアントからこの例外をキャッチし、必要に応じてアクションを実行することができます。
LDAP アダプタで、リフェラル使用時に設定する必要のあるプロパティーは、次のとおりです。
資格ファイル: ファイルへの完全修飾パスを入力します。このファイルには、適切なリフェラル資格情報が含まれている必要があります (このファイルは RCF コマンド行ユーティリティーを使って生成する必要があるが、これについてはこのセクションの後の方で説明する)。
追跡: 「はい」または「いいえ」。 デフォルトは「はい」です。
次の表に示す各シナリオが発生する可能性がありますが、どのシナリオが発生するかは、リフェラル用に指定されたプロパティーとアダプタの動作に依存します。それらについて、シナリオごとに説明します。
表 1–53 リフェラルのシナリオ
「追跡」の設定 |
資格ファイル |
アダプタの動作 |
---|---|---|
「追跡」が「はい」に設定されている。 |
資格ファイルが提供されていない。 |
アダプタは、初期サーバーで入力された元の資格 (ユーザー名とパスワード) を使用して、参照先システムへの接続を試みます。参照先システムが同じ資格を持たない場合、接続が失敗する可能性があります。 |
資格ファイルが提供され、そのファイル内に参照先ホストの資格エントリが含まれている。 |
リフェラル検出時に LdapReferralException をスローするように、初期サーバーへの接続が設定されます。この例外はその後、アダプタによってキャッチされます。続いて、アダプタは、資格ファイル内に指定された資格情報を使って参照先システムへの接続を確立します。 |
|
提供された資格ファイル内に、参照先ホストの資格エントリが含まれていない。 |
リフェラル検出時に LdapReferralException をスローするように、初期サーバーへの接続が設定されます。この例外はその後、アダプタによってキャッチされます。続いて、アダプタは、匿名ログインを使って参照先システムへの接続を確立します。参照先システムが匿名ログインを許可していない場合、接続が失敗する可能性があります。 |
|
「追跡」が「いいえ」に設定されている。 |
資格ファイルが存在しない。 |
リフェラルは追跡されません。つまり、アダプタはリフェラルを無視します。 |
資格ファイルを作成するには、RCF (Referral Credentials File) コマンド行ユーティリティーを使用できます。
コマンド行からパラメータを 1 つも指定しないで RCF ユーティリティーを実行すると、ユーティリティーの使用方法が表示されます。
RCF ユーティリティーで使用されるファイルは、次の場所に格納されています。
netbeans_home\usrdir\modules\ext\ldapadapter\stcldap13.jar |
または
<netbeans_home>\usrdir\modules\ext\ldapadapter\ stcldap14.jar |
上記ファイルのいずれかをあるフォルダにコピー & ペーストし、そのフォルダから次のようにしてユーティリティーを実行します。
netbeans_home\jdk\bin\java -cp ./stcldap13.jar com.stc.connector.ldapadapter.utils.RCFUtil |
次のメニューが表示されます。
C:\temp>java -cp ./stcldap13.jar com.stc.connector.ldapadapter.utils.RCFUtil Please specify the operation. ---+ RCFUtil +--- Interactive command line utility for creating and managing file(s) containing credentials information to follow LDAP referrals. File(s) generated can be used by the Java LDAP Adapter for following referrals that required credentials different from those used to create the connection to the initial LDAP server. Usage : java com.stc.connector.ldapadapter.utils.RCFUtilOPTIONS -- <filename> OPTIONS: --create Create a new referral credentials file. --add Add an entry to the referral credentials file. --list Print a list of entries in the referral credentials file. --remove Remove an entry from the referral credentials file. --modify Modify an entry in the referral credentials file. --decrypt When displaying credentials, decrypt the credentials. --username <username> Specify the username; if not specified, it’ll be prompted. --password <password> Specify the password; if not specified, it’ll be prompted. --help Print this usage. filename: The full path to the referral credentials file. |
samplercf.txt という名前の新しいリフェラルファイルを作成するには、コマンド行で次のパラメータを入力します。
netbeans_home\jdk\bin\java -cp ./stcldap13.jar com.stc.connector.ldapadapter.utils.RCFUtil --create -- samplercf.txt |
すると、ユーザー名とパスワードが要求されます。ユーザー名とパスワードを入力します。このユーザー名とパスワードは、ファイル自体を保護するためのものです。というのも、このファイルには、ほかの LDAP サーバーに関する機密性の高い資格情報が含まれているからです。次に例を示します。
C:\temp>c:\JavaCAPS6\netbeans\jdk\bin\java -cp .\stcldap13.jar com.stc.connector.ldapadapter. utils.RCFUtil --create -- samplercf.txt Creating file samplercf.txt... Enter username >> test Enter password >> test File created! |
「File created!」というメッセージが表示されます。この場合のファイル名は、samplercf.txt です。拡張子は何でもかまいません。
samplercf.txt という名前のリフェラルファイルに LDAP サーバー接続情報を追加するには、コマンド行で次のパラメータを入力します。
netbeans_home\jdk\bin\java -cp ./stcldap13.jar com.stc.connector.ldapadapter.utils.RCFUtil --add -- samplercf.txt |
ファイルにアクセスするには、ユーザー名とパスワードが必要になります。以前にファイルを作成する際に指定したユーザー名とパスワードを入力します。
次のプロンプトが表示されたら、次の情報を指示どおりに入力します。
ホスト名のプロンプト: ホスト名を入力します。
ポート番号のプロンプト: LDAP ポート番号を入力します。
主体のプロンプト: ユーザーの完全修飾 DN を入力します。
パスワードのプロンプト: 以前に指定した、DN のパスワードを入力します。
次に例を示します。
C:\temp>c:\JavaCAPS6\netbeans\jdk\bin\java -cp .\stcldap13.jar com.stc.connector.ldapadapter.utils.RCFUtil --add -- samplercf.txt Adding a referral credentials entry... Enter username >> test Enter password >> test Enter LDAP Host >> localhost.stc.com Enter LDAP Port >> 389 Enter the Principal >> cn=Manager,dc=stc,dc=com Enter the Credentials >> secret Done. |
「samplercf.txt」という名前のリフェラルファイル内の LDAP サーバー接続情報を表示するには、コマンド行で次のパラメータを入力します。
<netbeans_home>\jdk\bin\java -cp ./stcldap13.jar com.stc.connector.ldapadapter.utils.RCFUtil --list -- samplercf.txt |
ファイルにアクセスするには、ユーザー名とパスワードが必要になります。以前にファイルを作成する際に指定したユーザー名とパスワードを入力します。
次の単一エントリの例に示すように、ファイル内のエントリが一覧表示されます。
1> localhost.stc.com | 389 | cn=Manager,dc=stc,dc=com | l/ ZRt1cfNKc= |
パスワードは暗号化されています。パスワードを復号化された形式で表示するには、1 つ前のコマンドに --decrypt を追加します。出力は次のようになります。
1> localhost.stc.com | 389 | cn=Manager,dc=stc,dc=com | secret |
次に例を示します。
C:\temp>c:\JavaCAPS6\netbeans\jdk\bin\java -cp .\stcldap13.jar com.stc.connector.ldapadapter.utils.RCFUtil --list -- samplercf.txt Listing entries in the referral credentials file... Enter username >> test Enter password >> test 1> localhost.stc.com | 389 | cn=Manager,dc=stc,dc=com | l/ ZRt1cfNKc= C:\temp>c:\JavaCAPS6\netbeans\jdk\bin\java -cp .\stcldap13.jar com.stc.connector.ldapadapter.utils.RCFUtil --list --decrypt -- samplercf.txt Listing entries in the referral credentials file... Enter username >> test Enter password >> test 1> localhost.stc.com | 389 | cn=Manager,dc=stc,dc=com | secret |
資格エントリの削除や資格エントリの変更といったその他の操作も、RCF ユーティリティーを使って同様に行えます。
次の例は、説明用のコメント付きで、資格ファイル samplercf.txt の内容を示したものです。
###This properties file was generated by #com.stc.connector.ldapadapter.utils.RCFUtil. #Do NOT modify this file "by hand" if you don’t understand the nature #or format of this file. Use the utility to create and #manage this file. # #Tue Feb 14 17:49:17 PST 2006 password=P9He6eCUY6Q\= localhost.stc.com\:389=test;P9He6eCUY6Q\= username=test #New credentials entry that was created. |