Нужна помощь в использовании python-ldap для запроса имен пользователей на моем сервере LDAP.

Я хочу, чтобы мой сценарий просто запрашивал LDAP и давал мне список всех пользователей, принадлежащих к любой группе, которую я указываю в переменной SAMPLE_groupName.

это мой скрипт

server = 'ldap://myserver'

dn = 'uid=jonny,cn=users,cn=accounts,dc=example,dc=com'

base = 'cn=coolGuys,cn=groups,cn=accounts,dc=example,dc=com'

pw = "password"
filter = '(objectclass=*)'
attrs = ['member']

con = ldap.initialize(server)

try:
    con.start_tls_s()
    con.simple_bind_s(dn,pw)
    print con.search_s(base, ldap.SCOPE_SUBTREE, filter, attrs)
except ldap.INVALID_CREDENTIALS:
    print "Your username or password is incorrect."
    sys.exit()
except ldap.LDAPError, e:
    if type(e.message) == dict and e.message.has_key('desc'):
        print e.message['desc']
    else:
        print e
    sys.exit()
finally:
    print "unbinding."
    con.unbind()

И вот вывод

[('cn=coolGuys,cn=groups,cn=accounts,dc=example,dc=com', {'member',['uid=jonny,cn=users,cn=accounts,dc=openstack,dc=local']})]

Вывод показывает, что один участник находится в группе coolGuys, что верно в моем случае. Итак, вот мой вопрос... Как я могу вывести просто "jonny", а не ту длинную строку вывода, что у меня выше?


person Joey Corkey    schedule 28.08.2017    source источник
comment
Попробуйте выполнить привязку с учетными данными, имеющими соответствующие разрешения, по крайней мере, для чтения всех записей.   -  person jwilleke    schedule 28.08.2017
comment
да, я делаю привязку с соответствующими учетными данными. Просто не уверен, как заставить его просто вернуть имя пользователя. Также имейте в виду, что это openLdap, работающий на машине с Linux.   -  person Joey Corkey    schedule 28.08.2017
comment
используя python-ldap, я бы выполнил поиск 'restuls = l.search_s(searchBase, ldap.SCOPE_ONELEVEL, searchFilter, attrlist=['*'])', а затем захватил членов 'members = restuls[0][1]['member ']' пример как ответ ниже   -  person iNoob    schedule 20.10.2017