Настройка SAML с Okta
В этом разделе приведены рекомендации по настройке Okta для включения аутентификации SAML 2.0 и подготовки пользователей для Zabbix.
Настройка Okta
1. Перейдите на https://developer.okta.com/signup/ и зарегистрируйтесь/войдите в свою учетную запись.
2. В веб-интерфейсе Okta перейдите в Applications > Applications.
3. Нажмите Create App Integration.

Выберите "SAML 2.0" в качестве метода входа и нажмите Next.
4. В общих настройках укажите имя приложения и нажмите Next.
5. В настройках SAML введите значения, указанные ниже, затем нажмите Next.

-
В разделе General добавьте:
- Single sign-on URL:
http://<your-zabbix-url>/zabbix/index_sso.php?acs
Обратите внимание на использование "http", а не "https", чтобы параметрacsне был обрезан в запросе. Флажок Use this for Recipient URL and Destination URL также должен быть установлен. - Audience URI (SP Entity ID):
zabbix
Обратите внимание, что это значение будет использоваться в SAML assertion как уникальный идентификатор поставщика услуг (если оно не совпадает, операция будет отклонена). В этом поле можно указать URL или любую строку данных. - Default RelayState:
Оставьте это поле пустым; если требуется пользовательское перенаправление, его можно добавить в Zabbix в настройках Users > Users. - Заполните остальные поля по своему усмотрению.
- Single sign-on URL:
-
В Attribute Statements/Group Attribute Statements добавьте:

Эти атрибуты вставляются в SAML assertion, которыми обмениваются с Zabbix.
Имена атрибутов, используемые здесь, приведены в качестве произвольных примеров. Вы можете использовать другие имена атрибутов, однако они должны совпадать со значением соответствующего поля в настройках Zabbix SAML.
Если вы хотите настроить вход в Zabbix по SAML без JIT user provisioning, тогда требуется только атрибут email.
Если планируется использовать зашифрованное соединение, сгенерируйте закрытый и открытый сертификаты шифрования, затем загрузите открытый сертификат в Okta. Форма загрузки сертификата появляется, когда для Assertion Encryption установлено значение "Encrypted" (нажмите Show Advanced Settings, чтобы найти этот параметр).
6. На следующей вкладке выберите "I'm a software vendor. I'd like to integrate my app with Okta" и нажмите Finish.
7. Перейдите на вкладку "Assignments" только что созданного приложения и нажмите кнопку Assign, затем выберите Assign to People в раскрывающемся списке.

8. Во всплывающем окне назначьте приложение пользователям, которые будут использовать SAML 2.0 для аутентификации в Zabbix, затем нажмите Save and go back.
9. Скачайте сертификат IdP. Установите для него права 644, выполнив:
chmod 644 idp.crt
10. Перейдите на вкладку "Sign On" и нажмите кнопку View Setup Instructions.
Инструкции по настройке откроются в новой вкладке; оставьте эту вкладку открытой во время настройки Zabbix.
Конфигурация Zabbix
1. В Zabbix перейдите в раздел Настройки SAML и заполните параметры конфигурации на основе инструкций по настройке в Okta:

| Поле Zabbix | Поле настройки в Okta | Пример значения |
|---|---|---|
| Идентификатор сущности IdP | Identity Provider Issuer | |
| URL службы SSO | Identity Provider Single Sign-On URL | |
| Атрибут имени пользователя | Attribute name | usrEmail |
| Идентификатор сущности SP | Audience URI | zabbix |
| Атрибут имени группы | Attribute name | groups |
| Атрибут имени пользователя | Attribute name | user_name |
| Атрибут фамилии пользователя | Attribute name | user_lastname |
Также необходимо настроить сопоставление групп пользователей и каналов уведомлений.
2. Добавьте сертификат в формате Base64, предоставленный в инструкциях по настройке SAML в Okta.
Если в файле конфигурации веб-интерфейса (zabbix.conf.php) задано $SSO['CERT_STORAGE'] = 'database', текст сертификата можно вставить или загрузить файл сертификата в веб-интерфейсе во время настройки SAML — файлы в файловой системе не требуются.
Если в файле конфигурации задано $SSO['CERT_STORAGE'] = 'file', сертификат должен быть доступен в файловой системе (по умолчанию в ui/conf/certs или по пути, указанному в файле конфигурации), и веб-интерфейс не будет сохранять сертификаты в базе данных.
Обратите внимание: если $SSO['CERT_STORAGE'] не задан или закомментирован, используется файловое хранилище, а сертификаты считываются из ui/conf/certs.
3. Если в Okta для параметра Assertion Encryption установлено значение «Encrypted», в Zabbix также необходимо установить флажок «Assertions» для параметра Encrypt.
4. Нажмите кнопку Update, чтобы сохранить эти настройки.
Настройка SCIM
1. Чтобы включить настройку SCIM, перейдите в раздел General > App Settings приложения в Okta.
Установите флажок Enable SCIM provisioning. В результате появится новая вкладка Provisioning.
2. Перейдите на вкладку Provisioning, чтобы настроить SCIM-подключение:
- В поле SCIM connector base URL укажите путь к веб-интерфейсу Zabbix и добавьте к нему
api_scim.php, например:
https://<your-zabbix-url>/zabbix/api_scim.php - Unique identifier field for users:
email - Authentication mode:
HTTP header - В поле Authorization введите действительный API-токен с правами супер-администратора.

Если у вас возникают проблемы с аутентификацией, см. раздел Перенаправление заголовка авторизации.
3. Нажмите Test Connector Configuration, чтобы проверить подключение. Если все настроено правильно, появится сообщение об успешном выполнении.
4. В разделе Provisioning > To App установите следующие флажки:
- Create Users
- Update User Attributes
- Deactivate Users
Это гарантирует отправку запросов этих типов в Zabbix.
5. Убедитесь, что все атрибуты, определенные в SAML, определены в SCIM. Редактор профиля приложения можно открыть в разделе Provisioning > To App, нажав Go to Profile Editor.
Нажмите Add Attribute.
Заполните поля Display name, Variable name и External name, указав имя атрибута SAML, например user_name.

External namespace должен совпадать со схемой пользователя: urn:ietf:params:scim:schemas:core:2.0:User
6. Перейдите в разделе Provisioning > To App > Attribute Mappings приложения. В нижней части страницы нажмите Show Unmapped Attributes. Появятся недавно добавленные атрибуты.
7. Сопоставьте каждый добавленный атрибут.

8. Добавьте пользователей на вкладке Assignments. Предварительно пользователей необходимо добавить в разделе Directory > People. Все эти назначения будут отправлены в Zabbix в виде запросов.
9. Добавьте группы на вкладке Push Groups. Шаблон сопоставления групп пользователей в настройках SAML Zabbix должен соответствовать группе, указанной здесь. Если соответствия нет, пользователь не может быть создан в Zabbix.
Информация об участниках групп отправляется каждый раз при внесении изменений.