OpenLDAP возвращает предупреждение только об истечении срока действия пароля

Я пытаюсь использовать политику паролей OpenLDAP для аутентификации.

Я установил свою политику со следующим:

dn: cn=passwordDefault,ou=Policies,dc=company,dc=com
objectClass: pwdPolicy
objectClass: person
objectClass: top
cn: passwordDefault
sn: passwordDefault
pwdAttribute: userPassword
pwdCheckQuality: 0
pwdMinAge: 0
pwdMaxAge: 7776000
pwdMinLength: 8
pwdInHistory: 5
pwdMaxFailure: 5
pwdFailureCountInterval: 600
pwdLockout: TRUE
pwdLockoutDuration: 0
pwdAllowUserChange: TRUE
pwdExpireWarning: 604800
pwdGraceAuthNLimit: 0
pwdMustChange: FALSE
pwdSafeModify: FALSE

При тестировании политики я могу получить предупреждение только в том случае, если срок действия пароля истек:

try {
        bindResult = bind(ldapConnection, userDN, userPassword);
    } catch (LDAPException le) {
        bindResult = new BindResult(le.toLDAPResult());
    }
   DraftBeheraLDAPPasswordPolicy10ResponseControl pwpResponse = DraftBeheraLDAPPasswordPolicy10ResponseControl.get(bindResult);
 DraftBeheraLDAPPasswordPolicy10WarningType warningType = pwpResponse.getWarningType();

единственный раз, когда тип предупреждения не равен нулю, - это когда срок действия пароля истек.

когда учетная запись заблокирована после 5 неудачных попыток, ldap возвращает «неверные учетные данные», но это не так.

как мне получить правильную причину, по которой аутентификация не удалась?

Спасибо.


person Gleeb    schedule 15.01.2015    source источник


Ответы (1)


Когда вы получаете исключение, вы также можете иметь элементы управления ответом. Я не знаю, как это выглядит в Spring-LDAP, но я сделал это в JNDI через LdapContext.getResponseControls(). Контроль ответа должен содержать статус блокировки.

Однако с этим нужно быть осторожным. Вы не хотите сообщать пользователю, что учетная запись заблокирована. Это было бы на первый взгляд нарушением безопасности. Вы бы сообщили злоумышленнику, что учетная запись существует, и что дальнейшие немедленные попытки не увенчаются успехом, что помогает ему в его работе.

person user207421    schedule 17.01.2015