This is a translation of the original English documentation page. Help us make it better.

12 Oktaを使用したSAMLセットアップ

このセクションでは、SAML 2.0認証とZabbixのユーザープロビジョニングを有効にするためのOkta設定のガイドラインを示します。

Oktaの設定

1. https://okta.comにアクセスして、アカウントに登録またはサインインします。

2. OktaWebインターフェースでアプリケーション→アプリケーションに移動し、[アプリケーションの追加]ボタン()を押します。

3. 「新しいアプリの作成」ボタン() を押し、ポップアップウィンドウでPlatform: Web, Sign on method:SAML2.0と選択して「作成」ボタンを押します。

4. 必要であれば[一般設定]タブ(最初に表示されるタブ)のフィールドに入力し、[次へ]を押します。

5. Configure SAMLタブで以下に示す値を入力し[次へ]を押します。

  • GENERAL セクション:
    • Single sign on URL:https://<your-zabbix-url>/ui/index_sso.php?acs
      Use this for Recipient URL and Destination URLのチェックボックスにマーク
    • Audience URI (SP Entity ID): zabbix
      この値は、SAMLアサーション内で一意のサービスプロバイダー識別子として使用されることに注意してください(一致しない場合、操作は拒否されます)。このフィールドには、URLまたは任意のデータ文字列を指定できます。
    • Default RelayState:
      このフィールドは空白のままにします。カスタムリダイレクトが必要な場合は、Zabbixの[管理]→[ユーザー]設定で追加できます。
    • 必要であれば、他のフィールドも入力します。

暗号化接続の使用を計画している場合は、プライベートおよびパブリック暗号化証明書を生成してから、パブリック証明書をOktaにアップロードします。 Assertion Encryptionが暗号化に設定されている場合、証明書のアップロードフォームが表示されます(このパラメーターを見つけるにはShow Advanced Settingsをクリックします)

  • ATTRIBUTE STATEMENTS(OPTIONAL)セクションで、次の属性ステートメントを追加します。
    • Name: usrEmail
    • Name format: Unspecified
    • Value: user.email

6. 次のタブで"I'm a software vendor. I'd like to integrate my app with Okta"を選択し「完了」を押します。

7. 次にAssignmentsタブに移動して"Assign"ボタンを押し、ドロップダウンからAssign to Peopleを選択します。

8. 表示されるポップアップで、作成したアプリをSAML 2.0を使用してZabbixで認証するユーザーに割り当て、"Save and go back"を押します。

9. Sign Onタブに移動し、"View Setup Instructions"ボタンを押します。セットアップ手順は新しいタブに表示されます。Zabbixを設定している間、このタブを開いたままにしてください。

Zabbixの設定

1. Zabbixで[管理]→[認証]セクションのSAML設定に移動し、Oktaのセットアップ手順から対応するフィールドに情報をコピーします。

  • Identity Provider Single Sign-On URL → SSO service URL
  • Identity Provider Issuer → IdP entity ID
  • Username attribute → Attribute name (usrEmail)
  • SP entity ID → Audience URI

2. Oktaのセットアップ手順ページに記載されている証明書をidp.crtとしてui/conf/certsフォルダーにダウンロードし、次のコマンドを実行してアクセス許可を644に設定します。

chmod 644 idp.crt

古いバージョンからZabbix5.0にアップグレードした場合は、以下をzabbix.conf.phpファイル(//ui//conf//ディレクトリにあります)に手動で追加する必要があることに注意してください。

// Used for SAML authentication.
       $SSO['SP_KEY'] = 'conf/certs/sp.key'; // Path to your private key.
       $SSO['SP_CERT'] = 'conf/certs/sp.crt'; // Path to your public key.
       $SSO['IDP_CERT'] = 'conf/certs/idp.crt'; // Path to IdP public key.
       $SSO['SETTINGS'] = []; // Additional settings

詳細については、一般的なSAML認証の手順を参照してください。

3. Assertion EncryptionがOktaでEncryptedに設定されている場合、ZabbixでもEncryptパラメータのチェックボックス「Assertions」をマークする必要があります。

4. "更新"ボタンを押して設定を保存します。

SAMLでサインインするには、Zabbixのユーザー名がOktaの電子メールと一致している必要があります。これらの設定は、ZabbixWebインターフェースの管理→ユーザーセクションで変更できます。

SCIM プロビジョニング

1. SCIM プロビジョニングを有効にするには、Okta でアプリケーションの"一般"→"アプリ設定"に移動します。

SCIM プロビジョニングを有効にする チェックボックスをオンにします。すると、新しい プロビジョニング タブが表示されます。

2. "プロビジョニング"タブに移動し、SCIM 接続を設定します。

  • SCIM コネクタのベース URL に Zabbix フロントエンドへのパスを指定し、api_scim.php を追加します。例: https://<your-zabbix-url>/zabbix/api_scim.php
  • ユーザー固有の識別子フィールド: email
  • 認証モード: HTTP ヘッダー
  • 承認 に、スーパー管理者権限を持つ有効な API トークンを入力します。

認証に関する問題が発生している場合は、承認ヘッダー転送 を参照してください。

3. コネクタ設定のテスト をクリックして接続をテストしてください。すべて正しければ成功メッセージが表示されます。

4. "プロビジョニング"→"アプリへ"で、以下のチェックボックスにチェックを入れてください。

  • ユーザーの作成
  • ユーザー属性の更新
  • ユーザーの無効化

これにより、これらのリクエストタイプがZabbixに送信されるようになります。

5. SAMLで定義されているすべての属性がSCIMでも定義されていることを確認してください。"プロビジョニング"→"アプリへ"でプロファイルエディタへ移動 をクリックすると、アプリのプロファイルエディタにアクセスできます。

属性の追加 をクリックします。表示名変数名外部名 にSAML属性名(例:user_name)を入力してください。

外部名前空間は、ユーザースキーマと同じである必要があります: urn:ietf:params:scim:schemas:core:2.0:User

6. アプリケーションの"プロビジョニング"→"アプリケーションへ"→"属性マッピング"に移動します。下部にある"マッピングされていない属性を表示"をクリックします。新しく追加された属性が表示されます。

7. 追加した各属性をマッピングします。

8. "割り当て"タブでユーザーを追加します。ユーザーは、事前に"ディレクトリ"→"ユーザー"に追加しておく必要があります。これらの割り当てはすべて、Zabbixへのリクエストとして送信されます。

9. "プッシュグループ"タブでグループを追加します。Zabbix SAML設定のユーザーグループマッピングパターンが、ここで指定したグループと一致する必要があります。一致しない場合、Zabbixでユーザーを作成できません。

グループメンバーに関する情報は、変更が行われるたびに送信されます。