【问题标题】:LDAP search with custom attributes filter使用自定义属性过滤器进行 LDAP 搜索
【发布时间】:2019-03-15 15:19:35
【问题描述】:

给定在自定义属性上定义的过滤器,我在 LDAP 树中查找特定条目时遇到问题。

即(通过samaccountname=jpa搜索)

ldapsearch -x -D "CN=admin,DC=my,DC=com" -w admin -H ldap://localhost:10389 -b "ou=My Users,dc=my,dc=com" -s sub "samaccountname=jpa"工作(不返回结果)

而(搜索sn=jpa):

ldapsearch -x -D "CN=admin,DC=my,DC=com" -w admin -H ldap://localhost:10389 -b "ou=My Users,dc=my,dc=com" -s sub "sn=jpa" 有效

偶数(检查 samaccountname 是否存在):

ldapsearch -x -D "CN=admin,DC=my,DC=com" -w admin -H ldap://localhost:10389 -b "ou=My Users,dc=my,dc=com" -s sub "samaccountname=*" 有效

有什么想法可以在这里出错吗?我的意图是使用sub (samaccountname=jpa) 过滤器找到给定的用户

我的配置是(使用 osixia/openldap docker 镜像):

架构:

attributetype ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName'
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    SINGLE-VALUE
    USAGE userApplications )

objectclass ( 2.5.6.30 NAME 'extendedUser'
    SUP person
    STRUCTURAL
    MUST ( sAMAccountName ) )

ACL:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
delete: olcAccess
-
add: olcAccess
olcAccess: to * by * read

LDIF:

DN: OU=My Users,DC=my,DC=com
OU: My Users
objectClass: organizationalUnit

DN: CN=jpa,OU=My Users,DC=my,DC=com
CN: jpa
sn: jpa
sAMAccountName: jpa
objectClass: extendedUser
userPassword: xxx

【问题讨论】:

    标签: ldap openldap


    【解决方案1】:

    您需要在属性上定义EQUALITY。 LDAP 目前不知道如何对该属性执行搜索。

    attributetype ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName'
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
        EQUALITY caseIgnoreMatch
        SINGLE-VALUE
        USAGE userApplications )
    

    OpenLDAP Schema Specification

    【讨论】:

    • 好的,感谢您的提示!我不得不将其更改为`EQUALITY caseIgnoreMatch`,因为前者导致错误提示“AttributeType 不适当的匹配规则:caseIgnoreSubstringsMatch” - 但最终它起作用了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多