我试图在LDAP服务器中搜索
确切地
指定的属性。
我正在处理的LDAP模式通过以下方式记录用户角色:
-
创建可以包含多个属性(角色)中任意一个的对象类型,以及
-
将每个角色的值设置为与其名称相同
这些属性不共享公共基类型,而objectclass(“roleuser”)包含其他非角色的属性。角色由以“Role”结尾的属性名来区分。(恶心。)
例子。用户的对象类型将包括对象类型roleuser,并且可能具有以下属性=值对:
cn=userX
objectclass=roleuser,...
managerrole=managerrole
clerkrole=clerkrole
cn=userY
objectclass=roleuser,...
managerrole=managerrole
cn=userZ
objectclass=roleuser,...
clerkrole=clerkrole
我能查到职员,经理,经理。但当我查到职员时
(&(clerkrole=*)(objectclass=roleuser))
),我将使用role clerk(userZ)和roles manager and clerk(userX)返回用户。
我可以指定
(&(clerkrole=*)(!managerrole=*)(objectclass=roleuser))
)去找不是经理的职员。但这需要我列出(并否定)所有可能的其他角色。
出于各种原因,我不希望我的应用程序必须知道所有可能的角色,因为这些角色的更改速度可能比我的应用程序更快。
所以。是否有方法查询模式中的所有属性
roleuser
并被命名为
*role
,以便我可以动态指定(并否定)所有其他角色?
或者有一种方法来查询(CelkPyrase= *),并且没有其他属性名为*角色存在于该RoLeUsor中吗?