serviceSearchDescriptor 属性は、LDAP ネームサービスクライアントが特定のサービスに関する情報を検索する方法と場所を定義します。serviceSearchDescriptor には、サービス名に続き、1 つ以上のセミコロンで区切られたベース - スコープ - フィルタのセットが含まれます。これらのベース - スコープ - フィルタのセットは特定のサービス専用の検索定義に使用され、指定された順番で検索されます。特定のサービスに対して複数のベース - スコープ - フィルタが指定されている場合、このサービスは、特定のエントリを検索する際、指定されたスコープおよびフィルタを保持する各ベースを検索します。
次の例では、LDAP ネームサービスクライアントは、ou=west,dc=example,dc=com 内で passwd サービスに対する単一レベルの検索を実行したあとに、ou=east,dc=example,dc=com 内で単一レベルの検索を実行します。ユーザーの username の passwd データを検索するために、各 BaseDN に対してデフォルトの LDAP フィルタ (&(objectClass=posixAccount)(uid=username)) が使用されます。
serviceSearchDescriptor: passwd:ou=west,dc=example,dc=com;ou=east, dc=example,dc=com
次の例では、LDAP ネームサービスクライアントは、ou=west,dc=example,dc=com 内で passwd サービスに対するサブツリー検索を実行します。ユーザー username の passwd データを検索するために、LDAP フィルタ (&(fulltimeEmployee=TRUE)(uid=username)) を使用してサブツリー ou=west,dc=example,dc=com が検索されます。
serviceSearchDescriptor: passwd:ou=west,dc=example, dc=com?sub?fulltimeEmployee=TRUE
特定のサービスタイプに複数のコンテナを関連付けることもできます。次の例では、サービス検索記述子が 3 つのコンテナでパスワードエントリを検索することを指定しています。
|
例の末尾の「,」は、SSD の相対ベースに defaultSearchBase が付加されることを意味します。
defaultSearchBase: dc=example,dc=com serviceSearchDescriptor: \ passwd:ou=myuser,;ou=newuser,;ou=extuser,dc=example,dc=com
LDAP ネームサービスでは、1 つ以上の属性名を、そのいずれかのサービスに再マッピングできます。属性を対応づける場合、その属性が元の属性と同じ意味および構文を必ず保持するようにしてください。userPassword 属性のマッピングによって問題が発生する可能性があることに注意してください。
既存のディレクトリサーバーで属性をマップする状況では、スキーママッピングを使用する方法が役立つことがあります。大文字小文字のみが異なるユーザー名を使用する場合、大文字小文字を無視する uid 属性を、大文字小文字を無視しない属性に対応づける必要があります。
この属性の書式は、service:attribute-name=mapped-attribute-name です。
指定されたサービスに対して複数の属性を対応づける場合は、複数の attributeMap 属性を定義できます。
次の例では、uid および homeDirectory 属性を passwd サービスで利用する場合、常に employeeName および home 属性が使用されます。
attributeMap: passwd:uid=employeeName attributeMap: passwd:homeDirectory=home
次の例で示すように、passwd サービスの gecos 属性を複数の属性にマップできることに注意してください。
attributeMap: gecos=cn sn title
この例では、gecos 値が、空白で区切られた cn、sn、および title 属性値のリストにマップされています。
LDAP ネームサービスでは、オブジェクトクラスを、そのいずれかのサービスに再マッピングできます。特定のサービス用に複数のオブジェクトクラスを対応づける場合、複数の objectclassMap 属性を定義できます。次の例では、posixAccount オブジェクトクラスを使用する場合、常に myUnixAccount オブジェクトクラスが使用されます。
objectclassMap: passwd:posixAccount=myUnixAccount