2 LDAP

Обзор

Внешний LDAP сервис authentication Может быть использован для проверки логинов и паролей пользователей

Аутентификация LDAP в Zabbix работает как минимум с Microsoft Active Directory и OpenLDAP.

Если настроен только вход через LDAP, пользователь также должен существовать в Zabbix, однако его пароль из Zabbix использоваться не будет. Если аутентификация проходит успешно, Zabbix сопоставляет локальное имя пользователя с атрибутом имени пользователя, возвращаемым LDAP.

Подготовка пользователей

Можно настроить JIT (just-in-time) подготовку пользователей для пользователей LDAP. В этом случае не требуется, чтобы пользователь уже существовал в Zabbix. Учетная запись пользователя может быть создана при первом входе пользователя в Zabbix.

Когда пользователь LDAP вводит свой логин и пароль LDAP, Zabbix проверяет default LDAP-сервер, существует ли этот пользователь. Если пользователь существует и еще не имеет учетной записи в Zabbix, в Zabbix создается новый пользователь, и он может войти в систему.

Пользователь, созданный с помощью JIT-подготовки, связан с LDAP-сервером (каталогом), который был задан как default на момент создания. Изменение default LDAP-сервера позже не изменяет и не обновляет LDAP-сервер, связанный с пользователями, которые уже были подготовлены.

Если JIT-подготовка включена, в вкладке Authentication необходимо указать группу пользователей для неподготовленных пользователей.

JIT-подготовка также позволяет обновлять подготовленные учетные записи пользователей на основе изменений в LDAP. Например, если пользователя переместили из одной LDAP-группы в другую, в Zabbix он также будет перемещен из одной группы в другую; если пользователя удалить из LDAP-группы, он также будет удален из группы в Zabbix и, если не принадлежит ни к какой другой группе, добавлен в группу пользователей для неподготовленных пользователей. Подготовленные учетные записи пользователей обновляются на основе настроенного периода подготовки или при входе пользователя в Zabbix.

Обратите внимание, что фоновая подготовка выполняется веб-интерфейсом Zabbix, когда пользователь взаимодействует с ним или, по крайней мере, имеет открытую страницу веб-интерфейса в браузере. Отдельных фоновых процессов для подготовки пользователей нет.

LDAP поддерживает три способа привязки к каталогу для аутентификации и поиска:

  • Анонимная привязка — не указан Bind DN / Bind password, и LDAP-сервер разрешает анонимные запросы.
  • Выделенный пользователь привязки (служебная учетная запись) — в Bind DN / Bind password задана конкретная учетная запись LDAP, которая используется Zabbix для поиска и подготовки. Это рекомендуемый и наиболее гибкий вариант, поскольку Zabbix может выполнять поиск и фоновую подготовку без учетных данных конечного пользователя.
  • Прямая привязка пользователя — Zabbix выполняет привязку, используя учетные данные, которые пользователь вводит при входе в систему (не настроены Bind DN / Bind password); это настраивается путем включения заполнителя, например uid=%{user}, в Base DN. В этом режиме Zabbix имеет доступ только к паролю пользователя во время интерактивного входа. В результате действия подготовки, требующие аутентификации в LDAP вне сеанса входа пользователя (например, использование кнопки Provision now или запуск фоновой подготовки, когда пользователь не вошел в систему), не могут пройти аутентификацию и, следовательно, не будут работать. Подготовка и обновления при прямой привязке пользователя выполняются только в момент входа пользователя в систему.

Несколько серверов

При необходимости можно определить несколько LDAP-серверов. Например, для аутентификации разных групп пользователей можно использовать разные серверы. После настройки LDAP-серверов в конфигурации группы пользователей становится возможным выбрать нужный LDAP-сервер для соответствующей группы пользователей.

Если пользователь входит в несколько групп пользователей и для них настроено несколько LDAP-серверов, для аутентификации будет использоваться первый сервер в списке LDAP-серверов, отсортированном по имени по возрастанию.

Конфигурация

Параметры конфигурации:

