![]() |
iPlanet Directory Server 5.1 管理者ガイド |
付録 B ディレクトリエントリの検索
ディレクトリ内のエントリは、すべての LDAP クライアントから検索できます。クライアントは、通常、何らかの形式の検索用インタフェースを備えているので、簡単にディレクトリを検索してエントリ情報を取得することができます。
注 ユーザまたは管理者がディレクトリで設定したアクセス制御によって、検索結果が決まります。一般的なユーザは、通常、ディレクトリをあまり参照することはありませんが、ディレクトリの管理者は、構成を含むすべてのデータへのフルアクセス権限を持っています。
ディレクトリへのアクセス制御の設定については、「アクセス制御の管理」を参照してください。
Server Console を使用したエントリの検索
Server Console を使用したエントリの検索
Directory Server Console の「ディレクトリ」タブを使用してディレクトリツリーの内容を参照し、ディレクトリ内の特定のエントリを検索します。
Directory Server が起動していることを確認します。
Directory Server Console を起動します。
Directory Server Console で、「ディレクトリ」タブを選択します。
- 起動方法については、「Directory Server Console の起動」を参照してください。
「検索」ダイアログボックスでは、ディレクトリ内の名前を検索する単純なインタフェースが提供されます。このダイアログボックスでは、ダイアログが起動するときに選択されていたディレクトリのノードから検索が実行されます。広範囲の検索ではディレクトリの最上位から検索が実行され、短時間で行う検索では下位のサブツリーから検索が実行されます。
- ディレクトリへの認証に使用した DN に応じて、このタブには表示アクセスが許可されたディレクトリの内容が表示されます。ツリーの内容を順に参照するか、エントリをマウスの右ボタンでクリックして、ポップアップメニューから「検索」を選択します。
検索が返したエントリを表示または編集する場合は、「OK」をクリックして「検索」ダイアログボックスを閉じてください。検索結果は別のウィンドウに表示され、表示された名前をダブルクリックすると、フルエントリが表示されます。エントリは「編集」ダイアログボックスに表示され、アクセス制御により許可されている場合はエントリを修正できます。
- 「高度な検索」では、特定の属性および値に絞った検索が可能です。独自の LDAP 文字列を使って検索する場合は、検索フィルタも使用できます。
- この機能の使い方については、オンラインヘルプを参照してください。
- 許可されていない場合は、「キャンセル」をクリックし、検索結果を表示せずに「検索」ダイアログボックスを閉じます。
ldapsearch の使用
ldapsearch コマンド行ユーティリティを使用すると、ディレクトリエントリの場所を指定し、検索することができます。このユーティリティは、指定された識別名とパスワードを使用して、指定されたサーバへの接続を確立し、指定された検索フィルタに基づいてエントリを検索します。検索範囲には、単一のエントリ、エントリの直下のサブエントリ、ツリー全体、またはサブツリー全体を含めることができます。
特殊文字の使い方
ldapsearch コマンド行ユーティリティの使用時に、コマンド行インタプリタにとって特別な意味を持つ文字 (スペース [ ]、アスタリスク [*]、バックスラッシュ [\] など) を含む値の指定が必要となることがあります。特殊文字を使用する場合は、その値を引用符 ("") で囲みます。たとえば、次のようにします。-D "cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com"
一重引用符または二重引用符のどちらを使用するかは、コマンド行インタープリタのタイプによって異なります。詳細は、オペレーティングシステムのマニュアルを参照してください。
ldapsearch コマンド行の形式
ldapsearch を使用するときには、次の形式でコマンドを入力します。ldapsearch [optional_options] [optional_search_filter] [optional_list_of_attributes]
optional_options には一連のコマンド行オプションを指定する。検索フィルタを指定する場合は、必ず検索フィルタの前にオプションを指定する
optional_search_filter には LDAP 検索フィルタを指定する。このフィルタについては、「LDAP 検索フィルタ」を参照。-f オプションを使用して検索フィルタを指定する場合は、コマンド行で検索フィルタを指定してはならない
optional_list_of_attributes には属性のリストを指定する。個々の属性は空白で区切る。属性のリストを指定すると、検索結果として返される属性の数が少なくなる。この属性のリストは、必ず検索フィルタの後に指定すること (「属性サブセットの表示」の例を参照)。属性のリストを指定しないで検索を実行すると、検索の結果、ディレクトリに設定されたアクセス制御セットで許可されている、すべての属性 (操作属性は除く) に対して値が返される
注 検索操作の結果として操作属性が返されるようにするには、検索コマンドで操作属性を明示的に指定する必要があります。明示的に指定した操作属性のほかに、通常の属性も含めて検索を実行するには、ldapsearch コマンドの属性リストにアスタリスク (*) を指定します。
よく使用される ldapsearch オプション
次の表に、よく使用される ldapsearch コマンド行オプションの一覧を示します。スペース [ ] を含む値を指定する場合は、-b "ou=groups, dc=siroe,dc=com" のように、値を二重引用符で囲んでください。
ldapsearch ユーティリティのオプションについては、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。
ldapsearch の例
次に示す例は、以下の内容を前提にしています。
ユーザはディレクトリ内のすべてのエントリを検索する
ディレクトリは、検索および読み取りのための匿名アクセスを許可するように構成されている。この場合、検索を実行するためにバインド情報を指定する必要はない。匿名アクセスについては、「ユーザアクセスの定義 : userdn キーワード」を参照
サーバは、ポート番号 389 を使用する。これはデフォルトのポートなので、検索要求時にポート番号を指定する必要はない
すべてのエントリを返す場合
前述の条件に従って次のコールを指定すると、ディレクトリ内のすべてのエントリが返されます。ldapsearch -h mozilla -b "dc=siroe,dc=com" -s sub "objectclass=*"
"objectclass=*" は、ディレクトリ内のすべてのエントリにマッチする検索フィルタです。
コマンド行での検索フィルタの指定
検索フィルタは、直接コマンド行で指定できます。このように指定した場合は、フィルタを必ず二重引用符で囲んでください ("filter")。また、-f オプションは指定しないでください。たとえば、次のようにします。ldapsearch -h mozilla -b "dc=siroe,dc=com" "cn=babs jensen"
ルート DSE エントリの検索
ルート DSE は、ローカルの Directory Server がサポートするすべての接尾辞のリストを含む特殊なエントリです。このエントリは、"" という検索ベースを使用して検索できます。また、検索対象として base を、検索フィルタとして "objectclass=*" を指定する必要があります。たとえば、次のようにします。ldapsearch -h mozilla -b "" -s base "objectclass=*"
スキーマエントリの検索
iPlanet Directory Server では、すべての Directory Server スキーマが cn=schema という特別なエントリに格納されています。このエントリには、すべてのオブジェクトクラスおよび Directory Server に対して定義された属性に関する情報が含まれています。ldapsearch -h mozilla -b "cn=schema" -s base "objectclass=*"
LDAP_BASEDN の使用
検索をより簡単にするために、LDAP_BASEDN 環境変数を使用して検索ベースを設定できます。このように設定すると、-b オプションを使用した検索ベースの指定を省略できます (環境変数の設定方法については、オペレーティングシステムのマニュアルを参照)。通常、LDAP_BASEDN は、ディレクトリの接尾辞の値に設定します。このときディレクトリ接尾辞は、ディレクトリのルートエントリ、つまり最上位エントリと同じなので、接尾辞の値にこの変数を設定すると、すべての検索がディレクトリのルートエントリから実行されます。
たとえば、LDAP_BASEDN を dc=siroe,dc=com に設定したとします。この場合、ディレクトリ内で cn=babs jensen を検索するには、次のコマンド行コールを使用します。
ldapsearch -h mozilla "cn=babs jensen"
この例では、デフォルトの検索対象である sub が使用されていますが、これは検索対照の指定をする -s オプションが使用されなかったためです。
属性サブセットの表示
ldapsearch コマンドでは、検索結果はすべて LDIF 形式で返されます。デフォルトでは、ldapsearch によって、エントリの識別名と、読み取りが許可されているすべての属性が返されます。ディレクトリアクセス制御は、任意のディレクトリエントリの属性サブセットに対し、読み取り専用でアクセスできるように設定できます。ただし、操作属性は返されません。検索操作の結果として操作属性が返されるようにするには、検索コマンドで操作属性を明示的に指定する必要があります。検索結果として返される属性のうち、一部の属性だけを表示するとします。このような場合は、コマンド行で検索フィルタの直後に必要な属性を指定することによって、返される属性を特定のものだけに制限できます。たとえば、ディレクトリ内のすべてのエントリの cn および sn 属性が必要な場合は、次のコマンド行コールを使用します。
ldapsearch -h mozilla "objectclass=*" sn cn
この例は、LDAP_BASEDN によって検索ベースが設定されていることを前提にしています。
ファイルを使用した検索フィルタの指定
検索フィルタの指定は、コマンド行から入力できるだけではなく、あらかじめファイルに格納しておくこともできます。この場合、個々の検索フィルタは、ファイル内で別々の行に指定します。ldapsearch コマンドを実行すると、ファイル内で現われるフィルタの順序どおりに検索が行われます。このファイルを使用して ldapsearch を実行すると、まず Francis という姓を持つすべてのエントリを見つけ出し、次に Ricahrd という名前を持つすべてのエントリを見つけ出します。両方の検索基準にマッチするエントリがあれば、そのエントリは 2 回返されます。
たとえば、上述の検索フィルタを searchdb という名前のファイルに格納し、LDAP_BASEDN を使用して検索ベースを設定したとします。この場合、次のコマンドを実行すると、両方の検索フィルタにマッチするすべてのエントリが返されます。
ldapsearch -h mozilla -f searchdb
ここで返される属性セットは、検索行の最後に必要な属性名を指定することによって制限できます。たとえば、次に示す ldapsearch コマンドは両方の検索を実行しますが、各エントリの givenname 属性と sn 属性だけを返します。
ldapsearch -h mozilla -f searchdb sn givenname
検索フィルタでのコンマを含む DN の指定
検索フィルタ内の DN の値がコンマを含む場合は、そのコンマをバックスラッシュ (\) でエスケープする必要があります。たとえば、siroe.com Bolivia, S.A. サブツリーに属する全員を検索するには、次のようなコマンドを使用します。ldapsearch -h mozilla -s base -b "o=siroe.com Bolivia\, S.A.,dc=siroe,dc=com" "objectclass=*"
検索時のクライアント認証の使用
次に、bjensen というユーザがクライアント認証を使用してディレクトリを検索する例を示します。ldapsearch -h mozilla -p 636 -b "dc=siroe,dc=com" -N "bjensenscertname" -Z -W certdbpassword -P /home/bjensen/certdb/cert.db "givenname=Richard"
LDAP 検索フィルタ
検索フィルタを使って、検索結果として返されるエントリを選択することができます。検索フィルタは、通常 ldapsearch コマンド行ユーティリティと併用されます。ldapsearch を使用する場合は、あらかじめファイル内に複数のフィルタを格納しておくことができます。その場合、ファイル内では、各フィルタを別々の行に指定する必要があります。なお、検索フィルタは、コマンド行に直接指定することもできます。たとえば、次に示すフィルタは、Babs Jesen という共通名を検索します。
この検索フィルタは、Babs Jensen という共通名を含むすべてのエントリを返します。共通名の値の検索では、大文字と小文字は区別されません。
共通名属性が言語タグに関連付けられた値を持つ場合は、その値すべてが返されます。したがって、次の属性値は両方ともこのフィルタにマッチします。
サポートされている言語タグのリストについては、表 D-1 を参照してください。
検索フィルタの構文
検索フィルタの基本的な構文を次に示します。この例では buildingname が属性、>= が演算子、alpha が値です。異なる属性をブール演算子と組み合わせたフィルタも定義できます。
検索フィルタでの属性の使用
検索フィルタでの属性の使用
エントリを検索するときは、そのエントリのタイプに関連付けられた属性を指定できます。たとえば、人に関するエントリを検索する場合は、cn 属性を使用して特定の共通名を持つ人を探すことができます。人に関するエントリに含まれる属性としては、次のようなものが考えられます。
エントリのタイプに関連付けられた属性のリストについては、『iPlanet Directory Server スキーマリファレンス』を参照してください。
検索フィルタでの演算子の使い方
検索フィルタ内で使用できる演算子のリストについては、表 B-1 を参照してください。
注 これらの検索フィルタに加え、希望する言語の照合順序で動作する特殊なフィルタも指定できます。国際化文字セットを含むディレクトリの検索方法については、「国際化ディレクトリの検索」を参照してください。
複合検索フィルタの使い方
次の例に示すように、ブール演算子を使って、複数のフィルタ要素を組み合わせることができます。(Boolean-operator(filter)(filter)(filter)...)
ここで、Boolean-operator は、表 B-2 にリストされる論理演算子のうちのいずれか 1 つを表します。
さらに、複数のブール演算子を組み合わせたり入れ子状にして、次のように複雑な式を作成することもできます。
(Boolean-operator(filter)((Boolean-operator(filter)(filter)))
検索フィルタで使用できるブール演算子には、次のものがあります。
ステートメントが true になるには、指定したフィルタのうち、少なくとも 1 つが true である必要がある。次に例を示す
ステートメントが true になるには、指定したフィルタは false である必要がある。NOT 演算子が作用するフィルタは 1 つだけである。次に例を示す
検索フィルタの例
次に示すフィルタは、manager 属性に値が設定されたエントリを検索します。これは、実在検索とも呼ばれます。次に示すフィルタは、Ray Kultgen という共通名を持つエントリを検索します。これは、等価検索とも呼ばれます。
次に示すフィルタは、共通名が Ray Kultgen ではないすべてのエントリを返します。
次に示すフィルタは、説明属性に X.500 という部分文字列を含むすべてのエントリを返します。
次に示すフィルタは、組織単位が Marketing で、説明フィールドに X.500 という部分文字列を含まないすべてのエントリを返します。
(&(ou=Marketing)(!(description=*X.500*)))
次に示すフィルタは、組織単位が Marketing で、マネージャ属性が Julie Fulmer または Cindy Zwaska に一致するすべてのエントリを返します。
(&(ou=Marketing)(|(manager=cn=Julie Fulmer,ou=Marketing,dc=siroe,dc=com)(manager=cn=Cindy Zwaska,ou=Marketing,dc=siroe,dc=com)))
次に示すフィルタは、人を表すエントリ以外のすべてのエントリを返します。
次に示すフィルタは、人を表すエントリ以外で、printer3b に似た共通名を持つすべてのエントリを返します。
(&(!(objectClass=person))(cn~=printer3b))
国際化ディレクトリの検索
検索を実行するときに、照合順序がサポートされた任意の言語に基づいて結果をソートするように指定できます。ディレクトリがサポートする照合順序のリストは、「サポートされているロケールの特定」を参照してください。
注 国際化検索を実行する場合、LDAP v3 検索を実行する必要があります。したがって、ldapsearch の呼び出しには -V2 オプションを指定しないでください。
ここでは、ldapsearch 構文のマッチング規則フィルタ部分について詳しく説明します。一般的な ldapsearch 構文については、「LDAP 検索フィルタ」を参照してください。iPlanet Console のユーザおよびグループの部分を使用して国際化ディレクトリを検索する方法については、オンラインヘルプまたは『Managing Servers with iPlanet Console』を参照してください。
マッチング規則フィルタの構文
マッチング規則フィルタの構文
検索中にディレクトリが文字列の比較を行う方法について、マッチング規則には特別なガイドラインが定められています。国際化検索の実行時に使用する照合順序と演算子は、マッチング規則によって指定されます。たとえば、国際化検索のマッチング規則は、スペイン語のマッチング順序で「llama」以降にある属性値を検索するように、サーバに命令します。マッチング規則フィルタの構文は次のとおりです。
attr は、cn や mail など、検索対象となるエントリに属する属性
matchingRule は、照合順序、または照合順序と関係演算子を識別する文字列。この指定はユーザが使用する形式によって異なる。マッチング規則形式については、「マッチング規則の形式」を参照
value は検索対象の属性値、または関係演算子と検索対象となる属性値の組み合わせ。フィルタの値部分の構文は、どのマッチング規則形式を使用するかによって異なる
マッチング規則の形式
検索フィルタのマッチング規則部分は、いくつかの異なる方法で記述できます。どれを使用するかは、個人の好みで選択できます。マッチング規則は、次に示す方法で記述できます。
検索ベースとするロケール用の照合順序の OID
以降の項目では、各オプションの構文について説明します。
マッチング規則での OID の使用
マッチング規則での OID の使用
Directory Server によってサポートされる各ロケールには、関連付けられた照合順序 OID があります。ディレクトリサーバによってサポートされるロケールと関連付けられた OID のリストについては、表 D-1 を参照してください。照合順序 OID は、マッチング規則フィルタのマッチング規則部分で、次のように使用できます。
attr:OID:=(relational_operator value)
関係演算子は式の値部分に含まれ、1 つの空白で値とは区切られます。たとえば、スウェーデン語照合順序で N4709 以降にあるすべての departmentNumber 属性を検索するには、次のようなフィルタを使用します。
departmentNumber:2.16.840.1.113730.3.3.2.46.1:=>= N4709
マッチング規則での言語タグの使用
Directory Server によってサポートされる各ロケールには、関連付けられた言語タグがあります。Directory Server によってサポートされるロケールと関連付けられた言語タグのリストについては、表 D-1 を参照してください。言語タグは、マッチング規則フィルタのマッチング規則部分で、次のように使用できます。
attr:language-tag:=(relational_operator value)
関係演算子は式の値部分に含まれ、1 つの空白で値とは区切られます。たとえば、スペイン語照合順序で estudiante という値を持つすべての記述属性をディレクトリで検索するには、次のようなフィルタを使用します。
マッチング規則での OID と接尾辞の使用
関係演算子と値の組み合わせを使用する代わりに、フィルタのマッチング規則部分にある OID に、特定の演算子を表す接尾辞を追加することもできます。OID と接尾辞は、次のように組み合わせます。たとえば、ドイツ語照合順序で softwareproduckte という値を持つ businessCategory 属性を検索するには、次のようなフィルタを使用します。
businessCategory:2.16.840.1.113730.3.3.2.7.1.3:=softwareprodukte
Directory Server によってサポートされるロケールと関連付けられた OID のリストについては、表 D-1 を参照してください。関係演算子と、それに対応する接尾辞のリストについては、表 B-3 を参照してください。
マッチング規則での言語タグと接尾辞の使用
関係演算子と値の組み合わせを使用する代わりに、フィルタのマッチング規則部分にある言語タグに、特定の演算子を表す接尾辞を追加することもできます。言語タグと接尾辞は、次のように組み合わせます。attr:language-tag+suffix:=value
たとえば、フランス語照合順序で La Salle 以降にあるすべての姓を検索するには、次のようなフィルタを使用します。
ディレクトリサーバによってサポートされるロケールと関連付けられた言語タグのリストについては、表 D-1 を参照してください。関係演算子と、それに対応する接尾辞のリストについては、表 B-3 を参照してください。
マッチング規則フィルタでのワイルドカードの使用
マッチング規則フィルタを使用して部分文字列検索を実行するときに、ワイルドカードとしてアスタリスク (*) を使用できます。アスタリスクは、0 個以上の文字を表します。たとえば、l という文字で始まって n で終わる属性値を検索するには、検索フィルタの値部分に l*n と入力します。同様に、u で始まるすべての属性値を検索するには、検索フィルタの値部分に u* と入力します。
アスタリスク (*) の文字そのものを含む値を検索するには、エスケープシーケンス \5c2a を使用して、そのアスタリスクをワイルドカードと区別する必要があります。たとえば、businessCategory 属性値が Siroe*Net product line である従業員全員を検索するには、次のような検索フィルタを指定します。
サポートされている検索タイプ
Directory Server では、次に示すタイプの国際化検索がサポートされています。近似、発音、属性による検索がサポートされているのは英語だけです。
通常の ldapsearch 検索と同様に、国際化検索時は演算子を使用して検索タイプを決定します。ただし、国際化検索を実行するときに、検索文字列の値部分に標準演算子 (=、 >=、 >、 <、 <=) を使用するか、フィルタのマッチング規則部分に接尾辞 (ディレクトリ接尾辞とは異なる) と呼ばれる特別なタイプの演算子を使用できます。表 B-3 に検索タイプ、演算子、および等価な接尾辞の概要を示します。
国際化検索の例
以降の節では、ディレクトリデータに対する国際化検索の実行例を紹介します。それぞれの例には、使用可能なすべてのマッチング規則フィルタの形式を示してあるので、さまざまな形式の詳細を確認してから最適なフィルタを選ぶことができます。
検索タイプを「小さい」にした場合の例
「小さい」演算子 (<) または接尾辞 (.1) を使用してロケール固有の検索を実行すると、特定の照合順序内の指定された属性よりも前にあるすべての属性値が検索されます。たとえば、スペイン語の照合順序で Marquez よりも前にあるすべての姓を検索するには、次のいずれかのマッチング規則フィルタを使用します。
sn:2.16.840.1.113730.3.3.2.15.1:=< Marquez
sn:es:=< Marquez
sn:2.16.840.1.113730.3.3.2.15.1.1:=Marquez
sn:es.1:=Marquez
検索タイプを「小さいまたは等しい」にした場合の例
「小さいまたは等しい」演算子 (<=) または接尾辞 (.2) を使用してロケール固有の検索を実行すると、特定の照合順序内の指定された属性と同じか、前にあるすべての属性値が検索されます。たとえば、ハンガリー語の照合順序で部屋番号 CZ422 と同じかそれより前にあるすべての部屋番号を検索するには、次のいずれかのマッチング規則フィルタを使用します。
roomNumber:2.16.840.1.113730.3.3.2.23.1:=<= CZ422
roomNumber:hu:=<= CZ422
roomNumber:2.16.840.1.113730.3.3.2.23.1.2:=CZ422
roomNumber:hu.2:=CZ422
検索タイプを「等価」にした場合の例
「等価」演算子 (=) または接尾辞 (.3) を使用してロケール固有の検索を実行すると、特定の照合順序内の指定された属性にマッチするすべての属性値が検索されます。たとえば、ドイツ語の照合順序で softwareprodukte という値を持つ businessCategory 属性を検索するには、次に示す任意のマッチング規則フィルタを使用します。
businessCategory:2.16.840.1.113730.3.3.2.7.1:== softwareprodukte
businessCategory:de:== softwareprodukte
businessCategory:2.16.840.1.113730.3.3.2.7.1.3:=softwareprodukte
businessCategory:de.3:=softwareprodukte
検索タイプを「大きいまたは等しい」にした場合の例
「大きいまたは等しい」演算子 (>=) または接尾辞 (.4) を使用してロケール固有の検索を実行すると、特定の照合順序内の指定された属性の位置と同じか、その後にあるすべての属性値が検索されます。たとえば、フランス語の照合順序で Qu察/font>bec と同じ位置かそれ以降にあるすべての地域を検索するには、次のいずれかのマッチング規則フィルタを使用します。
locality:2.16.840.1.113730.3.3.2.18.1:=>= Québec
locality:fr:=>= Québec
locality:2.16.840.1.113730.3.3.2.18.1.4:=Québec
locality:fr.4:=Québec
検索タイプを「大きい」にした場合の例
「大きい」演算子 (>) または接尾辞 (.5) を使用してロケール固有の検索を実行すると、特定の照合順序内の指定された属性のあとにあるすべての属性値が検索されます。たとえば、チェコスロバキア語の照合順序で schranka4 よりもあとにあるすべてのメールホストを検索するには、次のいずれかのマッチング規則フィルタを使用します。
mailHost:2.16.840.1.113730.3.3.2.5.1:=> schranka4
mailHost:cs:=> schranka4
mailHost:2.16.840.1.113730.3.3.2.5.1.5:=schranka4
mailHost:cs.5:=schranka4
検索タイプを部分文字列にした場合の例
部分文字列を使用した国際化検索を実行すると、指定された照合順序のパターンにマッチするすべての値が検索されます。たとえば、中国語の照合順序で ming で終わるすべてのユーザ ID を検索するには、次のいずれかのマッチング規則フィルタを使用します。
uid:2.16.840.1.113730.3.3.2.49.1:=* *ming
uid:zh:=* *ming
uid:2.16.840.1.113730.3.3.2.49.1.6:=* *ming
uid:zh.6:=* *ming
前へ 目次 索引 DocHome 次へ
Copyright © 2001 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.
Last Updated February 26, 2002