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 для проверки. |