2017-02-09 13 views
0

Я использую Active directory с сервером Windows 2008 R2. У меня есть приложение, работающее с Django и python 2.7. Теперь мне нужно использовать аутентификацию активного каталога для доступа в мое приложение.Как django-auth-ldap достичь аутентификации с помощью cn (общее имя) в AD?

Чтобы сделать это, я использую эти пакеты:

sudo apt-get-update 
sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev 
sudo pip install django-auth-ldap 
sudo pip install python-ldap 

Я использовал полное имя, чтобы иметь успешную привязку.

import ldap 
from django.conf import settings 

username='my full name in AD' 
password= 'my password' 

l = ldap.initialize(settings.AUTH_LDAP_SERVER_URI) 
l.simple_bind_s(username,password) 

enter image description here

Моя проблема, когда я пытаюсь использовать свой атрибут сп для привязки, я получил эту ошибку:

Traceback (most recent call last): 
File "<console>", line 1, in <module> 
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 207, in  
simple_bind_s 
return self.result(msgid,all=1,timeout=self.timeout) 
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 422, in 
result res_type,res_data,res_msgid = self.result2(msgid,all,timeout) 
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 426, in 
result2 res_type, res_data, res_msgid, srv_ctrls =  
self.result3(msgid,all,timeout) 
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 432, in 
result3 ldap_result = self._ldap_call(self._l.result3,msgid,all,timeout) 
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 96, in 
_ldap_call result = func(*args,**kwargs) 
INVALID_CREDENTIALS: {'info': '80090308: LdapErr: DSID-0C0903A9, comment: 
AcceptSecurityContext error, data 52e, v1db1', 'desc': 'Invalid 
credentials'} 

enter image description here

Могу ли я использовать мой сп (общее имя) для аутентификации в моем Active Directory?

Спасибо.

ответ

1

Вы не можете использовать значение cn в свой simple_bind(). Вместо этого используйте альтернативное имя участника-пользователя [email protected] или один из других supported bind names.

0

@marabu, спасибо, что ответ. Вы правы, не используйте какой-либо атрибут редактора (например, cn, ....) в простом bind. У нас есть доступ к этому атрибуту только методом поиска после успешной привязки. В моем случае у меня есть два варианта:

1) simple_bind_s (full_name, пароль)

2) simple_bind_s (SamAccountName @ FQDN, пароль), если мы используем адрес электронной почты для нашей сессии Authenticate

как это:

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^