Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

Sidebar

Zabbix Summit 2022
View presentations

3 Аутентификация

Обзор

В разделе Администрирование → Аутентификация можно задать глобальный метод аутентификации в Zabbix. Доступны следующие методы аутентификации внутренний, HTTP и LDAP.

Обратите внимание, что метод аутентификации можно изменить на уровне группы пользователей.

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

  • на HTTP - перейдите на вкладку Настройки HTTP и введите детали аутентификации;
  • на LDAP - выберите LDAP как Аутентификация по умолчанию и введите детали аутентификации на вкладке Настройки LDAP;
  • на SAML - перейдите на вкладку Настройки SAML и введите детали аутентификации.

После завершения нажмите на Обновить внизу формы.

HTTP аутентификация

Для проверки имён пользователей и паролей можно использовать HTTP или аутентификацию на основе веб-сервера (например, Apache, Kerberos). Обратите внимание, что пользователь должен также существовать и в Zabbix, однако, его Zabbix пароль не будет использоваться.

Будьте осторожны! Убедитесь, что аутентификация на основе веб-сервера настроена и работает корректно перед тем как переключиться на неё.

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

Параметр Описание
Активация HTTP аутентификации Отметьте, чтобы активировать HTTP аутентификацию.
Диалог входа в систему по умолчанию Укажите куда следует перенаправлять пользователей не прошедших аутентификацию успешно:
Диалог входа в систему Zabbix - стандартная страница входа в Zabbix
HTTP диалог входа в систему - страница входа HTTP
Удаление имени домена Задайте имя домента, которое необходимо удалить из строки входа (оставив только имя пользователя).
Регистрозависимое имя входа Уберите отметку, чтобы отключить чувствительный к регистру вход (активирован по умолчанию).

В случае аутентификации на базе веб-сервера все пользователи (даже с доступом к веб-интерфейсу со значением Внутренний) будут аутентифицироваться веб-сервером, а не Zabbix!

LDAP аутентификация

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

Хотя LDAP аутентификация задается глобально некоторые группы пользователей могут всё еще аутентифицироваться с помощь Zabbix. У этих групп доступ к веб-интерфейсу должен быть задан значением Внутренний. И наоборот, если глобально используется внутренняя аутентификация, детали LDAP аутентификации можно задать и использовать по отдельным группам пользователей у которых доступ к веб-интерфейсу задан значением LDAP.

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

Параметры настроек:

Параметр Описание
Активация LDAP аутентификации Отметьте, чтобы активировать LDAP аутентификацию.
Хост LDAP Имя LDAP сервера. Например: ldap://ldap.zabbix.com
Используйте протокол ldaps для безопасного LDAP сервера.
ldaps://ldap.zabbix.com
При использовании OpenLDAP 2.x.x и более поздних можно использовать полный LDAP URI в форме ldap://имяхоста:порт или ldaps://имяхоста:порт.
Порт Порт LDAP сервера. По умолчанию 389.
Для безопасного подключения к LDAP обычно используется номер порта 636.
Не используется при использовании полных LDAP URI.
База для поиска (BaseDN) Базовый путь для поиска аккаунтов:
ou=Users,ou=system (в OpenLDAP),
DC=company,DC=com (в Microsoft Active Directory)
Атрибут поиска Атрибут 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)

Обязательно, анонимное подключение не поддерживается.
Регистрозависимое имя входа Уберите отметку, чтобы отключить чувствительный к регистру вход (активирован по умолчанию).
Пароль подключения (Bind password) Пароль LDAP аккаунта для выполнения подключения и поиска на LDAP сервере.
Тест аутентификации Заголовок раздела тестирования
Вход в систему Имя тестового пользователя (который выполнил вход в веб-интерфейс Zabbix). Это имя пользователя должно существовать на LDAP сервере.
Zabbix не активирует LDAP аутентификацию, если не удается авторизовать тестового пользователя.
Пароль пользователя Пароль LDAP к тестовому пользователю.

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

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

Аутентификация SAML

Для входа в Zabbix можно использовать аутентификацию SAML 2.0. Обратите внимание, что пользователь должен существовать в Zabbix, однако его пароль Zabbix не будет использоваться. Если аутентификация прошла успешно, Zabbix сопоставит локальное имя пользователя (alias) с атрибутом имени пользователя, возвращаемым SAML.

Если включена аутентификация SAML, пользователи смогут выбирать между локальным входом в систему или SAML Single Sign-On.

Настройка поставщика учетных записей

Для работы с Zabbix, поставщик учетных записей SAML (анг. identity provider) (onelogin.com, auth0.com, okta.com, и т. д.) должен быть настроен следующим образом:

  • Assertion Consumer URL должен быть установлен как <path_to_zabbix_ui>/index_sso.php?acs
  • Single Logout URL должен быть установлен как <path_to_zabbix_ui>/index_sso.php?sls

