Ldap
如何使用 python ldap3 列印使用者的 DN
我在 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 類似於:
conn.search (BASE_DN, '(&(uid=user456))', attributes=['*']) for dn,attrs,raw_attrs in conn.search.response: print dn print attrs['cn']