Аутентификация LDAP для хостов: один и тот же пользователь должен иметь разное членство в posixgroup при входе на разные машины (хосты)

Аутентификация LDAP для хостов: один и тот же пользователь должен иметь разное членство в posixgroup при входе на разные машины (хосты)

Есть идеи, как достичь следующей цели с помощью сервера OpenLDAP с клиентами Unix?

Цель: a) Каждый пользователь должен иметь отдельные ограничения доступа к разным хостам (серверам unix) через настройки сервера LDAP b) Каждый такой вошедший в систему пользователь (если разрешено) должен иметь отдельные членства в posixgroup на разных машинах на основе настроек сервера LDAP. Например, пользователь janaki должен быть членом sudo posixgroup на сервере server-1, но не на сервере server-2

Цель части А была достигнута следующим образом:

Создайте отдельные группы (objectClass groupofNames) с атрибутом member для каждой машины/хоста, которые требуют отдельных ограничений доступа для пользователей, используя наложения LDAP (memberof и refint). Добавьте пользователей (posixAccount) в эти группы (тип groupofnames) на сервере LDAP, чтобы включить доступ auth к каждому серверу. На клиентской машине (сервер unix) добавьте фильтр nss_base_passwd для проверки memberof=cn=group-name (group-name, представляющий этот сервер в LDAP). Это успешно и работает.

Требуется, как достичь части-b? То есть, какие конфигурации требуются на сервере openldap и unix-клиентах для достижения этого?

-с уважением Джанаки

решение1

Вы можете использовать класс объекта posixGroup в LDAP. Этот класс объекта позволяет вам создавать группы, соответствующие группам Unix на каждом клиентском компьютере. Затем вы можете добавлять пользователей в эти группы, используя атрибут memberUid, который указывает UID пользователя. На клиентских компьютерах вы можете настроить фильтр nss_base_group в файле /etc/ldap.conf для извлечения объектов posixGroup с сервера LDAP. Это позволяет клиентскому компьютеру использовать информацию о членстве в группе с сервера LDAP для определения членства пользователей в группе Unix при входе в систему. Еще одна вещь, которую я мог бы предложить, — это использовать модуль pam_ldap для аутентификации пользователей и установки их членства в группе на основе настроек сервера LDAP при входе в систему.

Редактировать 1(проверьте комментарии для справки): Да, вы можете использовать класс объекта posixGroup и фильтр nss_base_group для достижения цели иметь разное членство в группах Unix для разных пользователей на разных клиентских машинах.

Для этого вы можете создать объекты posixGroup на сервере LDAP для каждой группы, которую вы хотите использовать на клиентских машинах. Затем вы можете использовать атрибут memberUid, чтобы указать UID пользователей, которые являются членами каждой группы.

На клиентских машинах можно настроить фильтр nss_base_group в файле /etc/ldap.conf для извлечения объектов posixGroup с сервера LDAP. Например, можно добавить следующую строку в файл /etc/ldap.conf на клиентской машине:

nss_base_group  ou=Groups,dc=example,dc=com?one

Это заставит клиентский компьютер искать объекты posixGroup в организационном подразделении Groups на сервере LDAP и использовать информацию из этих объектов для установки членства в группах Unix для пользователей при входе в систему.

Что касается использования модуля pam_ldap для аутентификации пользователей и установки их членства в группах на основе настроек сервера LDAP при входе в систему, то это возможно. Модуль pam_ldap можно настроить на использование сервера LDAP для аутентификации пользователей и установки их членства в группах при входе в систему на клиентской машине.

Чтобы использовать модуль pam_ldap, вы можете добавить следующую строку в файл /etc/pam.d/common-auth на клиентском компьютере:

auth sufficient pam_ldap.so

Это заставит модуль pam_ldap аутентифицировать пользователей с помощью сервера LDAP и установить их членство в группах на основе информации на сервере LDAP.

Связанный контент