#python #ldap
#питон #ldap
Вопрос:
Я поиграл с ldap-модулем Python, когда обнаружил, что функции модуля ldap simple_bind() / simple_bind_s() на самом деле не выполняют никакой строгой аутентификации.
например
import ldap
ldap_client = ldap.initialize("ldap://ldapserver.com")
ldap_login = 'abc'
password = 'passwd' # assume this is the right password
# scenario 1:
ldap_client.simple_bind_s(ldap_login, password) # Allows bind
# scenario 2:
password = 'passwd_kjasdk' # Incorrect password where suffix is incorrect
ldap_client.simple_bind_s(ldap_login, password) # Allows bind
# scenario 3:
password = 'kjasdk_passwd' # Incorrect password where prefix is incorrect
ldap_client.simple_bind_s(ldap_login, password) # Doesn't allow bind
Сценарий 2 выше ясно показывает, что функция привязки просто разрешает вход в систему, если пароль совпадает с начальными символами.
Вопрос в том, как запретить / предотвратить 2-й сценарий?
Комментарии:
1. Проверка пароля выполняется сервером , а не клиентом. Если сервер разрешает аутентификацию только с частичным совпадением пароля, клиент ничего не может сделать для решения этой проблемы.
2. @larsks Я думаю, вы правы. Позвольте мне подтвердить это в нашем ИТ-отделе. Если они согласны, я бы попросил вас указать свой комментарий в качестве ответа, который я приму.