Необходимо на питоне сделать аутентификацию пользователя в 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 параметр всегда инкрементируется.