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のユーザーログイン情報(例:メールアドレス)と一致していることを確認します。
- 'group'パラメータの ユーザープロビジョニングに含める オプションにチェックを入れます。
- "+"をクリックして、SAMLアサーションとユーザープロビジョニングに必要なカスタムパラメータ(
user_name、user_lastname、user_email、user_mobileなど)を作成します。

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

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

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

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

| Zabbix フィールド | OneLogin のセットアップフィールド | サンプル値 |
|---|---|---|
| IdP エンティティ ID | 発行者 URL (OneLogin のアプリケーションの SSO タブを参照) |
|
| SSO サービス URL | SAML 2.0 エンドポイント (HTTP) (OneLogin のアプリケーションの SSO タブを参照) |
|
| SLOサービスURL | SLOエンドポイント(HTTP) (OneLoginのアプリケーションのSSOタブを参照) |
|
| ユーザー名属性 | カスタムパラメータ | user_email |
| グループ名属性 | カスタムパラメータ | group |
| ユーザー名属性 | カスタムパラメータ | user_name |
| ユーザーの姓属性 | カスタムパラメータ | user_lastname |
ユーザーグループのマッピングも設定する必要があります。メディアマッピングはオプションです。設定を保存するには、「更新」をクリックしてください。
2. OneLoginから提供された証明書をダウンロードし、Zabbixフロントエンドインストールのconf/certsにidp.crtとして配置します。
以下のコマンドを実行して、権限644を設定します。
chmod 644 idp.crt
OneLoginの証明書のダウンロードは、アプリケーション → SSO →現在の証明書の 詳細の表示をクリックすることでアクセスできます。
別の証明書名と場所を使用することもできます。その場合は、conf/zabbix.conf.php に次の行を追加してください。
$SSO['IDP_CERT'] = 'path/to/certname.crt';
SCIM ユーザープロビジョニング
ユーザープロビジョニングを有効にすると、OneLogin でユーザーとそのロールを追加/更新し、Zabbix にすぐにプロビジョニングできるようになります。
例えば、新しいユーザーを作成します。

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

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

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