2017-11-11 236 views
1

是否有无法获取用户更改的属性而不是所有用户属性?如何让Ldap用户更改属性而不是所有用户属性

import ldap 
l = ldap.initialize("ldap://localhost") 
l.protocol_version = 3 
l.bind_s("cn=admin,dc=example,dc=org", "admin") 
r = l.search_ext("dc=example,dc=org", ldap.SCOPE_SUBTREE, "(objectClass=*)") 
print("Result", l.result3(r)) 
+1

号只能得到他们的当前值和信息,如上次修改的日期/时间。 – EJP

回答

0

为了解决这个问题,您需要通过搜索查询的,像这样的结尾处添加一个+标志,以获得OpenLDAP的内部字段:

$ ldapsearch -h localhost -w 'admin' -x -D "cn=admin,dc=example,dc=org" -b "DC=example,DC=org" + 

而在Python代码会是这样的:

r = l.search_ext("dc=example,dc=org", ldap.SCOPE_SUBTREE, "objectClass=*", ["+",], 0) 

然后它返回的内部字段是很重要的,如modifyTimestamp

或者,如果你想获得的所有内部字段和用户在一个请求属性,只需添加'*' '+'这样的:

r = l.search_ext("dc=example,dc=org", ldap.SCOPE_SUBTREE, "objectClass=*", ["*", "+"], 0) 

如果你想获得最后一个特定的日期后改变了用户,尝试添加modifyTimestamp在这样的查询:

$ ldapsearch -h localhost -w 'admin' -x -D "cn=admin,dc=example,dc=org" -b "DC=example,DC=org" "modifyTimestamp>=20171012152507Z 

要获得有关历史的更多信息,尝试启用您的LDAP overlay accesslog,并使用它:

$ ldapsearch -x -b cn=accesslog 

资源:

+0

不回答问题。 – EJP

相关问题