ディレクトリサービス


リモート LDAP ディレクトリのディレクトリアシスタント文書で検索フィルタを設定する
サーバーでディレクトリアシスタントを使用してリモート LDAP ディレクトリを検索する場合は、そのディレクトリのディレクトリアシスタント文書にある [使用する検索フィルタの種類] フィールドを使用して、ディレクトリの検索に使用する LDAP 検索フィルタを指定できます。以下の選択が可能です。
検索フィルタオプション説明
標準の LDAP (デフォルト)IBM(R) Lotus Domino(R)、IBM(R) Directory Server、Sun ONE Directory Server など、ほとんどの LDAP ディレクトリサーバーで機能する標準 LDAP 検索フィルタを使用します。
Active DirectoryActive Directory サーバーで機能する定義済み検索フィルタを使用します。リモート LDAP ディレクトリが Active Directory の場合は、このオプションを選択します。
カスタム独自の検索フィルタを定義する場合に使用します。
メモ Active Directory 検索フィルタオプションは、Release 5 で Active Directory グループの検索を可能にしていた、NOTES.INI ファイルの WebAuth_AD_Group 設定に代わるものです。

カスタム検索フィルタを定義する
検索結果が返されない場合や、目的の検索が行われない場合は、カスタム検索フィルタを定義します。リモート LDAP ディレクトリサーバーで標準ではないスキーマを使用している場合に、このような検索結果になる可能性があります。一般にカスタムフィルタでは、特定の属性を対象として、エントリごとに属性値が異なり対象が一意的に決まる条件を指定したり、インデックスなど高速の検索を実現するメカニズムを利用して効率よく一致する条件を指定したりします。

[使用する検索フィルタの種類] フィールドで [カスタム] を選択すると、次の 3 つのフィールドが表示されます。これらを使用して、カスタム検索フィルタを定義します。
カスタム検索フィルタのフィールド説明
メールフィルタLotus Notes ユーザーがディレクトリでメールアドレスを検索できるようにディレクトリアシスタントが設定されている場合、この検索フィルタは、ディレクトリで名前を検索するために使用されます。次のデフォルトの検索フィルタを使用するには、このフィールドを空白のままにしておきます。

(|(cn=%*)(|(&(sn=%a)(givenname=%z))(&(sn=%z)(givenname=%a))))

メール受信者フィールドに「Pat Smith」と指定されている場合は、LDAP 検索要求に使用される結果のフィルタは次のようになります。

(|(cn=Pat Smith)(|(&(sn=Pat)(givenname=Smith))(&(sn=Smith)(givenname=Pat))))

メール受信者フィールドに、ユーザーが常に自身の UID 属性を入力する場合などには、メールフィルタをカスタマイズします。その場合のカスタムフィルタは、次のようになります。

(uid=%*)

このフィルタを使用して、メール受信者フィールドに「BAK12345」と指定されている場合は、LDAP 検索要求に使用される結果のフィルタは次のようになります。

(uid=BAK12345)

認証フィルタディレクトリアシスタントが、クライアント認証にリモート LDAP ディレクトリを信頼するように設定されている場合、このフィルタは、そのディレクトリ内の名前を検索するために使用されます。次のデフォルトの検索フィルタを使用するには、このフィールドを空白のままにしておきます。

(|(cn=%*)(|(&(sn=%a)(givenname=%z))(&(sn=%z)(givenname=%a))))

HTTP ログインプロンプトに「Maryanne Brown」と指定されている場合は、LDAP 検索要求に使用される結果のフィルタは次のようになります。

(|(cn=Maryanne Brown)(|(&(sn=Maryanne)(givenname=Brown))(&(sn=Brown)
(givenname=Maryanne))))

ユーザーが、ログインプロンプトに普通、自身の従業員 ID またはメール属性を指定する場合などには、認証フィルタをカスタマイズします。その場合、カスタムフィルタは次のようになります。

(|(employeeID=%*)(mail=%*))

したがって、ログインプロンプトに「MB12345」と指定されている場合は、LDAP 検索要求に使用される結果のフィルタは次のようになります。

(|(employeeID=AS12345)(mail=AS12345))

承認フィルタLotus Notes データベース認証では、グループのメンバーの検索に使用する検索フィルタを指定します。次のデフォルトの検索フィルタを使用するには、このフィールドを空白のままにしておきます。

(|(&(objectclass=groupOfUniqueNames)(UniqueMember=%*))
(&(objectclass=groupOfNames)(Member=%*)))

この場合、「cn=June Day,ou=Westford,o=Acme」に対するメンバーシップ検索は、検索要求で次のフィルタになります。

(|(&(objectclass=groupOfUniqueNames)(UniqueMember=
cn=June Day,ou=Sales,o=Acme))(&(objectclass=groupOfNames)
(Member=cn=June Day,ou=Sales,o=Acme)))

ACL グループ展開に有効になっている LDAP サーバーが、aclGroup の objectClass でグループを格納する場合は、次のカスタムフィルタを指定します。

(&(objectclass=aclGroup)(Member=%*))

この場合、「cn=June Day,ou=Sales,o=Acme」に対するメンバーシップ検索は、LDAP 検索要求で次のフィルタになります。

(&(objectclass=aclGroup)(Member=cn=June Day,ou=Sales,o=Acme))

カスタム検索フィルタを定義するには、RFC 2251 および 2254 に記述されている、検索フィルタの有効な構文について知っておく必要があります。

カスタム LDAP 検索フィルタの構文
カスタム検索フィルタを定義するには、検索対象である名前の部分を表すパラメータを標準 LDAP 検索フィルタに挿入します。
名前の部分定義名前の部分の例 (太字)名前の部分を表すために挿入するパラメータ
先頭の文字から最初のスペースまたは句読点の前までの文字のセットAlex M Davidson%a
最後のスペースまたは句読点の次から末尾の文字までの文字のセットAlex M Davidson%z
名前全体名前の全体Alex M Davidson%*
ローカル部分RFC 822 形式メールアドレスのローカル部分amd@acme.com%l
ドメイン部分RFC 822 形式メールアドレスのドメイン部分amd@acme.com%d
任意の文字列値検索対象の属性またはオブジェクトの文字列値たとえば、検索内に「uid=%s」であるフィルタが存在する場合、%s の表す名前の部分は、amd です。%s

カスタム LDAP 検索フィルタの例
検索する名前ディレクトリアシスタント文書の検索フィルタ式名前の検索に使用する検索フィルタ
Alex M Davidson(|(givenname=%a)(sn=%z)
(cn=%*)(mail=%l))
(|(givenname=Alex)(sn=Davidson)
(cn=Alex M Davidson)(mail=""))
amd(EmpID=%*)(EmpID=amd)
amd(EmpID=%z)(EmpID="")
amd(mail=%*@acme.com)(mail=amd@acme.com)
amd(mail=%*@*)(mail=amd@*)
amd@acme.com(mail=*@%d)(mail=*@acme.com)
amd@acme.com(mail=%*)(mail=amd@acme.com)
amd@acme.com(uid=%l)(uid=amd)
blue(color=%*)(color=blue)
関連項目