接続マップからアクセスされる LDAP アダプタの構成パラメータは、次の各セクションに編成されています。
LDAP アダプタの「コネクタ」セクションのプロパティーには、次のパラメータが含まれています。
表 1–50 LDAP アダプタ — 「コネクタ」設定
名前 |
説明 |
必要な値 |
---|---|---|
コネクタタイプ |
コネクタのタイプを表示します |
デフォルトは「LDAP コネクタ」です。 |
コネクタクラス |
コネクタクラスを表示します。 |
デフォルトのコネクタクラスは、com.stc.connector.ldapadapter.LDAPadapterConnection です。 |
LDAP アダプタの「接続」セクションのプロパティーを使えば、LDAP システムへの接続を定義できます。
表 1–51 LDAP アダプタ — 「接続」設定
LDAP アダプタの「リフェラル」セクションのプロパティーを使えば、LDAP リフェラル情報を入力できます。
表 1–52 LDAP アダプタ — 「リフェラル」設定
名前 |
説明 |
必要な値 |
---|---|---|
資格 |
ディレクトリで任意のリフェラルを追跡する際に使用する資格ファイルを指定できるようにします。資格ファイルは RCF コマンド行ユーティリティーを使って作成されます。 |
サービスバスから使用できる有効なファイルとパス名。 |
追跡 |
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. |
LDAP アダプタの「セキュリティー/SSL」セクションのプロパティーは、SSL の基本的なセキュリティー機能を設定するために使用されます。
表 1–54 LDAP アダプタ — 「セキュリティー/SSL」設定
名前 |
説明 |
必要な値 |
||
---|---|---|---|---|
JSSE プロバイダクラス |
JSSE プロバイダクラスの完全修飾名を指定します。詳細については、Sun Microsystems の次の Java サイトを参照してください。 |
有効な JSSE プロバイダクラスの名前。デフォルトは次のとおりです。 com.sun.net.ssl.internal.ssl.Provider AIX 上でインテグレーションサーバーを実行している場合は、次の名前を指定します。 com.ibm.jsse.IBMJSSEProvider |
||
キーストア |
デフォルトのキーストアファイルを指定します。キーストアは、SSL 接続確立時の鍵/証明書管理に使用されます。 |
有効なパッケージの場所。デフォルト値はありません。次のファイルを使用することをお勧めします。
項目の意味を次に示します。
|
||
キーストアパスワード |
デフォルトのキーストアパスワードを指定します。このパスワードは、SSL 接続確立時の鍵/証明書管理に使用されるキーストアにアクセスする際に使用されます。デフォルトはありません。 |
有効なキーストアパスワード。デフォルト値はありません。 |
||
キーストアタイプ |
デフォルトのキーストアタイプを指定できるようにします。キーストアタイプは、SSL 接続確立時の鍵/証明書管理に使用されます。キーストアタイプが指定されなかった場合、デフォルトのキーストアタイプである JKS が使用されます。 |
有効なキーストアタイプ。 |
||
キーストアユーザー名 |
SSL 接続確立時の鍵/証明書管理に使用されるキーストアにアクセスするためのユーザー名。 注 – キーストアタイプが PKCS12 または JKS の場合、キーストアユーザー名のプロパティーは使用されません。PKCS12 および JKS のキーストアタイプでは、アクセス時にパスワードが必要になりますが、ユーザー名は必要ありません。このプロパティーに値を入力しても、PKCS12 および JKS ではその値は無視されます。 |
有効なキーストアユーザー名。 |
||
SSL 接続タイプ |
使用される SSL 接続のタイプを指定できるようにします。 |
「なし」、「SSL を有効化」、または「TLS オンデマンド」を選択します。次のように目的の値を入力します。 なし: SSL を使用しない、単純なプレーン接続。 SSL を有効化: SSL が有効化されます。LDAP サーバーへのすべての通信で、セキュリティー保護された通信チャネルが使用されます。 注 – 「SSL の有効化」オプションを使用する場合、「プロバイダ URL」プロパティーが、セキュリティー保護された LDAP ポート (デフォルトは 636) を指している必要があります。 このプロパティーの必要な値に関する追加情報については、「SSL 接続タイプ」を参照してください。 |
||
SSL プロトコル |
LDAP サーバーとの SSL 接続を確立する際に使用する SSL プロトコル。アプリケーションサーバーのプラットフォームについては、JSSE のマニュアルを参照してください。 |
「TLS」、「TLSv1」、「SSLv3」、「SSLv2」、または「SSL」を選択します。 |
||
トラストストア |
デフォルトのトラストストアを指定します。トラストストアは、SSL 接続確立時の CA 証明書管理に使用されます。 |
有効なトラストストアファイル。デフォルトはありません。 |
||
トラストストアパスワード |
デフォルトのトラストストアパスワードを指定できるようにします。このパスワードは、SSL 接続確立時の CA 証明書管理に使用されるトラストストアにアクセスするためのものです。 |
有効なトラストストアパスワード。デフォルトはありません。 |
||
トラストストアタイプ |
SSL 接続確立時の CA 証明書管理に使用されるトラストストアのトラストストアタイプを指定できるようにします。トラストストアタイプが指定されなかった場合、デフォルトのトラストストアタイプである JKS が使用されます。 |
有効なトラストストアタイプ。 |
||
ホスト名の検証 |
SSL ハンドシェーク中にサーバー証明書に対してホスト名検証を行うかどうかを判定します。 このプロパティーを使えば、要求 URL 内のサーバーホスト名と受信されたサーバー証明書内のホスト名について、厳格なチェックを行えます。 |
true または false。デフォルトは false です。 このプロパティーの必要な値に関する追加情報については、「ホスト名の検証」を参照してください。 |
||
X509 アルゴリズム名 |
信頼マネージャーファクトリと鍵マネージャーファクトリで使用する X509 アルゴリズムの名前を指定します。 |
有効な X509 アルゴリズム名前。デフォルトは「SunX509」です。AIX 上でインテグレーションサーバーを実行している場合は、「IbmX509」を指定します。 |
次に示すのは、「セキュリティー/SSL」セクションの次のプロパティーに関する追加の注意事項です。
現在の LDAP サーバーで、セキュリティー証明書のインストールやポート番号などの SSL プロパティーが正しく設定されていることを確認してください。
Transport Layer Security (TLS) は、インターネット経由で通信するクライアント/サーバーアプリケーション間で機密性とデータの完全性を保証するプロトコルです。 このアダプタの TLS 動作では、セキュリティー保護された通信とされていない通信の両方が同じ接続上でサポートされます。
ただし、LDAP サーバーの中には、セキュリティー保護されていない設定済みのポート上で起動しなければならず、セキュリティー保護されたポート上では起動できないものもあります。詳細については、LDAP サーバーの関連するマニュアルを参照してください。
TLS オンデマンド: LDAP version 3 の機能 (StartTLS 拡張動作)。これは、Java SDK version 1.4 以降でサポートされています。このオプションを選択すれば、SSL 接続の確立を、プログラムを使ってオンデマンドで行えます。
「TLS オンデマンド」オプションを使用する場合、「プロバイダ URL」プロパティーが、セキュリティー保護されていない LDAP ポート (デフォルトは 389) を指している必要があります。
このオプションの選択後、セキュリティー保護された通信が必要になるたびに、LDAP サーバーに対するすべてのメソッド呼び出しを、LDAP OTD 経由でアクセス可能な startTLS 呼び出しと stopTLS 呼び出しの間に配置する必要があります。
次の例では、performAddEntry 呼び出しはセキュリティー保護された通信チャネルを経由しますが、performRename 呼び出しはセキュリティー保護されていないプレーン通信チャネルを経由します。
startTLS(); performAddEntry(); stopTLS(); performRename(); |
現在の LDAP サーバーで (SSL 設定に加えて) TLS 設定が正しく設定されていることを確認してください。
stopTLS メソッドを使用すると、一部の LDAP サーバーで予期しない動作が発生する可能性があります。コラボレーション定義からこのメソッドを削除しなければいけない可能性があります。たとえば、Sun ONE Directory Server への接続時には stopTLS メソッドを使用できません。詳細については、LDAP サーバーの関連するマニュアルを参照してください。
ユーザーが複数の値を持つ単一の属性を TLS 接続経由で繰り返し追加すると、Active Directory はコンテキストを解放しません。ただし、TLS を開始し、属性処理を追加してから TLS を停止する、という回避方法をとれば、コンテキストが解放されます。
LDAP OTD でこの機能を使用する方法については、「TLS 拡張ノード」を参照してください。
いくつかの環境下で、このプロパティーを true、false のどちらに設定するかによって、さまざまな Java 例外が発生する可能性があります。ここでは、それらの例外の原因について説明します。
たとえば、URL に含まれるホスト名が localhost、サーバー証明書に含まれるホスト名が localhost.stc.com であるととします。このとき、次の条件が適用されます。
「ホスト名の検証」が false に設定されている場合:
要求された URL とサーバー証明書間のホスト名チェック機能が「無効」になります。
https://localhost:444 などの不完全なドメインホスト名を使用することも、https://localhost.stc.com:444 などの完全なドメインホスト名を使用することも可能であり、どちらの場合も正常な応答が得られます。
「ホスト名の検証」が true に設定されている場合:
要求された URL とサーバー証明書間のホスト名チェック機能が「有効」になります。
https://localhost:444 などの不完全なドメインホスト名を使用すると例外 java.io.IOException (HTTPS hostname wrong) が発生する可能性があります。
https://localhost.stc.com:444 などの完全なドメインホスト名を使用する必要があります。
Application Server が使用している Java SDK のバージョンと対応する Application Server プロパティー設定とが一致しないと、例外 java.lang.ClassCastException が発生する可能性があります。