python-ldap simple_bind не строго проверяет пароль

#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 Я думаю, вы правы. Позвольте мне подтвердить это в нашем ИТ-отделе. Если они согласны, я бы попросил вас указать свой комментарий в качестве ответа, который я приму.