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