Parameter Description
Enable LDAP authentication Отметьте флажок, чтобы включить аутентификацию LDAP.
Enable JIT provisioning Отметьте флажок, чтобы включить JIT-подготовку.
Servers Нажмите Add, чтобы настроить LDAP-сервер (см. ниже Конфигурация LDAP-сервера).
Case-sensitive login Снимите флажок, чтобы отключить чувствительность имени пользователя к регистру (по умолчанию включено).
Отключение чувствительности имени пользователя к регистру позволяет, например, входить как "admin", даже если пользователь Zabbix — "Admin" или "ADMIN".
Обратите внимание: если чувствительность имени пользователя к регистру отключена и существует несколько пользователей Zabbix с похожими именами (например, Admin и admin), вход для этих пользователей всегда будет запрещен со следующим сообщением об ошибке: "Authentication failed: supplied credentials are not unique."
Provisioning period Укажите период подготовки, то есть как часто вошедший в систему пользователь будет подготавливаться при работе с веб-интерфейсом.

Конфигурация LDAP-сервера

Параметры конфигурации LDAP-сервера:

Parameter Description
Name Имя LDAP-сервера в конфигурации Zabbix.
Host Имя хоста, IP-адрес или URI LDAP-сервера. Примеры: ldap.example.com, 127.0.0.1, ldap://ldap.example.com
Для защищенного LDAP-сервера используйте протокол ldaps и имя хоста. Пример: ldaps://ldap.example.com
В OpenLDAP 2.x.x и новее можно использовать полный LDAP URI вида ldap://hostname:port или ldaps://hostname:port.
Port Порт LDAP-сервера. По умолчанию 389.
Для защищенного LDAP-подключения номер порта обычно 636.
Не используется при применении полных LDAP URI.
Base DN Базовый путь к учетным записям пользователей на LDAP-сервере:
ou=Users,ou=system (для OpenLDAP),
DC=company,DC=com (для Microsoft Active Directory)
uid=%{user},dc=example,dc=com (для прямой привязки пользователя, см. примечание ниже)
Search attribute Атрибут учетной записи LDAP, используемый для поиска:
uid (для OpenLDAP),
sAMAccountName (для Microsoft Active Directory)
Bind DN Учетная запись LDAP для привязки и поиска на LDAP-сервере, примеры:
uid=ldap_search,ou=system (для OpenLDAP),
CN=ldap_search,OU=user_group,DC=company,DC=com (для Microsoft Active Directory)
Также поддерживается анонимная привязка. Обратите внимание, что анонимная привязка потенциально открывает конфигурацию домена для неавторизованных пользователей (сведения о пользователях, компьютерах, серверах, группах, службах и т. д.). В целях безопасности отключите анонимные привязки на LDAP-хостах и используйте вместо этого аутентифицированный доступ.
Bind password Пароль LDAP-учетной записи для привязки и поиска на LDAP-сервере.
Description Описание LDAP-сервера.
Configure JIT provisioning Отметьте этот флажок, чтобы показать параметры, связанные с JIT provisioning.
Group configuration Выберите метод настройки групп:
memberOf - путем поиска пользователей и их атрибута членства в группе
groupOfNames - путем поиска групп через атрибут member
Обратите внимание, что memberOf предпочтительнее, так как он работает быстрее; используйте groupOfNames, если ваш LDAP-сервер не поддерживает memberOf или требуется фильтрация групп.
Group name attribute Укажите атрибут, из которого будет получено имя группы для всех объектов в атрибуте memberOf (см. поле User group membership attribute)
Имя группы необходимо для сопоставления групп пользователей.
User group membership attribute Укажите атрибут, содержащий сведения о группах, к которым принадлежит пользователь (например, memberOf).
Например, атрибут memberOf может содержать такие данные: memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=com
Это поле доступно только для метода memberOf.
User name attribute Укажите атрибут, содержащий имя пользователя.
User last name attribute Укажите атрибут, содержащий фамилию пользователя.
User group mapping Сопоставьте шаблон группы пользователей LDAP с группой пользователей и ролью пользователя Zabbix.
Это необходимо для определения того, какую группу пользователей/роль получит созданный пользователь в Zabbix.
Нажмите Add, чтобы добавить сопоставление.
Поле LDAP group pattern поддерживает подстановочные знаки. Имя группы должно совпадать с существующей группой.
Если пользователь LDAP соответствует нескольким группам пользователей Zabbix, он становится участником всех этих групп.
Если пользователь соответствует нескольким ролям пользователей Zabbix, он получит ту, у которой самый высокий уровень прав.
Media type mapping Сопоставьте атрибуты LDAP media пользователя (например, email) с пользовательскими media Zabbix для отправки уведомлений (значение атрибута используется как поле media Send to).
Advanced configuration Нажмите заголовок Advanced configuration, чтобы отобразить дополнительные параметры конфигурации (см. ниже).
StartTLS Отметьте флажок, чтобы использовать операцию StartTLS при подключении к LDAP-серверу. Соединение будет прервано, если сервер не поддерживает StartTLS.
StartTLS нельзя использовать с серверами, которые используют протокол ldaps.
Search filter Определите пользовательскую строку при аутентификации пользователя в LDAP. Поддерживаются следующие заполнители:
%{attr} - имя атрибута поиска (uid, sAMAccountName)
%{user} - значение имени пользователя для аутентификации
Например, чтобы выполнить поиск с учетом регистра в среде LDAP или Microsoft Active Directory, где поиск обычно нечувствителен к регистру, строку можно определить следующим образом:
(%{attr}:caseExactMatch:=%{user}).
Если фильтр не настроен, LDAP будет использовать значение по умолчанию: (%{attr}=%{user}).

