【发布时间】:2017-11-20 10:31:18
【问题描述】:
我了解如何根据简单的属性创建 ldap 搜索过滤器,例如
(&(objectClass=universityPerson)(surname=Smith*))
将返回姓氏以“Smith”开头的大学人员的精美列表。到目前为止一切顺利!
在我们大学的 LDAP 架构中,人们有许多自定义属性或子对象,它们的结构类似于
graduateStatus: {campus=CAMPUS_CODE}:{degSchool=SCHOOL_CODE}:{classYr=YYYY}
或
universityHR:
{jobCategory=Staff}:
{campus=CAMPUS_CODE}:
{deptId=999999}:
{deptGroup=COLLEGE_BUSINESS}:
{deptDescription=Business Library}:
{deptVicePresidentArea=PROVOST}:
{jobcode=123456}:
{jobFamily=123}:
{emplStatus=A}:
{regTemp=R}
通过 LDAP 查询来回答以下问题会非常有用:
- “谁是商学院 1995 年班毕业的人?”
- “护士学校的工作人员都是谁,jobCode=456789?”
- “jobFamily=789 的主校区临时工作人员是谁?”
我希望能够创建引用这些子属性的 ldap 搜索过滤器,例如:
(&(objectClass=universityPerson)(graduateStatus.campus=BUS)(graduateStatus.classYr=1995))
或
(&(objectClass=universityPerson)(universityHR.regTemp=T)(universityHR.jobFamily=789))
但我不知道这是否可能,更不用说语法是什么了。
我怀疑这不是 LDAP 的好用例,我应该在其他企业系统中寻找此类问题的答案。然而,将企业目录用作比美化的电话簿更多的东西会非常方便。
挖掘各种发行版的 OpenLDAP.org 和 ldapsearch 文档并没有找到答案。每当我查找有关嵌套属性或层次结构的信息时,我都会找到大量有关嵌套组 和成员资格查询的文档,但这不是这里的问题。
非常感谢您的建议。
【问题讨论】:
-
LDAP 不以任何形式或形式支持此功能,您也不应该。 “嵌套属性”应该是子对象。
-
也许如果你展示你所反对的结构会更有意义,并且可以提出建议。
-
@EJP 我认为我在这里学到的是,这不是使用 LDAP 的好方法。案件结案!