Мы пробуем интеграцию ActiveDirectory на некоторых Linux-системах с SSSD.
Пока все хорошо, мы присоединили Linux-системы к домену и можем входить в Linux-системы с пользователями, определенными в AD. Прямо сейчас каждый пользователь AD может войти в любую систему Linux, интегрированную с SSSD.
Как я могу позволить пользователю Foo войти в LinuxServer01, но не дать ему войти в LinuxServer02? И / или как я могу заблокировать пользователю вход в каждую систему Linux и позволить ему просто войти в некоторые из них?
я бы порекомендовал против использование фильтров управления доступом на основе фильтров для большинства развертываний по двум причинам:
memberof
атрибут, пока пользователь является членом вложенных групп - поскольку запись пользователя содержит только элементы memberofs для непосредственных родителей, вложенные группы никогда не будут совпадать.Для очень простых случаев использования, таких как разрешение пользователю или группе пользователей, я бы рекомендовал использовать поставщик простого доступа
Для сложных случаев использования SSSD поддерживает AD GPO, начиная с серии 1.12.x, выполните поиск в Справочная страница sssd-ad для подробностей.
В файле конфигурации sssd.conf вы можете изменить фильтр доступа в соответствии со своими потребностями:
Под domain/default
раздел, попробуйте следующее:
access_provider = ldap
ldap_access_filter = memberOf=cn=GroupName,ou=Groups,dc=domain,dc=com
Сделав еще несколько RTFM, я нашел подробности в sssd-ad (5) - Наверное, в первый раз я их пропустила:
access_provider
является permit
, поэтому каждому пользователю, который может пройти аутентификацию, предоставляется разрешение на вход в систему. Это объясняется в sssd.conf (5).access_provider = ad
ad_access_filter
как подробно описано в sssd-ad (5) чтобы определить фильтр для пользователей, которые могут войти в систему(но я все еще не знаю, есть ли способ указать системы одну за другой на стороне AD, чтобы пользователь разрешил вход в систему)