0

LDAPサーバーで、指定された属性を持つすべてのアイテムを検索しようとしています

私が扱っているLDAPスキーマは、次の方法でユーザーの役割を記録します。

  1. いくつかの属性(ロール)のいずれかを含む可能性のあるオブジェクトタイプを作成し、
  2. 各ロールの値をその名前と同じに設定する

属性は共通の基本タイプを共有せず、オブジェクトクラス( "roleuser")にはロールではない他の属性が含まれています。ロールは、「ロール」で終わる属性名によって区別されます。(うん)

例。ユーザーのオブジェクトタイプにはオブジェクトタイプ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))マネージャーではない店員を取得するために)を指定できます。しかし、それは私が他のすべての可能な役割をリストする(そして否定する)ことを要求するでしょう。

さまざまな理由から、アプリケーションがすべての可能な役割を認識している必要はありません。これらの役割は、アプリケーションよりも迅速に変更される可能性があるためです。

それで。他のすべてのロールを動的に指定(および無効化)できるように、スキーマに含まれ、roleuser名前が付けられているすべての属性をクエリする方法はありますか?*role

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

4

1 に答える 1

0

フィルターを動的に構築することを検討しましたか? スキーマをクエリして、「ロール」で終わるすべての属性を取得し、それらを繰り返し処理して、必要なものを破棄し、各項目に (!___role=*) を追加してから、必要なもののフィルターを追加してクエリを実行できますそれを使って。

于 2009-08-12T16:22:05.637 に答える