#php #ldap #apacheds
#php #ldap #apacheds
Вопрос:
Я изучаю, как выполнять операции CRUD в каталоге LDAP и использовать ApacheDS для этой цели.Я пытаюсь добавить нового пользователя, но продолжаю получать следующее предупреждение:
Warning: ldap_add(): Add: Constraint violation
Вот код php, который я использую:
<?php
function ldap_add_user($user)
{
include('ldap_config.php');
include('ldap_admin.php');
$connect = ldap_connect($host, $port);
if ($connect)
{
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
$bind = ldap_bind($connect,$username,$password);
$info['uid'] = $user['mail_id'];
$info['userPassword'] = $user['password'];
$info['cn'] = $user['firstname'].' '.$user['lastname'];
$info['sn'] = $user['lastname'];
$info['objectClass'][3] = "inetOrgPerson";
$info['objectClass'][2] = "organizationalPerson";
$info['objectClass'][1] = "person";
$info['objectClass'][0] = "top";
$dn="uid=".$user['mail_id'].", ou=auth_users, o=mycompany";
$r = ldap_add($connect,$dn,$info);
ldap_close($connect);
return true;
}
else
{
return false;
}
}
?>
И, что интересно, приведенный выше код отлично работает, когда я использую цифровой пароль для $user[‘password’] , но когда я передаю буквенно-цифровые или нечисловые пароли, я получаю предупреждение, упомянутое выше.
Комментарии:
1. LDAP возвращает ошибку 19 при попытке добавить значение атрибута, которое не соответствует ограничениям по размеру, или при попытке добавить 2-е значение к атрибуту, который допускает присутствие только одного значения.
2. Что сработало для меня, так это изменение атрибута ads-pwdcheckquality с 2 на 0. У меня не было много времени, чтобы разобраться, почему именно это работает, но я считаю, что это ослабляет критерии по умолчанию, установленные для ограничений для атрибута userPassword.
3. Спасибо, что задали этот вопрос @user3739870, у меня такая же проблема. Наиболее предпочтительно я хотел бы выбрать безопасный пароль, у кого-нибудь есть решение для этого? Если нет, где вы изменили атрибут «ads-pwdcheckquality»?
Ответ №1:
Если вы используете Apache Directory Studio, щелкните правой кнопкой мыши на соединении, выберите «Открыть конфигурацию» и перейдите на вкладку «Политики паролей». Справа вы увидите опцию «Проверить качество».Включите его в «Отключено».