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_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 がレスポンス内で givenNamefamilyName を含む name 属性を受け取る必要がある点に注意してください。これは、サービスプロバイダー側で必須でない場合でも必要です。そのため、アプリケーション設定部分のスキーマでこれを指定する必要があります。

  • SCIM Bearer Token: Super admin 権限を持つ Zabbix API トークンを入力します。

接続を有効化するには、Enable をクリックします。

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

4. Parameters ページには、デフォルトパラメータの一覧が表示されます。

  • 'scimusername' が OneLogin のユーザーログイン値(例: メールアドレス)と一致していることを確認してください。
  • 'Groups' パラメータについて、Include in User Provisioning オプションを有効にしてください。
  • "+" をクリックして、user_nameuser_lastnameuser_emailuser_mobile など、SAML アサーションおよびユーザープロビジョニングに必要なカスタムパラメータを作成します。

パラメータを追加する際は、Include in SAML assertionInclude 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/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 ユーザーリストにユーザーが表示されます。