Примеры <path_to_zabbix_ui>: %% https://example.com/zabbix/ui, http://another.example.com/zabbix, http://<any_public_ip_address>/zabbix %%

Настройка Zabbix

Для использования аутентификации SAML Zabbix должен быть настроен следующим образом:

1. Приватный ключ и сертификат должны храниться в ui/conf/certs/, если вы не прописали другие пути в zabbix.conf.php.

По умолчанию, Zabbix будет искать в следующих локациях:

  • ui/conf/certs/sp.key - файл приватного ключа SP
  • ui/conf/certs/sp.crt - файл SP сертификата
  • ui/conf/certs/idp.crt - файл IDP сертификата

2. Все наиболее важные настройки можно настроить в веб-интерфейсе Zabbix. Кроме этого, можно указать дополнительные настройки в файле конфигурации.

Параметры конфигурации, доступные в веб-интерфейсе Zabbix:

Параметр Описание
Включить аутентификацию SAML Установите флажок, чтобы включить проверку подлинности SAML.
ID объекта IDP Уникальный идентификатор поставщика учетных записей SAML.
URL единого входа URL, куда перенаправить пользователей для входа.
URL единого выхода URL, куда перенаправить пользователей для выхода. Оставьте поле пустым, если не хотите использовать URL единого выхода.
Атрибут имени Атрибут SAML, который будет использоваться в качестве имени пользователя при входе в Zabbix.
Список допустимых значений зависит от поставщика учетных записей.

Примеры:
uid
userprincipalname
samaccountname
username
userusername
urn:oid:0.9.2342.19200300.100.1.1
urn:oid:1.3.6.1.4.1.5923.1.1.1.13
urn:oid:0.9.2342.19200300.100.1.44
ID объекта SP Уникальный идентификатор поставщика услуг SAML.
Формат ID имени SP Определяет, какой формат идентификатора имени должен использоваться.

Примеры:
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
urn:oasis:names:tc:SAML:2.0:nameid-format:entity
Подписывать Установите флажки, чтобы выбрать объекты, для которых должна быть включена подпись SAML: //
Сообщения
Утверждения
Запросы AuthN
Запросы выхода
Ответы при выходе //
Шифровать Установите флажки, чтобы выбрать объекты, для которых должно быть включено шифрование SAML: //
Утверждения
ID имени //
Логин с учетом регистра Установите флажок, чтобы включить ввод с учетом регистра (отключен по умолчанию) для имен пользователей.
Например, отключив регистрацию с учетом регистра вы сможете войти с именем пользователя «ADMIN», даже если в Zabbix пользователь записан - «Admin».
Обратите внимание, что при отключении регистрации с учетом регистра во входе в систему будет отказано, если в базе данных Zabbix существует несколько пользователей с похожим именем (например, Admin, admin).
Расширенные настройки

Дополнительные параметры SAML можно настроить в файле конфигурации внешнего интерфейса Zabbix (zabbix.conf.php):

  • $SSO['SP_KEY'] = '<path to the SP private key file>';
  • $SSO['SP_CERT'] = '<path to the SP cert file>';
  • $SSO['IDP_CERT'] = '<path to the IDP cert file>';
  • $SSO['SETTINGS']

Zabbix использует библиотеку OneLogin's SAML PHP Toolkit (версия 3.4.1). Структура раздела $SSO['SETTINGS'] должна быть аналогична структуре, используемой библиотекой. Описание параметров конфигурации см. в документации библиотеки.

Только следующие параметры могут быть установлены как часть $SSO['SETTINGS']:

  • strict
  • compress
  • contactPerson
  • organization
  • sp (только перечисленные ниже)
    • attributeConsumingService
    • x509certNew
  • idp (только перечисленные ниже)
    • singleLogoutService (только одна опция)
      • responseUrl
    • certFingerprint
    • certFingerprintAlgorithm
    • x509certMulti
  • security (только перечисленные ниже)
    • signMetadata
    • wantNameId
    • requestedAuthnContext
    • requestedAuthnContextComparison
    • wantXMLValidation
    • relaxDestinationValidation
    • destinationStrictlyMatches
    • rejectUnsolicitedResponsesWithInResponseTo
    • signatureAlgorithm
    • digestAlgorithm
    • lowercaseUrlencoding

Все остальные параметры будут взяты из базы данных и не могут быть переопределены. Опция debug будет игнорироваться. Пример конфигурации:

$SSO['SETTINGS'] = [
           'security' => [
               'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
               'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
               // ...
           ],
           // ...
       ];