Форум проекта Pro-LDAP.ru

Администрирование OpenLDAP => Конфигурационный файл slapd.conf => Тема начата: elms от 23 Май 2016, 10:13:45

Название: Авторизация с помощью entryUUID
Отправлено: elms от 23 Май 2016, 10:13:45
Добрый день. С openldap столкнулся не так давно, не ругайтесь - если не в том разделе оформил тему.
Суть вопроса такова. Обычная авторизация проходит через dn=...., хотелось бы настроить авторизацию путём ввода entryUUID пользователя и пароля.
Как возможно реализовать данную задумку?
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 23 Май 2016, 16:48:17
А ну еще добавлю. ОС windows server 2008 r2, openldap 2.4+, в качестве браузера использую ldapAdmin.
Стандартная авторизация с помощью cn=....,dc=....,dc=... проходит. Нужна авторизация только с помощью entryUUID и пароля. Возможно вообще такое осуществить?
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 24 Май 2016, 00:54:01
Здравствуйте! Какую программу Вы настраиваете для аутентификации c использованием каталога LDAP?

Если речь идёт об аутентификации в самом OpenLDAP, то можно попробовать настроить такое с помощью библиотеки Cyrus-SASL (см., например, тут (http://blog.toxa.de/archives/493)), но я не уверен, что это будет работать на Windows =( .

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 24 Май 2016, 10:38:24
Спасибо за ответ. Для аутентификации на данный момент используем браузер ldapAdmin.
Поставили задачу авторизации с помощью entryUUID, но как по мне, это нереализуемо.
Пользователям не нравится использовать полный dn для авторизации.
Тогда еще следующий вопрос, возможно ли реализовать авторизацию с использованием только cn, упуская весь путь?
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 24 Май 2016, 13:04:46
Спасибо за ответ. Для аутентификации на данный момент используем браузер ldapAdmin.
Поставили задачу авторизации с помощью entryUUID, но как по мне, это нереализуемо.
Пользователям не нравится использовать полный dn для авторизации.
Тогда еще следующий вопрос, возможно ли реализовать авторизацию с использованием только cn, упуская весь путь?

В атрибуте entryUUID хранится уникальный идентификатор записи каталога (нужен, в первую очередь, для репликации), он выглядит примерно так:
entryUUID: ff81634e-7aef-1035-968a-8173c660e1a4Вряд ли именно это хочется вводить Вашим пользователям =) . Видимо, имеется ввиду атрибут uid, в котором обычно хранят логины для разных систем.

Что касается аутентификации, то LDAP поддерживает простую basic-аутентификацию (тот самый DN и пароль) и SASL-аутентификацию, где логином может служить то, что распознаётся используемым SASL-механизмом, в том числе и значение атрибута LDAP (я Вам приводил ссылку в прошлом посте).

LdapAdmin, к сожалению, под рукой нет, как доберусь до компьютера с Windows, напишу, как там поддерживается SASL-аутентификации (если вообще поддерживается).

Егор Левинца
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 24 Май 2016, 13:18:36
Огромное спасибо за быстрый и развернутый ответ.
Буду рад, если у Вас будет возможность проверить SASL-аутентификацию.
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 26 Май 2016, 07:21:43
Здравствуйте ещё раз!

Простите, что задержался с ответом -- SASL оказался достаточно запутанным делом, с кандачка взять его не получилось, помогли вот эти материалы:
http://bacedifo.blogspot.ru/2014/09/sasldigest-md5-with-openldap-2.html (http://bacedifo.blogspot.ru/2014/09/sasldigest-md5-with-openldap-2.html)
http://serverfault.com/questions/744050/how-to-get-sasl-authentication-to-work-with-digest-md5-for-openldap/747159 (http://serverfault.com/questions/744050/how-to-get-sasl-authentication-to-work-with-digest-md5-for-openldap/747159)
http://blog.toxa.de/archives/493 (http://blog.toxa.de/archives/493)

Пара ложек дёгтя:

В итоге я добился, что из комадной строки можно пройти SASL-аутентификацию:
# ldapsearch -LLL -Y DIGEST-MD5 -U egor -w test123 -b 'dc=mycompany,dc=ru' -s base dn
SASL/DIGEST-MD5 authentication started
SASL username: egor
SASL SSF: 128
SASL data security layer installed.
dn: dc=mycompany,dc=ru

Из LdapAdmin тоже получилось подключиться (см. вложения), вместо простого подключения выбрал пункт  GSS-API, указал мои учётные данные, и все прошло успешно (причём установка/отключение галки SASL ни на что не влияет =) ).

Так что всё осуществимо.

Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 26 Май 2016, 10:39:00
Большое спасибо! Но для меня, как для начинающего пользователя ldap (даже не было знакомства с AD), очень много трудностей в настройке SASL.
Буду пытаться найти информацию о настройке SASL на Windows.
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 26 Май 2016, 12:39:10
Какой дистрибутив OpenLDAP для Windows Вы используете? Дайте ссылку, я посмотрю, можно там что-то сделать.

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 26 Май 2016, 13:57:20
OpenLDAP 2.4.42 Standalone LDAP Server
Подсказать ссылку не могу, на шаре лежал.
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 27 Май 2016, 12:10:25
Я нашёл 2 сборки для Windows:

Установил первый вариант, сервер завёлся. Поддержка SASL в нём, вроде бы, есть, присутствует библиотека  libsasl.dll, но как её настроить -- ума не приложу. Если документация по настройке SASL в Linux достаточно путанная и отрывочная, то для Windows её ВООБЩЕ НЕТ, по крайней мере я не нашёл. Конечно, можно ещё поковыряться, либо попробовать поставить вторую сборку. Однако, насколько я помню, в LdapAdmin соединение с сервером (в том числе и учётные данные) настраивается один раз и запоминается, при повторном соединении вводить DN с паролем не надо, так стоит ли овчинка выделки?

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 27 Май 2016, 15:39:16
Спасибо большое за проделанную работу!)
Займусь в выходные этими сборками. Касаемо отсутствия документации по настройке SASL на OC Windows полностью согласен. Вы совершенно правы, что данные для авторизации достаточно ввести один раз. Но прихоть руководителя - дело такое.
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 16 Июнь 2016, 10:43:05
Добрый день. И снова я. Ушёл от счетных попыток настроить SASL аутентификацию на винде, перешел на линукс redhat.
Проблема следующего рода, основывая на ссылках, которые Вы предоставили мне ранее, пытаюсь поставить тот же пакет sasl2-bin, такого пакета не находит.
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 16 Июнь 2016, 16:27:59
При попытке поиска и авторизации через терминал получаю следующую фразу:
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: SASL(-13): user not found: no secret in database
При попытке авторизации через ldapadmin получаю следующий ответ:
неправильные учетные данные: SASL(-13): authentification failure: realm changed: authentication aborted
Подскажите, что не так делаю?
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 17 Июнь 2016, 09:45:10
[user1@localhost ~]$ ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
Вот что выдает этот запрос
Соответственно, как я понимаю, не задана база. В какую сторону копать?
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 20 Июнь 2016, 09:38:15
Здравствуйте! Простите, что ответил не сразу -- я в отпуске, и совсем не до компьютеров =) .

