2009-08-07 11 views
0

私はの正確に属性を指定してすべてのアイテムのLDAPサーバーを検索しようとしています。LDAPを使用して、指定したパターンと一致する属性を持つアイテムを検索するにはどうすればよいですか?

私はしてレコードのユーザーの役割を扱ってるLDAPスキーマ:

  1. いくつかの属性(ロール)のいずれかを含むことができ、オブジェクト型を作成し、
  2. は、各役割の価値があることを設定しますその名前と同じ

属性は共通の基本タイプを共有せず、objectclass( "roleuser")には役割ではない他の属性が含まれています。ロールは、「ロール」で終わる属性名によって区別されます。 (Yuck。)

例。ユーザーのオブジェクト型は、オブジェクト型roleuserが含まれるであろう、そして次の属性=値のペアを持っているかもしれません:

cn=userX 
    objectclass=roleuser,... 
    managerrole=managerrole 
    clerkrole=clerkrole 

cn=userY 
    objectclass=roleuser,... 
    managerrole=managerrole 

cn=userZ 
    objectclass=roleuser,... 
    clerkrole=clerkrole 

私は事務員、および経営者、および管理者の事務員を検索することができますよ。しかし、店員を調べると((&(clerkrole=*)(objectclass=roleuser)))、私はロールクラーク(userZ)とロールマネージャーと店員(userX)を持つユーザーの両方に戻ってきます。

(&(clerkrole=*)(!managerrole=*)(objectclass=roleuser))と指定して、管理者ではない職員を得ることができます。しかし、それは私が他のすべての可能な役割を列挙(そして否定)する必要があります。

さまざまな理由から、私のアプリケーションは、アプリケーションよりも素早く変更される可能性があるため、すべての可能な役割を知る必要はありません。

So. roleuserにあるすべての属性のスキーマを照会する方法はありますか。*roleという名前が付いていますので、ほかのすべての役割を動的に指定(および否定)できますか?

(clerkrole = *)を照会する方法はありますか?そのroleuserに* roleという名前の他の属性はありませんか?

+0

どのLDAPサーバーを使用していますか?私はスキーマのクエリが解決策になる可能性があるので尋ねていますが、それはサーバーの種類によって異なります。 –

答えて

0

フィルタを動的に構築することを検討しましたか?スキーマを照会し、 'role'で終わるすべての属性を取得し、それらを繰り返し、必要なアイテムを破棄し、各アイテムに(!___ role = *)を追加して、必要なものとクエリを追加するフィルタを追加できますそれを使って