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

"https" を使用することも可能です。これをZabbixで動作させるには、conf/zabbix.conf.php に次の行を追加する必要があります。
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
その他のオプションはデフォルト値のままにしてください。
2. Configuration -> API connection で、次の値を設定します。
- SCIM Base URL:
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON Template:
user_name、user_lastname、user_email、user_mobileなど、SCIM 経由でZabbixに渡したいすべてのカスタム属性を含める必要があります。
{
"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 がレスポンス内で givenName と familyName を含む name 属性を受け取る必要がある点に注意してください。これは、サービスプロバイダー側で必須でない場合でも必要です。そのため、アプリケーション設定部分のスキーマでこれを指定する必要があります。
- SCIM Bearer Token: Super admin 権限を持つ Zabbix API トークンを入力します。
接続を有効化するには、Enable をクリックします。

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

4. Parameters ページには、デフォルトパラメータの一覧が表示されます。
- 'scimusername' が OneLogin のユーザーログイン値(例: メールアドレス)と一致していることを確認してください。
- 'Groups' パラメータについて、Include in User Provisioning オプションを有効にしてください。
- "+" をクリックして、
user_name、user_lastname、user_email、user_mobileなど、SAML アサーションおよびユーザープロビジョニングに必要なカスタムパラメータを作成します。

パラメータを追加する際は、Include in SAML assertion と Include in User Provisioning の両方のオプションを有効にしてください。
- OneLogin のユーザーロールに一致する 'group' パラメータを追加します。ユーザーロールは、セミコロン
;区切りの文字列として渡されます。OneLogin のユーザーロールは、Zabbix でユーザーグループを作成するために使用されます。

パラメータ一覧を確認してください。

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

正規表現を使用して、特定のロールをグループとして渡すことができます。OneLogin は複数のロールを持つ属性を送信する際に区切り文字として ; を使用するため、ロール名には ; を含めないでください。
Zabbixの設定
1. Zabbixで、SAML設定に移動し、OneLoginの設定に基づいて設定オプションを入力します。

| Zabbix field | OneLoginの設定フィールド | サンプル値 |
|---|---|---|
| IdP entity ID | Issuer URL (OneLoginのアプリケーションのSSOタブを参照) |
|
| SSO service URL | SAML 2.0 Endpoint (HTTP) (OneLoginのアプリケーションのSSOタブを参照) |
|
| SLO service URL | SLO Endpoint (HTTP) (OneLoginのアプリケーションのSSOタブを参照) |
|
| Username attribute | カスタムパラメータ | user_email |
| Group name attribute | カスタムパラメータ | group |
| User name attribute | カスタムパラメータ | user_name |
| User last name attribute | カスタムパラメータ | user_lastname |
ユーザーグループのマッピングも設定する必要があります。メディアのマッピングは任意です。これらの設定を保存するには、Update をクリックします。
2. OneLoginが提供する証明書をダウンロードし、ZabbixのWebインターフェースのインストール先にある conf/certs に idp.crt として配置します。
次のコマンドを実行して、644の権限を設定します。
chmod 644 idp.crt
OneLoginでは、Applications -> SSO -> 現在の証明書の View details をクリックして、証明書のダウンロードにアクセスできます。
別の証明書名および保存場所を使用することも可能です。その場合は、conf/zabbix.conf.php に次の行を追加してください。
$SSO['IDP_CERT'] = 'path/to/certname.crt';
SCIM ユーザープロビジョニング
ユーザープロビジョニングを有効にすると、OneLogin でユーザーとそのロールを追加/更新し、Zabbix にすぐにプロビジョニングできるようになります。
例えば、新しいユーザーを作成します。

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

ユーザーを保存すると、Zabbix にプロビジョニングされます。 アプリケーション → ユーザー で、現在のアプリケーションユーザーのプロビジョニングステータスを確認できます。

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