Каждое руководство по использованию SSSD для аутентификации LDAP, которое я нашел до сих пор, показывает вам, как сделать больше, чем просто аутентифицировать пользователя, например предоставить его оболочку, группы и т. Д. Я не знаю, как удалить эти функции, не нарушая работу, потому что есть несколько движущихся частей, таких как SSSD, PAM и NSS.
Из-за ограничений на то, какая информация предоставляется через LDAP (это не AD), может выполняться только аутентификация пользователей. Нет даже доступного uid, потому что единственный идентификатор, предоставляемый через LDAP, представляет собой последовательно отформатированные буквенно-цифровые строки (не будет работать в Linux). В принципе, как можно настроить SSSD в Ubuntu для обработки ldap как «теневой» базы данных, но получить uid, группы и оболочку из ваших локальных системных баз данных (passwd, group).
В настоящее время это делается с помощью libpam-ldap, но, насколько я понимаю, есть лучшие альтернативы, такие как libpam-ldapd и sssd, на последний из которых перешел RHEL. Если бы мне пришлось угадывать, это можно сделать аналогично тому, как мы это делаем сейчас, то есть nss сначала проверит локальные базы данных, а если у пользователя нет записи теневого файла, проверьте ldap.
Подводя итог, могу ли я использовать SSSD или, в качестве резервного, libpam-ldapd, для аутентификации следующим образом:
uid -> / etc / passwd
аутентифицировать -> ldap
оболочка -> / etc / passwd
группы -> / etc / group
Еще лучше, если можно запретить пользователям создавать пароли локально, которые в конечном итоге попадут в / etc / shadow, что заставит его вообще проверять ldap при будущих попытках входа в систему. Кроме того, это не повлияет на все локальные и служебные учетные записи, а пользователи, прошедшие проверку подлинности ldap, могут быть определены с помощью простого регулярного выражения. Я буду очень благодарен за любые хорошие предложения, как с этим справиться. Спасибо!
Подход с использованием id_provider = proxy и auth_provider = ldap абсолютно правильный. Вы попадаете в ошибку https://fedorahosted.org/sssd/ticket/2620 это мы исправили только в версии 1.13. Это было действительно простое исправление, попросите Ubuntu выбрать его из апстрима.
Файл nsswitch.conf, который управляет контактом с источником данных для каждого поиска. Вам нужно что-то вроде:
passwd: compat
group: compat
shadow: compat sss
passwd означает поиск пользователей, группа означает поиск групп, тень означает информацию для аутентификации.
Просто настройте sssd как обычно, но для поиска пользователей он не будет использоваться.
Порядок источников аутентификации в pam
файлы (следующий - common-auth):
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_sss.so use_first_pass
# here's the fallback if no module succeeds
auth requisite pam_deny.so
[...]
поэтому вы должны убедиться, что локальный файл / etc / shadow не содержит действительных паролей для пользователей, которые должны пройти аутентификацию на LDAP.