Добрый день. И снова я. Ушёл от счетных попыток настроить SASL аутентификацию на винде, перешел на линукс redhat.
Проблема следующего рода, основывая на ссылках, которые Вы предоставили мне ранее, пытаюсь поставить тот же пакет sasl2-bin, такого пакета не находит.

У redhat своя система именования пакетов, совершенно не связанная с именованием пакетов Debian. Как я понял из поиска в google, Вам надо поставить пакет cyrus-sasl-lib.

При попытке поиска и авторизации через терминал получаю следующую фразу:
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: SASL(-13): user not found: no secret in database
При попытке авторизации через ldapadmin получаю следующий ответ:
неправильные учетные данные: SASL(-13): authentification failure: realm changed: authentication aborted
Подскажите, что не так делаю?

Это общие ошибки аутентификации, могут означать что угодно, от неправильно настроенной системы аутентификации до неверно введённого пароля. Трудно что-то сказать, не зная, что Вы уже сделали. Покажите (можно в личку) Ваши настройки libsasl и slapd, тогда можно будет сказать что-то конкретное.

[user1@localhost ~]$ ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
Вот что выдает этот запрос
Соответственно, как я понимаю, не задана база. В какую сторону копать?

Нужно указать базовую запись поиска, то есть запись, начиная с  которой клиент будет искать записи "вниз" по дереву каталога. Базовая запись задаётся в аргументе -b, диапазон поиска -- в аргументе -s. Лучше сразу почитайте man-страницу ldapsearch (http://pro-ldap.ru/tr/man/ldapsearch.1.html).

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 20 Июнь 2016, 09:49:00
Спасибо за расширенный ответ!
1. Касаемо пакетов, да, с этим разобрался, недостающие пакеты установил.
2. Настройки slapd отправлю в течении 10 минут в личные сообщения, где лежат настройки sasl без понятия.
3. С синтаксисом поиска уже разобрался, допустим при запросе ldapsearch -x -b "dc=nazvaniebd" выдает полностью все каталоги, но это простая аутентификация, насколько я понимаю.
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 20 Июнь 2016, 09:56:40
А вот теперь самое интересное для меня, как для двухдневного пользователя линукса)
В качестве конфигурационного файла используеться slapd.conf.obsolete, который лежит в usr/share/openldap-servers?
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 20 Июнь 2016, 10:33:38
1. olcDatabase={2}bdb.ldif:
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 b9e99f3f
dn: olcDatabase={2}bdb
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {2}bdb
olcSuffix: dc=testtest
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=admin,dc=testtest
olcRootPW: Passw0rd
olcSyncUseSubentry: FALSE
olcMonitoring: TRUE
olcDbDirectory: /var/lib/ldap
olcDbCacheSize: 1000
olcDbCheckpoint: 1024 15
olcDbNoSync: FALSE
olcDbDirtyRead: FALSE
olcDbIDLcacheSize: 0
olcDbIndex: objectClass pres,eq
olcDbIndex: cn pres,eq,sub
olcDbIndex: uid pres,eq,sub
olcDbIndex: uidNumber pres,eq
olcDbIndex: gidNumber pres,eq
olcDbIndex: mail pres,eq,sub
olcDbIndex: ou pres,eq,sub
olcDbIndex: sn pres,eq,sub
olcDbIndex: givenName pres,eq,sub
olcDbIndex: loginShell pres,eq
olcDbIndex: memberUid pres,eq,sub
olcDbIndex: nisMapName pres,eq,sub
olcDbIndex: nisMapEntry pres,eq,sub
olcDbLinearIndex: FALSE
olcDbMode: 0600
olcDbSearchStack: 16
olcDbShmKey: 0
olcDbCacheFree: 1
olcDbDNcacheSize: 0
olcTLSVerifyClient: never
olcTLSCipherSuite: TLSv1+RSA:!EXPORT:!NULL
olcTLSCertificateFile: /etc/openldap/certs/slapdcert.pem
olcTLSCertificateKeyFile: /etc/openldap/certs/slapdkey.pem
structuralObjectClass: olcBdbConfig
entryUUID: 1dde198c-c66c-1035-80c8-9d7284b50bed
creatorsName: cn=config
createTimestamp: 20160614110850Z
entryCSN: 20160614110850.049381Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20160614110850Z
2.olcDatabase={0}config.ldif:
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 b27b51d6
dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=externa
 l,cn=auth" manage  by * write
olcAccess: {1}to dn.exact="" by * write
olcAccess: {2}to dn.base="dc=testtest" by * write
olcAddContentAcl: TRUE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=config
olcRootPW: Passw0rd
olcSyncUseSubentry: FALSE
olcMonitoring: FALSE
structuralObjectClass: olcDatabaseConfig
entryUUID: 1dde13d8-c66c-1035-80c6-9d7284b50bed
creatorsName: cn=config
createTimestamp: 20160614110850Z
entryCSN: 20160614110850.049381Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20160614110850Z
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 20 Июнь 2016, 11:14:25
Выше Вы писали, что у вас всё получилось и авторизация с использованием uid прошла на ура.
Не могли бы Вы поделиться файлом настроек, дабы я сравнил имеющиеся у вас настройки конфигурации и свои?
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 21 Июнь 2016, 10:22:26
Выше Вы писали, что у вас всё получилось и авторизация с использованием uid прошла на ура.
Не могли бы Вы поделиться файлом настроек, дабы я сравнил имеющиеся у вас настройки конфигурации и свои?

Насчёт "ура" я не говорил, пришлось повозиться =) . Я в отпуске и того компьютера с собой нет, попробую воспроизвести стенд на ноутбуке и отпишусь как получится.

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 21 Июнь 2016, 10:29:48
Выше Вы писали, что у вас всё получилось и авторизация с использованием uid прошла на ура.
Не могли бы Вы поделиться файлом настроек, дабы я сравнил имеющиеся у вас настройки конфигурации и свои?

Насчёт "ура" я не говорил, пришлось повозиться =) . Я в отпуске и того компьютера с собой нет, попробую воспроизвести стенд на ноутбуке и отпишусь как получится.

Егор
Огромное спасибо. Я просто не понимаю, в чём может быть проблема. Пытаюсь зайти под админом, пароль представлен в открытом виде, но не удается, всё ругается на ошибку аутентификации.
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 24 Июнь 2016, 11:16:54
Здравствуйте! Простите за задержку -- времени вообще нет, удалось немного посидеть за компьютером в аэропорту между рейсами =) . Но результат есть.

Вот мой минималистический конфигурационный файл slapd.conf:

include       /etc/ldap/schema/core.schema

moduleload    back_mdb.la

sasl-auxprops slapd

authz-regexp  "uid=([^,]+),cn=digest-md5,cn=auth" "uid=$1,ou=People,dc=mycompany,dc=ru"

database    mdb
directory   /data/openldap-experiments/2016-06-23_sasl
suffix      dc=mycompany,dc=ru
rootDN      cn=manager,dc=mycompany,dc=ru
rootPW      test

А вот каталог (файл init.ldif):

# Корневая запись
dn: dc=mycompany,dc=ru
objectClass: organization
objectClass: dcObject
dc: mycompany
o: My Company

# Ветка "Люди"
dn: ou=People,dc=mycompany,dc=ru
objectClass: organizationalUnit
ou: People

# Некто Иван
dn: uid=ivan,ou=People,dc=mycompany,dc=ru
objectClass: inetOrgPerson
uid: ivan
cn: Ivan Petrov
sn: Petrov
userPassword: ivanPassword

Запускаю slapd в интерактивном режиме:

slapd -f ./slapd.conf -h ldap://127.0.0.1:9000 -d 256
Из другого терминала добавляю каталог:

ldapadd -D 'cn=manager,dc=mycompany,dc=ru' -w test -H ldap://127.0.0.1:9000 -f ./init.ldif
Теперь можно подключиться к каталогу от имени пользователя ivan:

ldapsearch -LLL -H ldap://127.0.0.1:9000 -b 'dc=mycompany,dc=ru' -U ivan -w ivanPassword dn
SASL/DIGEST-MD5 authentication started
SASL username: ivan
SASL SSF: 128
SASL data security layer installed.
dn: dc=mycompany,dc=ru

dn: ou=People,dc=mycompany,dc=ru

dn: uid=ivan,ou=People,dc=mycompany,dc=ru

Вот и всё. Ключевым тут является отображение пользователей из аутентификационного псевдокаталога cn=digest-md5,cn=auth в рабочий каталог (см. директиву authz-regexp в конфигурационном файле), без этого отображения аутентификация работать не будет. Да, и пароли в атрибуте userPassword должны быть в открытом виде (обязательно защитите их с помощью ACL).

Остановить slapd в первом терминале можно нажав Ctrl+C.

Когда будете настраивать на настоящем каталоге,там будет динамическая конфигурация, так что, соответственно, нужно будет задать атрибуты olcSaslAuxprops и olcAuthzRegexp записи cn=config.

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 24 Июнь 2016, 11:21:54
Здравствуйте! Простите за задержку -- времени вообще нет, удалось немного посидеть за компьютером в аэропорту между рейсами =) . Но результат есть.

Вот мой минималистический конфигурационный файл slapd.conf:

include       /etc/ldap/schema/core.schema

moduleload    back_mdb.la

sasl-auxprops slapd

authz-regexp  "uid=([^,]+),cn=digest-md5,cn=auth" "uid=$1,ou=People,dc=mycompany,dc=ru"

database    mdb
directory   /data/openldap-experiments/2016-06-23_sasl
suffix      dc=mycompany,dc=ru
rootDN      cn=manager,dc=mycompany,dc=ru
rootPW      test

А вот каталог (файл init.ldif):

# Корневая запись
dn: dc=mycompany,dc=ru
objectClass: organization
objectClass: dcObject
dc: mycompany
o: My Company

# Ветка "Люди"
dn: ou=People,dc=mycompany,dc=ru
objectClass: organizationalUnit
ou: People

# Некто Иван
dn: uid=ivan,ou=People,dc=mycompany,dc=ru
objectClass: inetOrgPerson
uid: ivan
cn: Ivan Petrov
sn: Petrov
userPassword: ivanPassword

Запускаю slapd в интерактивном режиме:

slapd -f ./slapd.conf -h ldap://127.0.0.1:9000 -d 256
Из другого терминала добавляю каталог:

ldapadd -D 'cn=manager,dc=mycompany,dc=ru' -w test -H ldap://127.0.0.1:9000 -f ./init.ldif
Теперь можно подключиться к каталогу от имени пользователя ivan:

ldapsearch -LLL -H ldap://127.0.0.1:9000 -b 'dc=mycompany,dc=ru' -U ivan -w ivanPassword dn
SASL/DIGEST-MD5 authentication started
SASL username: ivan
SASL SSF: 128
SASL data security layer installed.
dn: dc=mycompany,dc=ru

dn: ou=People,dc=mycompany,dc=ru

dn: uid=ivan,ou=People,dc=mycompany,dc=ru

Вот и всё. Ключевым тут является отображение пользователей из аутентификационного псевдокаталога cn=digest-md5,cn=auth в рабочий каталог (см. директиву authz-regexp в конфигурационном файле), без этого отображения аутентификация работать не будет. Да, и пароли в атрибуте userPassword должны быть в открытом виде (обязательно защитите их с помощью ACL).

Остановить slapd в первом терминале можно нажав Ctrl+C.

Когда будете настраивать на настоящем каталоге,там будет динамическая конфигурация, так что, соответственно, нужно будет задать атрибуты olcSaslAuxprops и olcAuthzRegexp записи cn=config.

Егор
Огромнейшее спасибо за проделанную работу, да еще и в отпуске между перелетами! Сегодня же обязательно попробую настроить таким же путем и сообщу!) Хорошего отпуска!
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 27 Июнь 2016, 12:22:30
Огромное спасибо) Всё получилось, аутентификация через терминал проходит.
Но ошибка с LdapAdmin осталась та же самая, ругается. Для проверки сделал всё по шаблону, вбил ваши данные, но ldapadmin ругается, якобы неверно.
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 27 Июнь 2016, 14:20:15
А, ну и не отходя далеко.
Использую два правила:
olcAuthzRegexp: {1}"uid=([^,]+),cn=digest-md5,cn=auth" "uid=$1,ou=Users,dc=test"
olcAuthzRegexp: {2}"uid=([^,]+),cn=digest-md5,cn=auth" "ldap:///dc=us and comp,dc=test??one?(uid=$1)"
Первое правило работает.
Суть второго в том, что хочу авторизацию проходить через uid. Сам же пользователь представлен как cn=Markus.
Собственно второе правило выполняться не хочет.
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 28 Июнь 2016, 09:00:04
Здравствуйте!
Но ошибка с LdapAdmin осталась та же самая, ругается. Для проверки сделал всё по шаблону, вбил ваши данные, но ldapadmin ругается, якобы неверно.

В LdapAdmin нужно при настройке подключения выбрать пункт GSS-API вместо простой аутентификации.

Первое правило работает.
Суть второго в том, что хочу авторизацию проходить через uid. Сам же пользователь представлен как cn=Markus.
Собственно второе правило выполняться не хочет.

Во втором правиле указан поисковый URL где базовая запись dc=us and comp,dc=test и поисковый диапазон one,то есть, чтобы это работало DN пользователя должно быть cn=Markus,dc=us and comp,dc=test, кроме того, у этого пользователя должен быть атрибут uid, соответствующий вводимому Вами имени. Если это не так, то запись найдена не будет. В общем, Вам нужно сформировать URL с корректными параметрами поиска.

Для моего маленького каталога получился такой URL: ldap:///ou=People,dc=mycompany,dc=ru??one?(uid=$1)
или такой: ldap:///dc=mycompany,dc=ru??sub?(uid=$1)

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 28 Июнь 2016, 11:01:46
Здравствуйте!
Но ошибка с LdapAdmin осталась та же самая, ругается. Для проверки сделал всё по шаблону, вбил ваши данные, но ldapadmin ругается, якобы неверно.

В LdapAdmin нужно при настройке подключения выбрать пункт GSS-API вместо простой аутентификации.

Первое правило работает.
Суть второго в том, что хочу авторизацию проходить через uid. Сам же пользователь представлен как cn=Markus.
Собственно второе правило выполняться не хочет.

Во втором правиле указан поисковый URL где базовая запись dc=us and comp,dc=test и поисковый диапазон one,то есть, чтобы это работало DN пользователя должно быть cn=Markus,dc=us and comp,dc=test, кроме того, у этого пользователя должен быть атрибут uid, соответствующий вводимому Вами имени. Если это не так, то запись найдена не будет. В общем, Вам нужно сформировать URL с корректными параметрами поиска.

Для моего маленького каталога получился такой URL: ldap:///ou=People,dc=mycompany,dc=ru??one?(uid=$1)
или такой: ldap:///dc=mycompany,dc=ru??sub?(uid=$1)

Егор
Пункт выбран, делалось всё по примеру, указанному Вами выше)
(http://s45.radikal.ru/i110/1606/55/f28d0d0c668d.jpg) (http://radikal.ru/big/e4ad6abda05046ca96fe8224d99b2688)
Касаемо второго правила, да, указанно именно так. uid у Маркуса указан, но он считает, что подходящего пользователя нету в БД. Возможно директиву не надо было пронумеровывать?
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: SASL(-13): user not found: no secret in database
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 28 Июнь 2016, 13:25:32
К сожалению, с LdapAdmin сейчас проверить возможности нет.

А что касается Markus, покажите LDIF его записи (вместе с DN), я помогу с URL.

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 28 Июнь 2016, 13:52:19
Допустим самый стандартный ldif
dn: cn=Markus,dc=users and computers,dc=test
objectClass: inetOrgPerson
cn: Markus
sn: Markusik
uid: pd01
Выше указывал правила, правильно ли, что я их пронумеровываю:
olcAuthzRegexp: {1}"uid=([^,]+),cn=digest-md5,cn=auth" "uid=$1,ou=Users,dc=test"
olcAuthzRegexp: {2}"uid=([^,]+),cn=digest-md5,cn=auth" "ldap:///dc=users and computers,dc=test??one?(uid=$1)"
Если я правильно понимаю, то первое правило в данном случае не срабатывает и он переходит на второе или как?
Использую, например:
ldapsearch -LLL -b 'dc=tenders,dc=test' -U pd01
И получаю в ответ ошибку, указывал выше.
Спасибо!)
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 29 Июнь 2016, 07:27:09
Я верю, что вы от меня уже устали, но я снова тут.
При поиске с терминала линукса (машина, на которой поднят сервер):
ldapsearch -LLL -H ldap://127.0.0.1 -b 'dc=other,dc=test' -U ivan dn
SASL/DIGEST-MD5 authentication started
Please enter your password:
SASL username: ivan
SASL SSF: 128
SASL data security layer installed.
При поиске с терминала винды, другая машина:
C:\OpenLDAP\ClientTools>ldapsearch -LLL -H ldap://192.168.1.125:389 -Y DIGEST-MD5 -b 'dc=other,dc=test' -U ivan -w ivanPassword
ldap_connect_to_host: TCP 192.168.1.125:389
ldap_new_socket: 408
ldap_prepare_socket: 408
ldap_connect_to_host: Trying 192.168.1.125:389
ldap_pvt_connect: fd: 408 tm: -1 async: 0
attempting to connect:
connect success
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
        additional info: SASL(-4): no mechanism available: Unable to find a call
back: 2
ip машины указан правильно. В первом случае DIGEST-MD5 работает, но с серверной машины Linux, во втором случае используется клиентская машина Windows.
Правила, которые вы указывали выше, прописывал в etc/openldap/slapd.d/cn=config.ldif
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 29 Июнь 2016, 10:31:42
Здравствуйте!

Добавил пользователя markus:
dn: dc=users and computers,dc=mycompany,dc=ru
objectClass: organization
objectClass: dcObject
dc: users and computers
o: users and computers

dn: cn=Markus,dc=users and computers,dc=mycompany,dc=ru
objectClass: inetOrgPerson
cn: Markus
sn: Markusik
uid: pd01
userPassword: markusPassword

В slapd.conf поставил 2 правила:
authz-regexp   "uid=([^,]+),cn=digest-md5,cn=auth" "uid=$1,ou=People,dc=mycompany,dc=ru"
authz-regexp   "uid=([^,]+),cn=digest-md5,cn=auth" "ldap:///dc=mycompany,dc=ru??sub?(uid=$1)"
В итоге ivan проходит аутентификацию, pd01 -- нет. Тогда я закомментировал первое правило, и аутентификацию проходят оба пользователя. Вывод: срабатывает только первое правило, хотя в документации сказано не так. Поэтому в Вашем случае можно оставить правило с URL, в котором определён более общий поиск.

Что касается виндовой сборки, мне трудно судить, поддерживает ли она sasl-аутентификацию, проверить я пока не могу. В любом случае, все проверки сначала проводят на простой аутентификации (DN+пароль), а потом начинают настраивать что-то более сложное.

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 29 Июнь 2016, 10:50:49
Действительно, закомментировал первое правило и ура, аутентификацию с помощью uid проходят абсолютно все пользователи. Огромное спасибо.
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 30 Июнь 2016, 13:46:03
Собственно авторизация через ldapadmin так и страдает. С консоли с помощью команды ldapsearch работает. Вы же, если не ошибаюсь, тоже на ред хате тестировали?
Если не затруднит, подскажите где у вас находятся файлы и содержимое saslauthd, sasl2?
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 01 Июль 2016, 08:43:24
Я настраивал на Ubuntu, там можно создать файл /etc/ldap/sasl2/slapd.conf с настройками saslauthd для slapd. Но только в моих экспериментах настройки не пригодились, поскольку slapd использует свои внутренние механизмы sasl. В redhat точно сказать не могу.
Когда я проверял вместе с LdapAdmin, сервер я настраивал на gentoo, там я создавал файл для saslauthd /etc/sasl2/slapd.conf, LdapAdmin работал на Windows 7.

Егор

Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 07 Июль 2016, 08:30:06
Доброе утро, как Ваш отпуск?)
Собственно, попытки тщетны, но добиться нужно. Интернет говорит всякие глупости.
И так:
Linux Red Hat
Благодаря Вашим советам "настроил" SASL/DIGEST-MD5, в итоге добился того, что через терминал, используя команды ldapsearch и ldapwhoami аутентификация якобы проходит, отлично можно выполнять поиск.
ldap в данном случае выступает в качестве сервера, соответственно подключение к нему буду осуществлять через LdapAdmin с любого пк, но вот тут уже загвоздка, ошибку указывал выше. Все темы в интернете, касаемо этой ошибки применимы к  postfix (как я понял, применяется для приема/отправки почты, меня он мало интересует). Если вчитываться в суть ошибки, то говорится, что изменилась сфера/реалм.
На что я сетую:
1. Неправильная настройка авторизации, т.е. в данном случае авторизация происходит используя saslauthd.
Хорошо, создал файл /etc/default/saslauthd с содержимым (копипаст с blog.toxa, если не ошибаюсь):
#

# Settings for saslauthd daemon

# Please read /usr/share/doc/sasl2-bin/README.Debian for details.

#



# Should saslauthd run automatically on startup? (default: no)

START=yes



# Description of this saslauthd instance. Recommended.

# (suggestion: SASL Authentication Daemon)

DESC="SASL Authentication Daemon"



# Short name of this saslauthd instance. Strongly recommended.

# (suggestion: saslauthd)

NAME="saslauthd"



# Which authentication mechanisms should saslauthd use? (default: pam)

#

# Available options in this Debian package:

# getpwent  -- use the getpwent() library function

# kerberos5 -- use Kerberos 5

# pam       -- use PAM

# rimap     -- use a remote IMAP server

# shadow    -- use the local shadow password file

# sasldb    -- use the local sasldb database file

# ldap      -- use LDAP (configuration is in /etc/saslauthd.conf)

#

# Only one option may be used at a time. See the saslauthd man page

# for more information.

#

# Example: MECHANISMS="pam"

MECHANISMS="ldap"



# Additional options for this mechanism. (default: none)

# See the saslauthd man page for information about mech-specific options.

MECH_OPTIONS=""



# How many saslauthd processes should we run? (default: 5)

# A value of 0 will fork a new process for each connection.

THREADS=5



# Other options (default: -c -m /var/run/saslauthd)

# Note: You MUST specify the -m option or saslauthd won't run!

#

# WARNING: DO NOT SPECIFY THE -d OPTION.

# The -d option will cause saslauthd to run in the foreground instead of as

# a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish

# to run saslauthd in debug mode, please run it by hand to be safe.

#

# See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.

# See the saslauthd man page and the output of 'saslauthd -h' for general

# information about these options.

#

# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"

