2 LDAP

Обзор

Внешняя LDAP-аутентификация может использоваться для проверки имен пользователей и паролей.

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

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

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

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

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

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

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

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-серверов, отсортированном по имени в порядке возрастания.

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

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

Параметр Описание
Включить LDAP-аутентификацию Установите флажок, чтобы включить LDAP-аутентификацию.
Включить JIT-подготовку Установите флажок, чтобы включить JIT-подготовку.
Серверы Нажмите Добавить, чтобы настроить LDAP-сервер (см. Настройка LDAP-сервера ниже).
Логин с учетом регистра Снимите флажок, чтобы отключить учет регистра при входе для имен пользователей (по умолчанию включено).
Отключение учета регистра при входе позволяет, например, войти как "admin", даже если пользователь Zabbix — "Admin" или "ADMIN".
Обратите внимание, что если учет регистра при входе отключен и существует несколько пользователей Zabbix с похожими именами (например, Admin и admin), вход для таких пользователей всегда будет отклонен со следующим сообщением об ошибке: "Authentication failed: supplied credentials are not unique."
Период подготовки Установите период подготовки, то есть как часто для вошедшего пользователя будет выполняться подготовка во время работы с веб-интерфейсом.

Настройка LDAP-сервера

Параметры настройки LDAP-сервера:

Параметр Описание
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-подготовкой пользователей.
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-атрибуты пользователя способам оповещения Zabbix (например, email) для отправки уведомлений (значение атрибута используется в поле 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 имеет доступ к учетным данным пользователя только во время интерактивного входа. Поэтому задачи подготовки, выполняемые без интерактивного входа (например, кнопка Provision now или метод API user.provision), будут игнорировать пользователей, аутентифицирующихся с помощью прямой привязки пользователя, поскольку Zabbix не может выполнить привязку от их имени. Используйте анонимную привязку или выделенного пользователя для привязки (служебную учетную запись), если вам нужно, чтобы подготовка и LDAP-поиск работали из веб-интерфейса без необходимости входа конечного пользователя в систему.

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

Параметр Описание
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-сервере вместо использования реальных учетных записей пользователей (используемых для входа в веб-интерфейс Zabbix).
Такой подход обеспечивает более высокий уровень безопасности и не требует изменения Bind password, когда пользователь меняет свой собственный пароль на LDAP-сервере.
В таблице выше это учетная запись ldap_search.

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

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

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