我在 python 2.7 下使用ldap3模块并在我的目录上进行搜索。我可以检索用户的cn:
,但如何正确检索DistinguishedName(具体DN:
如下)?
>>> conn.search (BASE_DN, '(&(uid=user456))', attributes=['*'])
True
>>> print conn.entries[0]
DN: uid=user456,ou=myou,dc=myorg
cn: user456
...
>>> print conn.entries[0]['cn']
user456
>>> print conn.entries[0]['DN']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/ldap3/abstract/entry.py", line 100, in __getitem__
return self.__getattr__(item)
File "/usr/lib/python2.7/dist-packages/ldap3/abstract/entry.py", line 88, in __getattr__
raise LDAPKeyError('key not found')
ldap3.core.exceptions.LDAPKeyError: 'key not found'
python ldap3 搜索的结果不仅是属性,而且是形式的元组
(dn, attributess, raw_attributes)
,其中:dn
: 包含条目的 DN(可分辨名称)的字符串attributes
:返回属性及其值的字典。值是列表。值采用 UTF-8 格式raw_attributes
:与“属性”相同,但未编码(字节数组)DN 本身不是(DN 的)属性...
因此,显示 DN 和 CN 类似于:
您可以从以下条目中获取 DN: