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-сервера:

Параметр Описание
Имя Имя LDAP-сервера в конфигурации Zabbix.
Узел сети Имя узла сети, 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.
Порт Порт LDAP-сервера. По умолчанию используется порт 389.
Для защищенного LDAP-соединения обычно используется порт 636.
Не используется при применении полных LDAP URI.
Базовый DN Базовый путь к учетным записям пользователей на LDAP-сервере:
ou=Users,ou=system (для OpenLDAP),
DC=company,DC=com (для Microsoft Active Directory)
uid=%{user},dc=example,dc=com (для прямой привязки пользователя, см. примечание ниже)
Атрибут поиска Атрибут учетной записи LDAP, используемый для поиска:
uid (для OpenLDAP),
sAMAccountName (для Microsoft Active Directory)
DN привязки Учетная запись LDAP для привязки и поиска на LDAP-сервере, примеры:
uid=ldap_search,ou=system (для OpenLDAP),
CN=ldap_search,OU=user_group,DC=company,DC=com (для Microsoft Active Directory)
Также поддерживается анонимная привязка. Обратите внимание, что анонимная привязка потенциально открывает конфигурацию домена для неавторизованных пользователей (информация о пользователях, компьютерах, серверах, группах, службах и т. д.). В целях безопасности отключите анонимные привязки на узлах LDAP и используйте вместо них аутентифицированный доступ.
Пароль привязки Пароль LDAP учетной записи для привязки и поиска на LDAP-сервере.
Описание Описание LDAP-сервера.
Настроить JIT-подготовку Установите этот флажок, чтобы отобразить параметры, связанные с JIT-подготовкой.
Конфигурация групп Выберите метод конфигурации групп:
memberOf - поиск пользователей и атрибута членства в их группах
groupOfNames - поиск групп через атрибут member
Обратите внимание, что memberOf предпочтительнее, поскольку работает быстрее; используйте groupOfNames, если ваш LDAP-сервер не поддерживает memberOf или требуется фильтрация групп.
Атрибут имени группы Укажите атрибут, из которого следует получить имя группы для всех объектов в атрибуте memberOf (см. поле Атрибут членства пользователя в группе)
Имя группы необходимо для сопоставления групп пользователей.
Атрибут членства пользователя в группе Укажите атрибут, содержащий информацию о группах, в которые входит пользователь (например, memberOf).
Например, атрибут memberOf может содержать такую информацию: memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=com
Это поле доступно только для метода memberOf.
Атрибут имени пользователя Укажите атрибут, содержащий имя пользователя.
Атрибут фамилии пользователя Укажите атрибут, содержащий фамилию пользователя.
Сопоставление групп пользователей Сопоставьте шаблон группы пользователей LDAP с группой пользователей и ролью пользователя Zabbix.
Это необходимо для определения группы или роли, которые получит подготовленный пользователь в Zabbix.
Нажмите Добавить, чтобы добавить сопоставление.
Поле Шаблон группы LDAP поддерживает подстановочные символы (см. примечание ниже). Имя группы должно соответствовать существующей группе.
Если пользователь LDAP соответствует нескольким группам пользователей Zabbix, он становится участником всех этих групп.
Если пользователь соответствует нескольким ролям пользователей Zabbix, он получит роль с наивысшим уровнем разрешений среди них.
Сопоставление типов носителей Сопоставьте атрибуты LDAP носителей пользователя (например, email) с носителями пользователя Zabbix для отправки уведомлений (значение атрибута используется как поле Отправить на носителя).
Расширенная конфигурация Нажмите заголовок Расширенная конфигурация, чтобы отобразить параметры расширенной конфигурации (см. ниже).
StartTLS Установите флажок, чтобы использовать операцию StartTLS при подключении к LDAP-серверу. Подключение завершится ошибкой, если сервер не поддерживает StartTLS.
StartTLS нельзя использовать с серверами, применяющими протокол ldaps.
Фильтр поиска Определите пользовательскую строку для аутентификации пользователя в LDAP. Поддерживаются следующие заполнители:
%{attr} - имя атрибута поиска (uid, sAMAccountName)
%{user} - значение имени пользователя для аутентификации
Например, чтобы выполнить поиск с учетом регистра в LDAP или Microsoft Active Directory, где поиск обычно регистронезависимый, строку можно определить следующим образом:
(%{attr}:caseExactMatch:=%{user}).
Если фильтр не настроен, LDAP будет использовать значение по умолчанию: (%{attr}=%{user}).

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

В поле Шаблон группы LDAP подстановочный символ * ведет себя как .* в регулярных выражениях и соответствует нулю или более символам. Например, шаблон *Demo*Admin соответствует группам LDAP WebDemoSuperAdmin и WebDemoAdmin. Шаблон должен соответствовать имени группы целиком, поэтому Demo*Admin (без начального *) не соответствует ни одной из этих групп.

Следующие поля относятся к методу "groupOfNames", выбранному в поле Конфигурация групп:

Параметр Описание
Базовый DN группы Базовый путь к группам на LDAP-сервере.
Атрибут имени группы Укажите атрибут, из которого следует получить имя группы в указанном базовом пути к группам.
Имя группы необходимо для сопоставления групп пользователей.
Атрибут участника группы Укажите атрибут, содержащий информацию об участниках группы в LDAP (например, member).
Ссылочный атрибут Укажите ссылочный атрибут для фильтра группы (см. поле Фильтр группы).
Затем используйте %{ref} в фильтре группы, чтобы получить значения указанного здесь атрибута.
Фильтр группы Укажите фильтр для получения группы, участником которой является пользователь.
Например, (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 (DN привязки) для выполнения привязки и поиска на LDAP-сервере с минимальными привилегиями в LDAP вместо использования реальных учетных записей пользователей (используемых для входа в веб-интерфейс Zabbix).
Такой подход повышает безопасность и устраняет необходимость изменять Пароль привязки, когда пользователь меняет собственный пароль на LDAP-сервере.
В таблице выше это учетная запись ldap_search.

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

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

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