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_nameuser_lastnameuser_emailuser_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_nameuser_lastnameuser_emailuser_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 ユーザーリストにユーザーが表示されます。