OPTIONS="-c -m /var/run/saslauthd"
Так же, а почему бы не создать в директории файл /etc/openldap/sasl2/slapd.conf с содержимым:
mech_list: EXTERNAL DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
pwcheck_method: saslauthd
saslauthd_path: /var/run/saslauthd/mux
Вроде всё, интернет ничего толком не дает, вся информация будто скопирована с одного источника.
2. Беда с LdapAdmin, но тут я подумал, у Вас же получилось, так что это вполне реализуемо.
Добить его надо, поскольку с ним еще работать долго и долго.
А, кстати, чуть не забыл, часть лога после попытки авторизация через LdapAdmin:
Jul  7 09:28:00 localhost slapd[24176]: slap_listener_activate(7):
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 busy
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: >>> slap_listener(ldap:///)
Jul  7 09:28:00 localhost slapd[24176]: daemon: listen=7, new connection on 20
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on:
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: added 20r (active) listener=(nil)
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 fd=20 ACCEPT from IP=10.0.1.116:50547 (IP=0.0.0.0:389)
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on 2 descriptors
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on:
Jul  7 09:28:00 localhost slapd[24176]:  20r
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: daemon: read active on 20
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: connection_get(20)
Jul  7 09:28:00 localhost slapd[24176]: connection_get(20): got connid=1542
Jul  7 09:28:00 localhost slapd[24176]: connection_read(20): checking for input on id=1542
Jul  7 09:28:00 localhost slapd[24176]: op tag 0x63, time 1467869280
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=0 do_search
Jul  7 09:28:00 localhost slapd[24176]: >>> dnPrettyNormal: <>
Jul  7 09:28:00 localhost slapd[24176]: <<< dnPrettyNormal: <>, <>
Jul  7 09:28:00 localhost slapd[24176]: SRCH "" 0 0
Jul  7 09:28:00 localhost slapd[24176]:     0 120 0
Jul  7 09:28:00 localhost slapd[24176]: begin get_filter
Jul  7 09:28:00 localhost slapd[24176]: PRESENT
Jul  7 09:28:00 localhost slapd[24176]: end get_filter 0
Jul  7 09:28:00 localhost slapd[24176]:     filter: (objectClass=*)
Jul  7 09:28:00 localhost slapd[24176]:     attrs:
Jul  7 09:28:00 localhost slapd[24176]:  supportedCapabilities
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=0 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=0 SRCH attr=supportedCapabilities
Jul  7 09:28:00 localhost slapd[24176]: => test_filter
Jul  7 09:28:00 localhost slapd[24176]:     PRESENT
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: search access to "" "objectClass" requested
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on:
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: => slap_access_allowed: backend default search access granted to "(anonymous)"
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: search access granted by read(=rscxd)
Jul  7 09:28:00 localhost slapd[24176]: <= test_filter 6
Jul  7 09:28:00 localhost slapd[24176]: => send_search_entry: conn 1542 dn=""
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: read access to "" "entry" requested
Jul  7 09:28:00 localhost slapd[24176]: => slap_access_allowed: backend default read access granted to "(anonymous)"
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: read access granted by read(=rscxd)
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=0 ENTRY dn=""
Jul  7 09:28:00 localhost slapd[24176]: <= send_search_entry: conn 1542 exit.
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_result: conn=1542 op=0 p=3
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_result: err=0 matched="" text=""
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_response: msgid=86 tag=101 err=0
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=0 SEARCH RESULT tag=101 err=0 nentries=1 text=
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on:
Jul  7 09:28:00 localhost slapd[24176]:  20r
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: daemon: read active on 20
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: connection_get(20)
Jul  7 09:28:00 localhost slapd[24176]: connection_get(20): got connid=1542
Jul  7 09:28:00 localhost slapd[24176]: connection_read(20): checking for input on id=1542
Jul  7 09:28:00 localhost slapd[24176]: op tag 0x63, time 1467869280
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=1 do_search
Jul  7 09:28:00 localhost slapd[24176]: >>> dnPrettyNormal: <>
Jul  7 09:28:00 localhost slapd[24176]: <<< dnPrettyNormal: <>, <>
Jul  7 09:28:00 localhost slapd[24176]: SRCH "" 0 0
Jul  7 09:28:00 localhost slapd[24176]:     0 120 0
Jul  7 09:28:00 localhost slapd[24176]: begin get_filter
Jul  7 09:28:00 localhost slapd[24176]: PRESENT
Jul  7 09:28:00 localhost slapd[24176]: end get_filter 0
Jul  7 09:28:00 localhost slapd[24176]:     filter: (objectClass=*)
Jul  7 09:28:00 localhost slapd[24176]:     attrs:
Jul  7 09:28:00 localhost slapd[24176]:  supportedSASLMechanisms
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=1 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=1 SRCH attr=supportedSASLMechanisms
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:28:00 localhost slapd[24176]: => test_filter
Jul  7 09:28:00 localhost slapd[24176]:     PRESENT
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: search access to "" "objectClass" requested
Jul  7 09:28:00 localhost slapd[24176]: => slap_access_allowed: backend default search access granted to "(anonymous)"
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: search access granted by read(=rscxd)
Jul  7 09:28:00 localhost slapd[24176]: <= test_filter 6
Jul  7 09:28:00 localhost slapd[24176]: => send_search_entry: conn 1542 dn=""
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: read access to "" "entry" requested
Jul  7 09:28:00 localhost slapd[24176]: => slap_access_allowed: backend default read access granted to "(anonymous)"
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: read access granted by read(=rscxd)
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on:
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: result not in cache (supportedSASLMechanisms)
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: read access to "" "supportedSASLMechanisms" requested
Jul  7 09:28:00 localhost slapd[24176]: => slap_access_allowed: backend default read access granted to "(anonymous)"
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: read access granted by read(=rscxd)
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: result was in cache (supportedSASLMechanisms)
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: result was in cache (supportedSASLMechanisms)
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=1 ENTRY dn=""
Jul  7 09:28:00 localhost slapd[24176]: <= send_search_entry: conn 1542 exit.
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_result: conn=1542 op=1 p=3
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_result: err=0 matched="" text=""
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_response: msgid=87 tag=101 err=0
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on:
Jul  7 09:28:00 localhost slapd[24176]:  20r
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: daemon: read active on 20
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: connection_get(20)
Jul  7 09:28:00 localhost slapd[24176]: connection_get(20): got connid=1542
Jul  7 09:28:00 localhost slapd[24176]: connection_read(20): checking for input on id=1542
Jul  7 09:28:00 localhost slapd[24176]: op tag 0x63, time 1467869280
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=2 do_search
Jul  7 09:28:00 localhost slapd[24176]: >>> dnPrettyNormal: <>
Jul  7 09:28:00 localhost slapd[24176]: <<< dnPrettyNormal: <>, <>
Jul  7 09:28:00 localhost slapd[24176]: SRCH "" 0 0
Jul  7 09:28:00 localhost slapd[24176]:     0 120 0
Jul  7 09:28:00 localhost slapd[24176]: begin get_filter
Jul  7 09:28:00 localhost slapd[24176]: PRESENT
Jul  7 09:28:00 localhost slapd[24176]: end get_filter 0
Jul  7 09:28:00 localhost slapd[24176]:     filter: (objectClass=*)
Jul  7 09:28:00 localhost slapd[24176]:     attrs:
Jul  7 09:28:00 localhost slapd[24176]:  supportedCapabilities
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=2 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=2 SRCH attr=supportedCapabilities
Jul  7 09:28:00 localhost slapd[24176]: => test_filter
Jul  7 09:28:00 localhost slapd[24176]:     PRESENT
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: search access to "" "objectClass" requested
Jul  7 09:28:00 localhost slapd[24176]: => slap_access_allowed: backend default search access granted to "(anonymous)"
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: search access granted by read(=rscxd)
Jul  7 09:28:00 localhost slapd[24176]: <= test_filter 6
Jul  7 09:28:00 localhost slapd[24176]: => send_search_entry: conn 1542 dn=""
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: read access to "" "entry" requested
Jul  7 09:28:00 localhost slapd[24176]: => slap_access_allowed: backend default read access granted to "(anonymous)"
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: read access granted by read(=rscxd)
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=2 ENTRY dn=""
Jul  7 09:28:00 localhost slapd[24176]: <= send_search_entry: conn 1542 exit.
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_result: conn=1542 op=2 p=3
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_result: err=0 matched="" text=""
Jul  7 09:28:00 localhost slapd[24176]: send_ldap_response: msgid=88 tag=101 err=0
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on:
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:28:00 localhost slapd[24176]: daemon: activity on:
Jul  7 09:28:00 localhost slapd[24176]:  20r
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: daemon: read active on 20
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:28:00 localhost slapd[24176]: connection_get(20)
Jul  7 09:28:00 localhost slapd[24176]: connection_get(20): got connid=1542
Jul  7 09:28:00 localhost slapd[24176]: connection_read(20): checking for input on id=1542
Jul  7 09:28:00 localhost slapd[24176]: op tag 0x63, time 1467869280
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=3 do_search
Jul  7 09:28:00 localhost slapd[24176]: >>> dnPrettyNormal: <>
Jul  7 09:28:00 localhost slapd[24176]: <<< dnPrettyNormal: <>, <>
Jul  7 09:28:00 localhost slapd[24176]: SRCH "" 0 0
Jul  7 09:28:00 localhost slapd[24176]:     0 120 0
Jul  7 09:28:00 localhost slapd[24176]: begin get_filter
Jul  7 09:28:00 localhost slapd[24176]: PRESENT
Jul  7 09:28:00 localhost slapd[24176]: end get_filter 0
Jul  7 09:28:00 localhost slapd[24176]:     filter: (objectClass=*)
Jul  7 09:28:00 localhost slapd[24176]:     attrs:
Jul  7 09:28:00 localhost slapd[24176]:  supportedSASLMechanisms
Jul  7 09:28:00 localhost slapd[24176]:
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=3 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
Jul  7 09:28:00 localhost slapd[24176]: conn=1542 op=3 SRCH attr=supportedSASLMechanisms
Jul  7 09:28:00 localhost slapd[24176]: => test_filter
Jul  7 09:28:00 localhost slapd[24176]:     PRESENT
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: search access to "" "objectClass" requested
Jul  7 09:28:00 localhost slapd[24176]: => slap_access_allowed: backend default search access granted to "(anonymous)"
Jul  7 09:28:00 localhost slapd[24176]: => access_allowed: search access granted by read(=rscxd)
Jul  7 09:28:00 localhost slapd[24176]: <= test_filter 6
Jul  7 09:28:00 localhost slapd[24176]: => send_search_entry: conn 1542 dn=""

Если Вам не составит труда можете показать содержимое вашего файла настроек, мне интересно сравнить, что не так.
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 07 Июль 2016, 08:45:18
Не влезло в предыдущий пост.
Так же логи, если использовать ldapsearch через терминал, видно, что он использует механизм DIGEST-MD5:
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:39 localhost slapd[24176]:
Jul  7 09:36:39 localhost slapd[24176]: slap_listener_activate(8):
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=8 busy
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: >>> slap_listener(ldap:///)
Jul  7 09:36:39 localhost slapd[24176]: daemon: listen=8, new connection on 20
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:39 localhost slapd[24176]:
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: added 20r (active) listener=(nil)
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 fd=20 ACCEPT from IP=[::1]:41605 (IP=[::]:389)
Jul  7 09:36:39 localhost slapd[24176]:  20r
Jul  7 09:36:39 localhost slapd[24176]:
Jul  7 09:36:39 localhost slapd[24176]: daemon: read active on 20
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: connection_get(20)
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:39 localhost slapd[24176]: connection_get(20): got connid=1553
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:39 localhost slapd[24176]: connection_read(20): checking for input on id=1553
Jul  7 09:36:39 localhost slapd[24176]:
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: op tag 0x63, time 1467869799
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 op=0 do_search
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:39 localhost slapd[24176]: >>> dnPrettyNormal: <>
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:39 localhost slapd[24176]: <<< dnPrettyNormal: <>, <>
Jul  7 09:36:39 localhost slapd[24176]:
Jul  7 09:36:39 localhost slapd[24176]: SRCH "" 0 0
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]:     0 0 0
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: begin get_filter
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: PRESENT
Jul  7 09:36:39 localhost slapd[24176]: end get_filter 0
Jul  7 09:36:39 localhost slapd[24176]:     filter: (objectClass=*)
Jul  7 09:36:39 localhost slapd[24176]:     attrs:
Jul  7 09:36:39 localhost slapd[24176]:  supportedSASLMechanisms
Jul  7 09:36:39 localhost slapd[24176]:
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 op=0 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 op=0 SRCH attr=supportedSASLMechanisms
Jul  7 09:36:39 localhost slapd[24176]: => test_filter
Jul  7 09:36:39 localhost slapd[24176]:     PRESENT
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: search access to "" "objectClass" requested
Jul  7 09:36:39 localhost slapd[24176]: => slap_access_allowed: backend default search access granted to "(anonymous)"
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: search access granted by read(=rscxd)
Jul  7 09:36:39 localhost slapd[24176]: <= test_filter 6
Jul  7 09:36:39 localhost slapd[24176]: => send_search_entry: conn 1553 dn=""
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: read access to "" "entry" requested
Jul  7 09:36:39 localhost slapd[24176]: => slap_access_allowed: backend default read access granted to "(anonymous)"
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: read access granted by read(=rscxd)
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: result not in cache (supportedSASLMechanisms)
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: read access to "" "supportedSASLMechanisms" requested
Jul  7 09:36:39 localhost slapd[24176]: => slap_access_allowed: backend default read access granted to "(anonymous)"
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: read access granted by read(=rscxd)
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: result was in cache (supportedSASLMechanisms)
Jul  7 09:36:39 localhost slapd[24176]: => access_allowed: result was in cache (supportedSASLMechanisms)
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 op=0 ENTRY dn=""
Jul  7 09:36:39 localhost slapd[24176]: <= send_search_entry: conn 1553 exit.
Jul  7 09:36:39 localhost slapd[24176]: send_ldap_result: conn=1553 op=0 p=3
Jul  7 09:36:39 localhost slapd[24176]: send_ldap_result: err=0 matched="" text=""
Jul  7 09:36:39 localhost slapd[24176]: send_ldap_response: msgid=1 tag=101 err=0
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 op=0 SEARCH RESULT tag=101 err=0 nentries=1 text=
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:39 localhost slapd[24176]:  20r
Jul  7 09:36:39 localhost slapd[24176]:
Jul  7 09:36:39 localhost slapd[24176]: daemon: read active on 20
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: connection_get(20)
Jul  7 09:36:39 localhost slapd[24176]: connection_get(20): got connid=1553
Jul  7 09:36:39 localhost slapd[24176]: connection_read(20): checking for input on id=1553
Jul  7 09:36:39 localhost slapd[24176]: op tag 0x60, time 1467869799
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 op=1 do_bind
Jul  7 09:36:39 localhost slapd[24176]: >>> dnPrettyNormal: <>
Jul  7 09:36:39 localhost slapd[24176]: <<< dnPrettyNormal: <>, <>
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 op=1 BIND dn="" method=163
Jul  7 09:36:39 localhost slapd[24176]: do_bind: dn () SASL mech DIGEST-MD5
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:39 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:39 localhost slapd[24176]: ==> sasl_bind: dn="" mech=DIGEST-MD5 datalen=0
Jul  7 09:36:39 localhost slapd[24176]: SASL [conn=1553] Debug: DIGEST-MD5 server step 1
Jul  7 09:36:39 localhost slapd[24176]: send_ldap_sasl: err=14 len=182
Jul  7 09:36:39 localhost slapd[24176]: send_ldap_response: msgid=2 tag=97 err=14
Jul  7 09:36:39 localhost slapd[24176]: conn=1553 op=1 RESULT tag=97 err=14 text=SASL(0): successful result: security flags do not match required
Jul  7 09:36:39 localhost slapd[24176]: <== slap_sasl_bind: rc=14
Jul  7 09:36:39 localhost slapd[24176]:
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:36:39 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:42 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:42 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:42 localhost slapd[24176]:  20r
Jul  7 09:36:42 localhost slapd[24176]:
Jul  7 09:36:42 localhost slapd[24176]: daemon: read active on 20
Jul  7 09:36:42 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:42 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:36:42 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:42 localhost slapd[24176]: connection_get(20)
Jul  7 09:36:42 localhost slapd[24176]: connection_get(20): got connid=1553
Jul  7 09:36:42 localhost slapd[24176]: connection_read(20): checking for input on id=1553
Jul  7 09:36:42 localhost slapd[24176]: op tag 0x60, time 1467869802
Jul  7 09:36:42 localhost slapd[24176]: conn=1553 op=2 do_bind
Jul  7 09:36:42 localhost slapd[24176]: daemon: activity on 1 descriptor
Jul  7 09:36:42 localhost slapd[24176]: daemon: activity on:
Jul  7 09:36:42 localhost slapd[24176]:
Jul  7 09:36:42 localhost slapd[24176]: >>> dnPrettyNormal: <>
Jul  7 09:36:42 localhost slapd[24176]: <<< dnPrettyNormal: <>, <>
Jul  7 09:36:42 localhost slapd[24176]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Jul  7 09:36:42 localhost slapd[24176]: conn=1553 op=2 BIND dn="" method=163
Jul  7 09:36:42 localhost slapd[24176]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Jul  7 09:36:42 localhost slapd[24176]: do_bind: dn () SASL mech DIGEST-MD5
Jul  7 09:36:42 localhost slapd[24176]: daemon: epoll: listen=9 active_threads=0 tvp=zero
Jul  7 09:36:42 localhost slapd[24176]: ==> sasl_bind: dn="" mech=<continuing> datalen=263
Jul  7 09:36:42 localhost slapd[24176]: SASL [conn=1553] Debug: DIGEST-MD5 server step 2
Jul  7 09:36:42 localhost slapd[24176]: SASL Canonicalize [conn=1553]: authcid="ivan"
Jul  7 09:36:42 localhost slapd[24176]: slap_sasl_getdn: conn 1553 id=ivan [len=4]
Jul  7 09:36:42 localhost slapd[24176]: slap_sasl_getdn: u:id converted to uid=ivan,cn=DIGEST-MD5,cn=auth
Jul  7 09:36:42 localhost slapd[24176]: >>> dnNormalize: <uid=ivan,cn=DIGEST-MD5,cn=auth>
Jul  7 09:36:42 localhost slapd[24176]: <<< dnNormalize: <uid=ivan,cn=digest-md5,cn=auth>
Jul  7 09:36:42 localhost slapd[24176]: ==>slap_sasl2dn: converting SASL name uid=ivan,cn=digest-md5,cn=auth to a DN
Jul  7 09:36:42 localhost slapd[24176]: ==> rewrite_context_apply [depth=1] string='uid=ivan,cn=digest-md5,cn=auth'
Jul  7 09:36:42 localhost slapd[24176]: ==> rewrite_rule_apply rule='uid=([^,]+),cn=digest-md5,cn=auth' string='uid=ivan,cn=digest-md5,cn=auth' [1 pass(es)]
Jul  7 09:36:42 localhost slapd[24176]: ==> rewrite_context_apply [depth=1] res={0,'ldap:///dc=test??sub?(uid=ivan)'}
Jul  7 09:36:42 localhost slapd[24176]: [rw] authid: "uid=ivan,cn=digest-md5,cn=auth" -> "ldap:///dc=test??sub?(uid=ivan)"
Jul  7 09:36:42 localhost slapd[24176]: slap_parseURI: parsing ldap:///dc=test??sub?(uid=ivan)
Jul  7 09:36:42 localhost slapd[24176]: str2filter "(uid=ivan)"
Jul  7 09:36:42 localhost slapd[24176]: begin get_filter
Jul  7 09:36:42 localhost slapd[24176]: EQUALITY
Jul  7 09:36:42 localhost slapd[24176]: end get_filter 0
Jul  7 09:36:42 localhost slapd[24176]: >>> dnNormalize: <dc=test>
Jul  7 09:36:42 localhost slapd[24176]: <<< dnNormalize: <dc=test>
Jul  7 09:36:42 localhost slapd[24176]: slap_sasl2dn: performing internal search (base=dc=test, scope=2)
Jul  7 09:36:42 localhost slapd[24176]: => bdb_search
Jul  7 09:36:42 localhost slapd[24176]: bdb_dn2entry("dc=test")
Jul  7 09:36:42 localhost slapd[24176]: => access_allowed: auth access to "dc=test" "entry" requested
Jul  7 09:36:42 localhost slapd[24176]: => dn: [1] dc=test
Jul  7 09:36:42 localhost slapd[24176]: => acl_get: [1] matched
Jul  7 09:36:42 localhost slapd[24176]: => acl_get: [1] attr entry
Jul  7 09:36:42 localhost slapd[24176]: => acl_mask: access to entry "dc=test", attr "entry" requested
Jul  7 09:36:42 localhost slapd[24176]: => acl_mask: to all values by "", (=0)
Jul  7 09:36:42 localhost slapd[24176]: <= check a_dn_pat: anonymous
Jul  7 09:36:42 localhost slapd[24176]: <= acl_mask: [1] applying read(=rscxd) (stop)
Jul  7 09:36:42 localhost slapd[24176]: <= acl_mask: [1] mask: read(=rscxd)
Jul  7 09:36:42 localhost slapd[24176]: => slap_access_allowed: auth access granted by read(=rscxd)
Jul  7 09:36:42 localhost slapd[24176]: => access_allowed: auth access granted by read(=rscxd)
Jul  7 09:36:42 localhost slapd[24176]: search_candidates: base="dc=test" (0x00000001) scope=2
Jul  7 09:36:42 localhost slapd[24176]: => bdb_dn2idl("dc=test")
Jul  7 09:36:42 localhost slapd[24176]: => bdb_filter_candidates
Jul  7 09:36:42 localhost slapd[24176]: #011AND
Jul  7 09:36:42 localhost slapd[24176]: => bdb_list_candidates 0xa0
Jul  7 09:36:42 localhost slapd[24176]: => bdb_filter_candidates
Jul  7 09:36:42 localhost slapd[24176]: #011OR
Jul  7 09:36:42 localhost slapd[24176]: => bdb_list_candidates 0xa1
Jul  7 09:36:42 localhost slapd[24176]: => bdb_filter_candidates
Jul  7 09:36:42 localhost slapd[24176]: #011EQUALITY
Jul  7 09:36:42 localhost slapd[24176]: => bdb_equality_candidates (objectClass)
Jul  7 09:36:42 localhost slapd[24176]: => key_read
Jul  7 09:36:42 localhost slapd[24176]: bdb_idl_fetch_key: [b49d1940]
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_index_read: failed (-30988)
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_equality_candidates: id=0, first=0, last=0
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_filter_candidates: id=0 first=0 last=0
Jul  7 09:36:42 localhost slapd[24176]: => bdb_filter_candidates
Jul  7 09:36:42 localhost slapd[24176]: #011EQUALITY
Jul  7 09:36:42 localhost slapd[24176]: => bdb_equality_candidates (uid)
Jul  7 09:36:42 localhost slapd[24176]: => key_read
Jul  7 09:36:42 localhost slapd[24176]: bdb_idl_fetch_key: [451b3b20]
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_index_read 1 candidates
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_equality_candidates: id=1, first=92, last=92
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_filter_candidates: id=1 first=92 last=92
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_list_candidates: id=1 first=92 last=92
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_filter_candidates: id=1 first=92 last=92
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_list_candidates: id=1 first=92 last=92
Jul  7 09:36:42 localhost slapd[24176]: <= bdb_filter_candidates: id=1 first=92 last=92
Jul  7 09:36:42 localhost slapd[24176]: bdb_search_candidates: id=1 first=92 last=92
Jul  7 09:36:42 localhost slapd[24176]: => test_filter
Jul  7 09:36:42 localhost slapd[24176]:     EQUALITY
Jul  7 09:36:42 localhost slapd[24176]: => access_allowed: auth access to "uid=ivan,ou=Users,dc=test" "uid" requested
Jul  7 09:36:42 localhost slapd[24176]: => dn: [1] dc=test
Jul  7 09:36:42 localhost slapd[24176]: => acl_get: [1] matched
Jul  7 09:36:42 localhost slapd[24176]: => acl_get: [1] attr uid
Jul  7 09:36:42 localhost slapd[24176]: => acl_mask: access to entry "uid=ivan,ou=Users,dc=test", attr "uid" requested
Jul  7 09:36:42 localhost slapd[24176]: => acl_mask: to value by "", (=0)
Jul  7 09:36:42 localhost slapd[24176]: <= check a_dn_pat: anonymous
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 08 Июль 2016, 23:06:20
Здравствуйте! Мой файл /etc/ldap/sasl2/slapd.conf такой:
mech_list: DIGEST-MD5
pwcheck_method: saslauthd
saslauthd_path: /var/run/saslauthd/mux

Как видите, от стандартного отличается лишь убранными дополнительными механизмами sasl-аутентификации. НО!!! И без него всё прекрасно работало и работает, вот в чём штука. В этом файле настраивается демон saslauthd, с которым slapd НЕ ВЗАИМОДЕЙСТВУЕТ. Так что капать нужно в другую сторону. Есть подозрение,  что какая-то проблемы с REALM (у меня windows-компьютер в домене не был), но поэкспериментировать я пока не успел. Те логи, что Вы приводите при взаимодействии с LdapAdmin, ничего не показывают: нет даже сведений о поддерживаемых sasl-механизмах, а во втором логе, напротив, всё очевидно.

Попробую поставить эксперимент с REALM, отпишусь, что получится.

Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 10 Июль 2016, 17:37:55
Здравствуйте еще раз!

Попробовал изменить REALM поискового запроса (ldapsearch с параметром -R mycompany.ru), но ничего не поменялось, видно в DIGEST-MD5 механизме он не используется. Тем не менее, можно попробовать изменить параметр authz-regexp:
authz-regexp    "uid=([^,]+),cn=.*" "ldap:///dc=mycompany,dc=ru??sub?(uid=$1)"

Так тоже работает, но без привязки  (возможной) к REALM. Пока ничего другого в голову не приходит.
Егор
Название: Re: Авторизация с помощью entryUUID
Отправлено: elms от 11 Июль 2016, 12:00:09
Спасибо. Тоже интересно в чём проблема. Попробовал с другого ldap браузера, пускает под uid@localhost, ибо localhost - наименование домена, он же и realm. В LdapAdmin всё так и осталось.
Название: Re: Авторизация с помощью entryUUID
Отправлено: egor от 25 Июль 2016, 01:21:31
Здравствуйте! Наконец-то добрался до сети Windows-Linux. И что Вы думаете? LdapAdmin заработал с моим тестовым каталогом с первой попытки (см. вложение).

Windows 7 без домена, LdapAdmin 1.6.1.0

Linux gentoo, slapd-2.4.38.