Я пытаюсь понять, как структурировать мой ldap и/или настроить sssd для чтения членства во вложенных группах.
Для обычного членства в группе работает что-то вроде этого:
DN: cn=server-admins,ou=Groups,dc=example,dc=com
groupOfNames (structural)
posixGroup (auxiliary)
memberUid userName1
memberUid userName2
и sssd.conf делает что-то вроде:
[sssd]
config_file_version = 2
domains = default
services = nss, pam
full_name_format = %1$s
[domain/default]
debug_level = 2
id_provider = ldap
auth_provider = ldap
cache_credentials = True
ldap_uri = ldaps://ldapserver:636
ldap_search_base = dc=example,dc=com
# start searching here
ldap_user_search_base = ou=People,dc=example,dc=com
# search these people
ldap_group_search_base = ou=Groups,dc=example,dc=com
ldap_group_nesting_level = 10
simple_allow_groups = server-admins
если я id userName1
получу server-admins
членство и смогу войти в систему под этим пользователем.
Однако я хотел бы сделать что-то вроде этого:
DN: cn=server-admins,ou=Groups,dc=example,dc=com
groupOfNames (structural)
posixGroup (auxiliary)
member cn=jobTitleGroup1,ou=Roles,dc=example,dc=com
Тогда членство должно jobTitleGroup1
содержать людей:
DN: cn=jobTitleGroup1,ou=Roles,dc=example,dc=com
groupOfNames (structural)
posixGroup (auxiliary)
memberUid userName1
memberUid userName2
Проблема в том, что sssd, похоже, распознает только атрибут memberUid и не видит/не ищет вложенное членство в группах jobTitleGroup1
.
Так что я не знаю, как делать вложенные группы, и/или не знаю, как заставить sssd читать членство во вложенных группах. Любая помощь будет оценена.
решение1
Две недели спустя я нашел ответ. Проблема была в двух вещах, одна из которых была из-за первой.
Первая проблема заключалась в том, что поскольку я настроил ldap со схемой rfc2307bis, мои группы использовали groupOfNames и атрибут «member».
Однако sssd не распознавал членство, пока я не использовал "memberUid". MemberUid был второй проблемой.
в sssd.conf в разделе domain/default мне нужно было следующее:
[domain/default]
ldap_schema = rfc2307bis
ldap_group_object_class=groupOfNames
ldap_group_member=member
тогда моя группа разрешений может быть такой:
DN: cn=server-admins,ou=Groups,dc=example,dc=com
groupOfNames (structural)
posixGroup (auxiliary)
member cn=jobTitleGroup1,ou=Roles,dc=example,dc=com
и моя ролевая группа могла бы быть:
DN: cn=jobTitleGroup1,ou=Roles,dc=example,dc=com
groupOfNames (structural)
posixGroup (auxiliary)
member uid=userName1,ou=People,dc=example,dc=com
member uid=userName2,ou=People,dc=example,dc=com