You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

14 OneLoginでのSAML設定

概要

このセクションでは、SAML 2.0認証を使用してOneLoginからZabbixへのシングルサインオンおよびユーザーのプロビジョニングを設定するためのガイドラインを提供します。

OneLoginの設定

アプリケーションの作成

1. OneLoginのアカウントにログインします。 テスト目的の場合は、OneLoginで無料の開発者アカウントを作成できます。

2. OneLoginのWebインターフェースで、Applications → Applicationsに移動します。

3. 「Add App」をクリックし、適切なアプリを検索します。 このページのガイドラインは、SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML)アプリの例に基づいています。

4. まず、アプリの表示名をカスタマイズすることをお勧めします。 アイコンやアプリの詳細を追加することもできます。 その後、Saveをクリックします。

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: SCIM経由でZabbixに渡したいすべてのカスタム属性(user_nameuser_lastnameuser_emailuser_mobileなど)を含める必要があります:
{
         "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がレスポンスで'name'属性('givenName'と'familyName'を含む)を受け取る必要があることに注意してください。これはサービスプロバイダーによって必須でなくても必要です。 したがって、アプリケーション設定部分のスキーマでこれを指定する必要があります。

  • 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は複数のロールを含む属性を送信する際にセミコロン;を区切り文字として使用するため、ロール名に;を含めないでください。

6. IdP証明書をダウンロードします。 以下のコマンドで644パーミッションを設定します:

chmod 644 idp.crt

Zabbixの設定

1. Zabbixで、SAML設定に移動し、OneLoginの設定に基づいて設定オプションを入力します。

Zabbixフィールド OneLoginの設定フィールド サンプル値
IdPエンティティID Issuer URL
(OneLoginのアプリケーションのSSOタブを参照)
SSOサービスURL SAML 2.0 Endpoint (HTTP)
(OneLoginのアプリケーションのSSOタブを参照)
SLOサービスURL SLO Endpoint (HTTP)
(OneLoginのアプリケーションのSSOタブを参照)
ユーザー名属性 カスタムパラメータ user_email
グループ名属性 カスタムパラメータ group
ユーザー名属性 カスタムパラメータ user_name
ユーザー姓属性 カスタムパラメータ user_lastname

ユーザーグループのマッピングも設定する必要があります。 メディアマッピングはオプションです。 更新をクリックしてこれらの設定を保存します。

2. OneLoginから提供されたBase64証明書を追加します。

zabbix.conf.phpで$SSO['CERT_STORAGE'] = 'database'が設定されている場合、SAML設定時にフロントエンドで証明書テキストを貼り付けるか、証明書ファイルをアップロードできます。ファイルシステム上にファイルは必要ありません。

zabbix.conf.phpで$SSO['CERT_STORAGE'] = 'file'が設定されている場合、証明書はファイルシステム上(デフォルトではui/conf/certsまたはzabbix.conf.phpで設定されたパス)に配置する必要があり、フロントエンドは証明書をデータベースに保存しません。 $SSO['CERT_STORAGE']が設定されていないかコメントアウトされている場合は、ファイルストレージが想定され、証明書はui/conf/certsから読み込まれます。

OneLoginで証明書をダウンロードするには、Applications -> SSO -> 現在の証明書のView detailsをクリックします。

3. 更新ボタンを押してこれらの設定を保存します。

SCIMユーザーのプロビジョニング

ユーザーのプロビジョニングを有効にすると、OneLoginでユーザーとそのロールを追加/更新し、それらを即座にZabbixにプロビジョニングすることが可能になります。

例えば、新しいユーザーを作成できます。

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

ユーザーを保存すると、Zabbixにプロビジョニングされます。 [Application] -> [Users]で、現在のアプリケーションユーザーのプロビジョニング状況を確認できます。

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