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