Lightweight Directory Access Protocol 検索フィルターの構成
このトピックを使用して、LDAP 検索フィルターを構成します。 これらのステップは、特定の LDAP ディレクトリー・タイプの既存のユーザー・フィルターおよびグループ・フィルターを変更する場合、および、証明書を LDAP サーバー内のエントリーにマッピングするように証明書フィルターをセットアップする場合に必要です。
始める前に
WebSphere® Application Server では Lightweight Directory Access Protocol (LDAP) フィルターを使用して、LDAP ディレクトリー・サーバーからユーザーおよびグループについての情報を検索および取得します。 この製品がサポートする LDAP サーバーごとに、デフォルトのフィルター・セットが提供されます。これらのフィルターは、 ユーザーの LDAP 構成に合わせて変更できます。フィルターを変更後、「OK」または「適用」をクリックすると、「スタンドアロン LDAP レジストリー」パネルのディレクトリー・タイプが、カスタム・フィルターが使用されていることを示す「カスタム」に変わります。また、それ以外のタイプの LDAP サーバーをサポートするように、フィルターを開発することもできます。それ以外の LDAP ディレクトリーをサポートするかどうかはオプションであり、別の LDAP ディレクトリー・タイプはサポートしていません。管理コンソールで以下のステップを実行します。
手順
- 「セキュリティー」>「グローバル・セキュリティー」とクリックします。
- 「ユーザー・アカウント・リポジトリー」において、「スタンドアロン LDAP レジストリー」を選択し、「構成」をクリックします。
- 「追加プロパティー」の下の、 「拡張 LDAP ユーザー・レジストリー設定」をクリックします。
- 必要に応じて、「ユーザー」フィルターを変更します。 ユーザー・フィルターは、
ユーザー用のレジストリーの検索に使用されるもので、一般には、ユーザーへのセキュリティー・ロールの割り当てに使用されます。また、このフィルターは、
フィルターで指定した属性を使用してユーザーを認証するためにも使用されます。このフィルターは、ディレクトリー・サービス内で
ユーザーを検索するために使用するプロパティーを指定します。
次の例で、ユーザーのショート・ネームである %v に 割り当てられるプロパティーは、固有キーでなければなりません。オブジェクト・クラスが同じであ る 2 つの LDAP エントリーには、同じショート・ネームを指定することはできません。 ユーザー ID (uid) を基に、inetOrgPerson オブジェクト・ クラスを使用してユーザーを検索するには、次の構文を指定してください。
(&(uid=%v)(objectclass=inetOrgPerson)
この構文の詳細については、特定のディレクトリー・サーバーの LDAP サーバーとしての使用の資料を参照してください。
- 必要に応じて、「Kerberos
ユーザー」フィルターを変更します。 Kerberos ユーザー・フィルター名は、
Kerberos プリンシパル名のレジストリーの検索に使用されます。Kerberos
プリンシパル名を保持している LDAP 属性を指定してください。
- IBM Lotus Domino のデフォルト krbuser フィルター:
- (&(krbPrincipalName=%v)(objectcategory=Person))
- IBM SecureWay Directory Server のデフォルト krbuser フィルター:
- (&(krbPrincipalName=%v)(objectcategory=ePerson))
- Microsoft Active Directory のデフォルト krbuser フィルター:
- (&(userprincipalname=%v)(objectcategory=user))
- Sun Java System Directory Server のデフォルト krbuser フィルター:
- (&(krbPrincipalName=%v)(objectcategory=inetOrgPerson))
- Novell eDirectory のデフォルト krbuser フィルター:
- (&(krbPrincipalName=%v)(objectcategory=Person))
- オプション: 統合リポジトリー を使用する場合は、
必要に応じて Kerberos 属性名を変更します。 Kerberos 属性名は、
Kerberos プリンシパルのレジストリーの検索に使用されます。Kerberos
プリンシパル名を保持している LDAP 属性を指定してください。
- IBM Lotus Domino のデフォルト krbuser フィルター:
- krbPrincipalName
- IBM SecureWay Directory Server のデフォルト krbuser フィルター:
- krbPrincipalName
- Microsoft Active Directory のデフォルト krbuser フィルター:
- userprincipalname
- Sun Java System Directory Server のデフォルト krbuser フィルター:
- krbPrincipalName
- Novell eDirectory のデフォルト krbuser フィルター:
- krbPrincipalName
- 必要に応じて、「グループ」フィルターを変更します。 グループ・フィルターは、
グループ用のレジストリーの検索に使用されるもので、一般には、グループへのセキュリティー・ロールの割り当てに使用されます。また、このフィルターは、ディレクトリー・サービスでグループの検索に使用するプロパティーを指定するためにも使用されます。
次の例で、グループのショート・ネームである %v に 割り当てられるプロパティーは、固有キーでなければなりません。オブジェクト・クラスが同じであ る 2 つの LDAP エントリーには、同じショート・ネームを指定することはできません。 グループの共通名 (CN) に基づき、 groupOfNames オブジェクト・クラスまたは groupOfUniqueNames オブジェクト・クラスを使用してグループを検索するためには、 次の構文を指定してください。
(&(cn=%v)(|(objectclass=groupOfNames)(objectclass=groupOfUniqueNames)))
この構文の詳細については、特定のディレクトリー・サーバーの LDAP サーバーとしての使用の資料を参照してください。
- 必要に応じて、「ユーザー ID マップ」を変更します。 このフィルターは、
LDAP エントリーにユーザーのショート・ネームをマップし、これらのユーザーがそのショート・ネームによって表示されるときにユーザーを表す情報を指定します。例えば、オブジェクト・クラス = inetOrgPerson のエントリーを ID
別に表示する場合は、inetOrgPerson:uid を指定します。
このフィールドには、セミコロン (;) で区切られた「オブジェクト・クラス: プロパティー」の複数のペアが入ります。
getCallerPrincipal メソッドおよび getUserPrincipal メソッドなどのメソッドに一貫性のある値を提供するためには、
このフィルターを使用して取得されるショート・ネームが使用されます。
例えば、CN=Bob
Smith, ou=austin.ibm.com, o=IBM, c=US ユーザーがログインする際には、
定義された任意の属性、例えば E メール・アドレス、社会保障番号などを使用できますが、
上記のメソッドが呼び出される場合は、ログインの方法に関係なく、bob ユーザー ID が戻されます。
注: ユーザー ID マップに従うのは getUserDisplayName API のみです。
- 必要に応じて、「グループ ID マップ」フィルターを変更します。 このフィルターは、LDAP エントリーにグループのショート・ネームをマップし、 グループが表示されるときにグループを表す情報を指定します。例えば、グループを名前別に表示するには、*:cn を指定します。 アスタリスク (*) はワイルドカード文字で、この場合、あらゆるオブジェクト・クラスを検索します。 このフィールドには、セミコロン (;) で区切られた「オブジェクト・クラス: プロパティー」の複数のペアが入ります。
- 必要に応じて、「グループ・メンバー ID マップ」フィルターを変更します。 このフィルターは、
ユーザーとグループ・メンバーシップの対応を識別します。SecureWay、および Domino ディレクトリー・タイプの場合、指定したオブジェクト・クラスに一致するすべてのグループを照会して、指定した属性にユーザーが含まれているかどうかを確認するために
このフィールドが使用されます。
例えば、
groupOfNames オブジェクト・クラスのグループに属するすべてのユーザーおよび、
メンバー属性に含まれているユーザーを取得するためには、groupOfNames:member と指定します。
オブジェクト・クラスのプロパティーであるこの構文は、
そのオブジェクト・クラスによって表されるグループに属するメンバーのリストを保管します。
このフィールドには、セミコロン (;) で区切られた複数の「オブジェクト・クラス: プロパティー」のペアが入ります。
この構文の詳細については、特定のディレクトリー・サーバーの LDAP サーバーとしての使用を参照してください。
IBM® Tivoli® Directory Server、Sun ONE、およびアクティブ・ディレクトリーでは、グループ内のすべてのユーザーをユーザー・オブジェクトに保管された情報を使用して照会するときに、このフィールドが使用されます。 例えば、memberof:member フィルター (アクティブ・ディレクトリーの場合) は、 ユーザー・オブジェクトの memberof 属性を取得して、そのユーザーが所属するすべてのグループを把握するために使用されます。 member 属性は、グループ・オブジェクトを使用するグループ内のすべてのユーザーを取得するために使用されます。 グループ情報の取得にユーザー・オブジェクトを使用すると、パフォーマンスが向上します。
- 「ネスト・グループ検索の実行」オプションを選択するのは LDAP サーバーが 再帰的なサーバー・サイド検索をサポートしていない場合に限るようにしてください。
- 必要に応じて、「証明書マップ・モード」を変更します。 レジストリーとして LDAP が選択されている場合は、X.590 証明書をユーザー認証に使用できます。このフィールドは、X.509 証明書を、EXACT_DN または CERTIFICATE_FILTER によって LDAP ディレクトリー・ユーザーにマップするかどうかを示すために使用されます。
EXACT_DN を選択する場合には、
証明書の DN は、大/小文字やスペースも含めて LDAP サーバー内のユーザー・エントリーと完全に
一致しなければなりません。スタンドアロン LDAP レジストリー設定の「許可検査で大/小文字を区別しない」オプションを選択すると、許可で大/小文字を区別しないようにすることができます。 「スタンドアロン LDAP レジストリー」設定パネルにアクセスするには、以下のステップを実行します。
- 「セキュリティー」>「グローバル・セキュリティー」とクリックします。
- 「ユーザー・アカウント・リポジトリー」において、 「使用可能なレルム定義」ドロップダウン・リストをクリックして、 「スタンドアロン LDAP レジストリー」を選択します。
- 「CERTIFICATE_FILTER」を選択した場合は、
クライアント証明書の属性を LDAP 内のエントリーにマップするときに使用する LDAP フィルター
を指定します。 実行時に複数の LDAP エントリーがフィルターの指定に一致すると、
あいまい一致となるので、認証は失敗します。このフィルターの構文または構造は、LDAP attribute=${Client certificate attribute} (例えば uid=${SubjectCN}) です。
フィルター指定の一方の辺は LDAP 属性であり、これは LDAP サーバーが使用すると構成されているスキーマに依存します。 フィルター指定のもう一方の辺は、クライアント証明書にあるパブリック属性の 1 つです。 クライアント証明書にあるパブリック属性の 1 つであるフィルター指定は、 ドル記号 ($) で始まり、左大括弧 ({) が続き、右大括弧 (}) で終わらなければならないことに注意してください。クライアント証明書にあるパブリック属性の 1 つであるフィルター指定の辺では、 以下の証明書属性値を使用します。ストリングの大/小文字の区別は重要です。
- ${UniqueKey}
- ${PublicKey}
- ${IssuerDN}
- ${Issuer<xx>}
ここで、<xx> は、発行者識別名のいずれかの有効なコンポーネントを表す文字に置き換えます。 例えば、発行者共通名に ${IssuerCN} を使用できます。
- ${NotAfter}
- ${NotBefore}
- ${SerialNumber}
- ${SigAlgName}
- ${SigAlgOID}
- ${SigAlgParams}
- ${SubjectDN}
- ${Subject<xx>}
ここで、<xx> は、サブジェクト識別名のいずれかの有効なコンポーネントを表す文字に置き換えます。 例えば、サブジェクト共通名に ${SubjectCN} を使用できます。
- ${Version}
このフィールドを使用可能にするには、証明書マッピングで CERTIFICATE_FILTER を選択します。
トラブルの回避 (Avoid trouble): サブジェクト代替名 (SAN) は証明書フィルター項目としてサポートされません。gotcha
- 「適用」をクリックします。 「拡張 LDAP 設定」パネル で LDAP ユーザーまたはグループ・フィルターを変更した場合は、「適用」をクリックしてください。「OK」をクリックすると、「スタンドアロン LDAP レジストリー」パネルに移動しますが、このパネルでは、カスタムの LDAP ディレクトリー・タイプではなく、以前の LDAP ディレクトリー・タイプが示されます。 「スタンドアロン LDAP レジストリー」パネルで「OK」または「適用」をクリックすると、バックレベル LDAP ディレクトリー・タイプとそのディレクトリーのデフォルト・フィルターが保存されます。 この処置により、フィルターに加えた変更は上書きされます。変更を上書きしないようにするには、 次のいずれかを行います。
- 「Advanced Lightweight Directory Access Protocol (LDAP) ユーザー・レジストリー設定」パネル で「適用」をクリックします。「セキュリティー」>「グローバル・セキュリティー」とクリックして、 ユーザー・アカウント・リポジトリー・タイプを Stand-alone custom registry に変更します。
- 「スタンドアロン LDAP レジストリー」パネルで、「カスタム」タイプを選択します。 「適用」をクリックしてから、「Advanced Lightweight Directory Access Protocol (LDAP) ユーザー・レジストリー設定」パネルをクリックしてフィルターを変更します。変更が完了したら、「適用」または「OK」をクリックします。
その変更の検証はこのパネルでは行いません。検証は、「グローバル・セキュリティー」パネルで 「OK」または「適用」をクリックすると行われます。 セキュリティーを初めて使用可能にする場合は、残りのステップを完了して 「グローバル・セキュリティー」パネルに移動します。 ユーザー・アカウント・リポジトリーとして「スタンドアロン LDAP レジストリー」を選択します。セキュリティーが既に使用可能になっていて、 このパネルの情報を変更した場合は、その変更を有効にするために、「グローバル・セキュリティー」パネルに移動して、 「OK」または「適用」をクリックします。 変更が有効になっていないと、サーバーは始動しません。
タスクの結果
次のタスク
- 「グローバル・セキュリティー」パネルで「OK」または「適用」をクリックして、このセットアップを検証してください。
- このパネルの変更内容を有効にするには、セル、ノードおよびすべてのアプリケーション・サーバーなどのすべての製品サーバーを保管し、停止してから始動します。
- サーバーが始動したら、セキュリティー関連のタスク (ユーザーの取得、 グループの取得など) をすべて試して、フィルターに加えた変更が機能することを確認してください。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_ldapfilter
ファイル名:tsec_ldapfilter.html