Skip to content

Метод «memberOf»

У всех пользователей нашего LDAP-сервера есть атрибут memberOf, который определяет, к каким группам LDAP принадлежит каждый пользователь. Например, если вы выполните LDAP-запрос для пользователя user1, вы увидите, что атрибут memberOf имеет следующее значение: memberOf: cn=zabbix-admins,ou=Group,dc=example,dc=org.

Обратите внимание, что на вашем реальном LDAP-сервере может быть совершенно другой атрибут LDAP, который предоставляет информацию о принадлежности пользователей к группам, и, конечно, вы можете легко настроить, какой атрибут использовать при поиске групп LDAP пользователя, указав его в поле Атрибут имени группы (Рисунок 2):

image

Рисунок 1 — Метод «memberOf»

На рисунке выше мы сообщаем Zabbix использовать атрибут memberOf для извлечения DN, определяющего принадлежность пользователя к группе (в данном случае это cn=admin,out=Group,dc=example,dc=org), и взять только атрибут cn из этого DN (в данном случае это admin), чтобы использовать его при поиске соответствия в правилах сопоставления групп пользователей. Затем мы определяем столько правил сопоставления, сколько захотим. На рисунке 1 у нас есть два правила:

  • Все пользователи, принадлежащие к группе LDAP User, будут созданы в Glaber как члены группы пользователей с ролью пользователя;

  • Все пользователи, принадлежащие к группе LDAP admin, будут созданы в Glaber как члены группы администраторов с ролью супер администратор.

Метод "groupOfNames"

Существует ещё один способ определения членства пользователей в группах, который называется «groupOfNames». Он не так эффективен, как метод «memberOf», но может обеспечить гораздо большую гибкость при необходимости. В этом случае Glaber не запрашивает сервер LDAP о пользователе, а ищет группы LDAP на основе заданного критерия (Рисунок 2):

image

Рисунок 2 — Метод "groupOfNames"

Сначала мы определяем LDAP-«поддерево», где Zabbix будет искать группы LDAP — обратите внимание на ou=Group,dc=example,dc=org в поле Base DN группы. Затем в поле «Атрибут имени группы» мы указываем, какой атрибут использовать при поиске в правилах сопоставления (в этом случае мы берём cn, то есть только zabbix-admins из полного DN cn=zabbix-admins,ou=Group,dc=example,dc=org).

Каждая группа LDAP на нашем сервере LDAP имеет атрибут member, который содержит всех пользователей, принадлежащих к этой группе LDAP (смотрите на картинку справа), поэтому мы помещаем member в поле «Атрибут члена группы». DN каждого пользователя поможет нам построить поле «Фильтр группы».

Теперь обратите внимание: поле «Атрибут ссылки» определяет, какой атрибут пользователя LDAP Zabbix будет использовать в фильтре группы, то есть %{ref} будет заменён значением этого атрибута (здесь мы говорим об атрибутах пользователя — мы уже аутентифицировали этого пользователя, то есть получили все его атрибуты с сервера LDAP).