13 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. 設定 -> アプリケーションの詳細 で、以下のフィールドに Zabbix シングルサインオンエンドポイント http://<zabbix-instance-url>/zabbix/index_sso.php?acs を設定します。
- ACS (コンシューマー) URL バリデータ
- ACS (コンシューマー) URL
リクエストで acs パラメータが省略されないように、「https」ではなく「http」を使用することに注意してください。

"https"を使用することもできます。 Zabbix でこれを動作させるには、conf/zabbix.conf.php に次の行を追加する必要があります。
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
その他のオプションはデフォルト値のままにしておきます。
2. 設定 -> API 接続 で、以下の値を設定します。
- SCIM ベース URL:
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON テンプレート:
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ベアラートークン:スーパー管理者権限を持つZabbix APIトークンを入力します。
有効をクリックして接続を有効にします。

3. プロビジョニングページで、プロビジョニングオプションを有効にします。:

4. パラメータページには、デフォルトのパラメータのリストが表示されます。:
- 'scimusername'がOneLoginのユーザーログイン情報(例:メールアドレス)と一致していることを確認します。
- 'グループ'パラメータの'ユーザープロビジョニングに含める'オプションにチェックを入れます。
- "+"をクリックして、SAMLアサーションとユーザープロビジョニングに必要なカスタムパラメータ(
user_name、user_lastname、user_email、user_mobileなど)を作成します。:

パラメータを追加する際は、SAMLアサーションに含める と ユーザープロビジョニングに含める の両方のオプションにチェックを入れてください。
- OneLoginのユーザーロールに一致する'group'パラメータを追加します。ユーザーロールは、セミコロン(;)で区切られた文字列として渡されます。 OneLogin のユーザーロールは、Zabbix でユーザーグループを作成する際に使用されます。:

パラメータのリストを確認します。:

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

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

| Zabbixのフィールド | 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 | Custom parameter | user_email |
| Group name attribute | Custom parameter | group |
| User name attribute | Custom parameter | user_name |
| User last name attribute | Custom parameter | 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 ユーザーリストにユーザーが表示されます。
