@twintwin1003

Python аутентификация в Active Directory?

Необходимо на питоне сделать аутентификацию пользователя в AD. Решил использовать ldap либу, только есть одно маленькое НО
- при неправильных данных я получаю отворот-поворот от сервера
- в случае же верных данных или пустых username = '', password = '' все ОК

как так?
Почему он принимает пустые входные данные?
#!/usr/bin/env python

import ldap

def authenticate(address, username, password):
    conn = ldap.initialize('ldap://' + address)
    conn.protocol_version = 3
    conn.set_option(ldap.OPT_REFERRALS, 0)

    try:
        result = conn.simple_bind_s(username, password)
    except ldap.INVALID_CREDENTIALS:
        return "Invalid credentials"
    except ldap.SERVER_DOWN:
        return "Server down"
    except ldap.LDAPError, e:
        if type(e.message) == dict and e.message.has_key('desc'):
            return "Other LDAP error: " + e.message['desc']
        else: 
            return "Other LDAP error: " + e
    finally:
        conn.unbind_s()

    return "Succesfully authenticated"


name = 'user@hello.world'
password = 'Qwerty12345'

name = ''
password = ''

result = authenticate('192.168.1.33', name, password)

print result


Ответ в случае неправильных данных:
ldap.INVALID_CREDENTIALS: {'info': '80090308: LdapErr: DSID-0C0903C5, comment: AcceptSecurityContext error, data 52e, v2580', 'desc': 'Invalid credentials'}
Верные и пустые данные:
(97, [], 5, [])
3 параметр всегда инкрементируется.
  • Вопрос задан
  • 8716 просмотров
Решения вопроса 1
Winsik
@Winsik
сис.админ, недопрограммист :)
Вот так коннектиться:
import ldap
conn = ldap.open("ad.corp.mydomen.ru")
conn.simple_bind_s("userad@corp.medomen.ru", "secret")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы