Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 6, 2011 07:16:20

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

python-ldap -> авторизация пользователя в AD

Хочу уточнить…
Полный DN, это : если адрес сервера host.domain.ru, то ‘dn=host,dn=domain,dn=ru’
Так?



Офлайн

#2 Апрель 6, 2011 10:08:00

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

python-ldap -> авторизация пользователя в AD

vak
Хочу уточнить…
Полный DN, это : если адрес сервера host.domain.ru, то ‘dn=host,dn=domain,dn=ru’
Так?
Нет, не так
Во-первых, host в вашем случае абсолютно не при чем, т.е. если адрес сервера host.domain.ru, то рутовый dn будет такой ‘dc=domain,dc=ru’
Во-вторых, 'dc=domain,dc=ru', а не 'dn=domain,dn=ru'
В-третьих, вам нужен dn юзера, а не хоста, т.е. если юзер в вашем домене, например, находится в ou Users и группе test, то его dn будет приблизительно таким ‘cn=vasja.pupkin,cn=test,ou=Users,dc=domain,dc=ru’

И, наконец, я не понимаю, что вам мешает взять любой LDAP менеджер и посмотреть на структуру и dn'ы. Просматривать каталоги в AD можно под любой учетной записью, т.е. никаких супер-привелегий не нужно.



Офлайн

#3 Апрель 7, 2011 05:20:26

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

python-ldap -> авторизация пользователя в AD

Взял JXplorer - тоже ошибки при попытке подключения.

Error opening connection:
[LDAP: error code 1 - 00000000: LdapErr: DSID-0C090627, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, vece



Офлайн

#4 Апрель 7, 2011 10:42:41

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

python-ldap -> авторизация пользователя в AD

vak
Взял JXplorer - тоже ошибки при попытке подключения.
Ну он вам, каг бэ, намекает, что сначала нужно сделать бинд, а потом уже просматривать директории, т.е. вы либо совсем не биндились, либо указали неправильный логин/пароль.



Офлайн

#5 Апрель 7, 2011 11:26:50

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

python-ldap -> авторизация пользователя в AD

Да, согласен. Сейчас пытаюсь подключиться ldapsearch самое простое без пароля получается запросить:

$ldapsearch -x -h 192.168.0.1 -b '' -s base '(objectclass=*)'
…а дальше ступор… разбираюсь.



Офлайн

#6 Окт. 10, 2011 17:11:30

metallic
От:
Зарегистрирован: 2011-10-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

python-ldap -> авторизация пользователя в AD

vak
Не разобрался? Имею похожую проблему, только еще интереснее, с некоторыми пользователями бинд проходит удачно, а с некоторыми нет %)
Вот код, упростил по максимуму:

import ldap

conString = 'cn=vaspup,cn=Users,dc=domain,dc=org'
l = ldap.initialize('ldap://server')
#l.protocol_version = ldap.VERSION3
#l.set_option(ldap.OPT_REFERRALS, 0)
try:
l.simple_bind_s(conString, "vaspup1")
print "OK"
except ldap.INVALID_CREDENTIALS:
print "Your username or password is incorrect."
except ldap.LDAPError as err:
print err
Сробатывает исключение INVALID_CREDENTIALS, хотя нашел несколько пользователей, с которыми удается прибиндится.

При этом авторизация через керберос с проблемными пользователями проходит:
import kerberos 
kerberos.checkPassword('vaspup','vaspup1','krbtgt/domain.org','DOMAIN.ORG')



Офлайн

#7 Окт. 11, 2011 14:44:05

metallic
От:
Зарегистрирован: 2011-10-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

python-ldap -> авторизация пользователя в AD

Разобрался.
Оказывается виндовый AD воспринимает только полное имя пользователя, а логин - нет.
Проще говоря вот такой логин не прокатывает:

'cn=vaspup,cn=Users,dc=domain,dc=org'
А вот такой прокатывает:
'cn=Василий Пупкин,cn=Users,dc=domain,dc=org'



Отредактировано (Окт. 11, 2011 14:44:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version