Цель: пройдите проверку подлинности к CentOS7 с помощью LDAP
Проблемы
1) Пользователь не может быть найден
calling ldap_search_ext with
[(&(uid=bla)(objectclass=posixAccount)(uid=*)(&(uidNumber=*)(!(uidNumber=0))))][dc=my-domain,dc=com]
2) posixAccount objectClass, не найденный
Вопросы
posixAccount
?sssd
разрешение этого программного обеспечения найти пользователя в OpenLDAP и позволить аутентификацию CentOS7?Всесторонний
1) sssd
установленный
2) аутентификация LDAP с помощью sssd настроенный на CentOS7
[root@controller ~]# authconfig --enablesssd --enablesssdauth --enablelocauthorize --update
3) включенная отладка sssd
/etc/sssd/sssd.conf
[domain/default]
autofs_provider = ldap
cache_credentials = True
krb5_realm = #
ldap_search_base = dc=my-domain,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://<ipaddress>/
ldap_tls_cacertdir = /etc/openldap/cacerts
debug_level = 9
4) Тестовый вход в систему с помощью LDAP
[root@controller ~]# id Manager
id: Manager: no such user
5) Отладка
/var/log/sssd/sssd_default.log
(Thu Jul 2 22:31:46 2015) [sssd[be[default]]] [sdap_search_user_next_base] (0x04
00): Searching for users with base [dc=my-domain,dc=com]
(Thu Jul 2 22:31:46 2015) [sssd[be[default]]] [sdap_print_server] (0x2000): Sear
ching <ipaddress>
(Thu Jul 2 22:31:46 2015) [sssd[be[default]]] [sdap_get_generic_ext_step] (0x040
0): calling ldap_search_ext with [(&(uid=bla)(objectclass=posixAccount)(uid=*)(&(
uidNumber=*)(!(uidNumber=0))))][dc=my-domain,dc=com].
(Thu Jul 2 22:31:46 2015) [sssd[be[default]]] [sdap_get_generic_ext_step] (0x100
0): Requesting attrs: [objectClass]
6) Не мог добавить a posixAccount
objectClass
На самом деле вы не сказали, что такое ваш LDAP сервер и как выглядит пользователь в вашей LDAP директории, но я постараюсь ответить как можно лучше.
На данный момент SSSD обслуживает только POSIX-аккаунты. Это означает, что объект пользователя на стороне сервера либо должен иметь имя и числовые идентификаторы, либо числовые идентификаторы должны быть выведены из Windows SID.
На самом деле, реальный объект Класс не имеет значения. Все, что вам нужно, это настроить sssd.conf с помощью objectClass, используемого вашим сервером, и атрибута, содержащего ID. Смотрите man sssd-ldap
для более подробной информации, но два варианта конфигурирования, которые могут вас заинтересовать - это ldap_user_uid_number
и ldap_user_object_class
.
Если сервер является MSAD, то в идеале следует использовать id_provider=ad
, который алгоритмически сопоставляет SID-ы с ID-ами.