Я пытаюсь изменить аутентификатор на основе python для murmur (voip software) для работы с моим деревом ldap.запрос атрибута python ldap
Аутентификатор LDAP доступен по адресу:
http://www.winex.org/linux/zealot/src/mumble-scripts/Authenticators/LDAP/LDAPauth.py
Это работает, но не совсем с моей макет Ldap, так что я должен изменить его немного. Я знаю подход, который мог бы работать, но, к сожалению, я больше не знаю о питоне, чем о том, что я узнал из Google (у меня есть еще какой-то опыт программирования).
Мой макет LDAP выглядит следующим образом:
charName=xxx, ou=people, dc=xxx, dc=com
Под этим есть атрибуты хранятся такие как userPassword
и login
среди других.
Сценарий python, приведенный выше, предназначен для использования привязки ldap для аутентификации. В этом случае мне пришлось бы связывать "charName=logindatafromapp, ou=people, dc=xxx, dc=com"
. К сожалению, люди не входят в систему с "charName"
, но с "login"
, который является атрибутом, но не идентичен "charName"
.
Я не знаю, как связываться с атрибутом, так вот моя идея:
- Я первый противоречива, как Ldap администратора и выполнить поиск по всем записям для
"logindatafromapp"
и соответствовать этому значение против"login"
. Если совпадение найдено, я возьму соответствующий"charName"
и перевяжу с этимcharName
, как первоначально предполагалось.
В настоящее время я застрял на запрашивая значение "charName"
и при присвоении этого значения переменной, так что я мог бы использовать его во втором Ldap связывания (Google не реально помочь мне).
Вот мой код:
ldap_conn = ldap.initialize(ldap_uri, 0)
ldap_conn.bind_s("cn=admin,dc=xxxxxxxx,dc=com","pass")
res = ldap_conn.search_s('ou=people,dc=xxxxxx,dc=com', ldap.SCOPE_ONELEVEL,'login=trony',['charName'])
print(res)
Затем печатает "[('charName=Trony,ou=people,dc=xxxxxxx,dc=com', {'charName': ['Trony']})]"
.
("login=trony"
) - временный фильтр, который мне пришлось бы заменить на applogin
var. Моя проблема заключается в том, как я могу назначить "Trony"
(в данном случае) переменной? Результат кажется специальной структурой?
спасибо большое :), "name = res [0] [0] {'charName'} [0]« не работает », говорит синтаксическая ошибка. – user912877
не забудьте принять ответ :) –
более конкретно: Файл «./LDAPauth.py», строка 205 test = res [0] [0] {'charName'} [0] ^ Синтаксис: недействительный синтаксис – user912877