このセクションでは、SAML 2.0認証を使用してOneLoginからZabbixへのシングルサインオンおよびユーザーのプロビジョニングを設定するためのガイドラインを提供します。
1. OneLoginのアカウントにログインします。 テスト目的の場合は、OneLoginで無料の開発者アカウントを作成できます。
2. OneLoginのWebインターフェースで、Applications → Applicationsに移動します。
3. 「Add App」をクリックし、適切なアプリを検索します。 このページのガイドラインは、SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML)アプリの例に基づいています。
4. まず、アプリの表示名をカスタマイズすることをお勧めします。 アイコンやアプリの詳細を追加することもできます。 その後、Saveをクリックします。
1. Configuration -> Application detailsで、Zabbixシングルサインオンエンドポイント http://<zabbix-instance-url>/zabbix/index_sso.php?acs を以下のフィールドの値として設定します:
リクエストでacsパラメータが切り取られないように、"https"ではなく" http"を使用していることに注意してください。

" https"を使用することも可能です。 Zabbixでこれを機能させるには、conf/zabbix.conf.phpに以下の行を追加する必要があります:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
他のオプションはデフォルト値のままにします。
2. Configuration -> API connectionで、以下の値を設定します:
https://<zabbix-instance-url>/zabbix/api_scim.phpuser_name、user_lastname、user_email、user_mobileなど)を含める必要があります:{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"userName": "{$parameters.scimusername}",
"name": {
"familyName": "{$user.lastname}",
"givenName": "{$user.firstname}"
},
"user_name": "{$user.firstname}",
"user_lastname": "{$user.lastname}",
"user_mobile": "{$user.phone}",
"user_email": "{$user.email}"
}属性名は任意です。 異なる属性名を使用することもできますが、ZabbixのSAML設定の該当フィールド値と一致する必要があります。
ユーザープロビジョニングを機能させるには、OneLoginがレスポンスで'name'属性('givenName'と'familyName'を含む)を受け取る必要があることに注意してください。これはサービスプロバイダーによって必須でなくても必要です。 したがって、アプリケーション設定部分のスキーマでこれを指定する必要があります。
Enableをクリックして接続を有効にします。

3. Provisioningページで、Provisioningオプションを有効にします:

4. Parametersページにはデフォルトパラメータのリストがあります:
user_name、user_lastname、user_email、user_mobileなど、SAMLアサーションやユーザープロビジョニングに必要なカスタムパラメータを作成します:
パラメータを追加する際は、Include in SAML assertionとInclude in User Provisioningの両方にチェックを入れてください。
;で区切られた文字列として渡されます。 OneLoginのユーザーロールは、Zabbixでユーザーグループを作成する際に使用されます:
パラメータのリストを確認します:

5. Rulesページで、デフォルトのGroupsパラメータにユーザーロールのマッピングを作成します。

特定のロールをグループとして渡すために正規表現を使用することができます。 OneLoginは複数のロールを含む属性を送信する際にセミコロン;を区切り文字として使用するため、ロール名に;を含めないでください。
6. IdP証明書をダウンロードします。 以下のコマンドで644パーミッションを設定します:
1. Zabbixで、SAML設定に移動し、OneLoginの設定に基づいて設定オプションを入力します。

| Zabbixフィールド | OneLoginの設定フィールド | サンプル値 |
|---|---|---|
| IdPエンティティID | Issuer URL (OneLoginのアプリケーションのSSOタブを参照) |
|
| SSOサービスURL | SAML 2.0 Endpoint (HTTP) (OneLoginのアプリケーションのSSOタブを参照) |
|
| SLOサービスURL | SLO Endpoint (HTTP) (OneLoginのアプリケーションのSSOタブを参照) |
|
| ユーザー名属性 | カスタムパラメータ | user_email |
| グループ名属性 | カスタムパラメータ | group |
| ユーザー名属性 | カスタムパラメータ | user_name |
| ユーザー姓属性 | カスタムパラメータ | user_lastname |
ユーザーグループのマッピングも設定する必要があります。 メディアマッピングはオプションです。 更新をクリックしてこれらの設定を保存します。
2. OneLoginから提供されたBase64証明書を追加します。
zabbix.conf.phpで$SSO['CERT_STORAGE'] = 'database'が設定されている場合、SAML設定時にフロントエンドで証明書テキストを貼り付けるか、証明書ファイルをアップロードできます。ファイルシステム上にファイルは必要ありません。
zabbix.conf.phpで$SSO['CERT_STORAGE'] = 'file'が設定されている場合、証明書はファイルシステム上(デフォルトではui/conf/certsまたはzabbix.conf.phpで設定されたパス)に配置する必要があり、フロントエンドは証明書をデータベースに保存しません。 $SSO['CERT_STORAGE']が設定されていないかコメントアウトされている場合は、ファイルストレージが想定され、証明書はui/conf/certsから読み込まれます。
OneLoginで証明書をダウンロードするには、Applications -> SSO -> 現在の証明書のView detailsをクリックします。
3. 更新ボタンを押してこれらの設定を保存します。
ユーザーのプロビジョニングを有効にすると、OneLoginでユーザーとそのロールを追加/更新し、それらを即座にZabbixにプロビジョニングすることが可能になります。
例えば、新しいユーザーを作成できます。

ユーザーロールとユーザーをプロビジョニングするアプリケーションに追加します。

ユーザーを保存すると、Zabbixにプロビジョニングされます。 [Application] -> [Users]で、現在のアプリケーションユーザーのプロビジョニング状況を確認できます。

正常にプロビジョニングされると、Zabbixのユーザーリストにユーザーが表示されます。