Чтобы настроить LDAP-сервер для прямой привязки пользователя, добавьте атрибут uid=%{user} к параметру Base DN (например, uid=%{user},dc=example,dc=com) и оставьте параметры BindDN и Bind password пустыми. При аутентификации заполнитель %{user} будет заменен именем пользователя, введенным при входе в систему.
При прямой привязке пользователя Zabbix имеет доступ только к учетным данным пользователя во время интерактивного входа. Поэтому задачи provisioning, которые выполняются без интерактивного входа (например, кнопка Provision now или метод API user.provision), будут игнорировать пользователей, которые проходят аутентификацию с использованием прямой привязки пользователя, поскольку Zabbix не может выполнить привязку от их имени. Используйте анонимную привязку или выделенного пользователя для привязки (служебную учетную запись), если вам нужно, чтобы provisioning и LDAP-поиск работали из веб-интерфейса без необходимости входа конечного пользователя в систему.

Следующие поля относятся только к "groupOfNames" как методу Group configuration:

Parameter Description
Group base DN Базовый путь к группам на LDAP-сервере.
Group name attribute Укажите атрибут, из которого будет получено имя группы в указанном базовом пути к группам.
Имя группы необходимо для сопоставления групп пользователей.
Group member attribute Укажите атрибут, содержащий сведения об участниках группы в LDAP (например, member).
Reference attribute Укажите ссылочный атрибут для фильтра группы (см. поле Group filter).
Затем используйте %{ref} в фильтре группы, чтобы получить значения для указанного здесь атрибута.
Group filter Укажите фильтр для получения группы, участником которой является пользователь.
Например, (member=uid=%{ref},ou=Users,dc=example,dc=com) будет соответствовать "User1", если атрибут member группы равен uid=User1,ou=Users,dc=example,dc=com, и вернет группу, участником которой является "User1".

В случае проблем с сертификатами, чтобы обеспечить работу защищенного LDAP-подключения (ldaps), может потребоваться добавить строку TLS_REQCERT allow в файл конфигурации /etc/openldap/ldap.conf. Это может снизить безопасность подключения к LDAP-каталогу.

Рекомендуется создать отдельную LDAP-учетную запись (Bind DN) для выполнения привязки и поиска на LDAP-сервере с минимальными привилегиями в LDAP вместо использования реальных учетных записей пользователей (используемых для входа в веб-интерфейс Zabbix).
Такой подход обеспечивает более высокий уровень безопасности и не требует изменения Bind password, когда пользователь меняет свой пароль на LDAP-сервере.
В таблице выше это учетная запись ldap_search.

Проверка доступа

Кнопка Test позволяет проверить доступ пользователя:

Parameter Description
Login Имя пользователя LDAP для проверки (предзаполнено текущим именем пользователя из веб-интерфейса Zabbix). Это имя пользователя должно существовать на сервере LDAP.
Zabbix не активирует аутентификацию LDAP, если не сможет выполнить аутентификацию тестового пользователя.
User password Пароль пользователя LDAP для проверки.