これは開発版のドキュメントを表示しています。内容が不完全な場合があります。
このページには自動翻訳されたコンテンツが含まれています。 誤りを見つけた場合は、その箇所を選択して Ctrl+Enter を押し、編集者に報告してください。

12 Microsoft Entra ID での SAML 設定

概要

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

Microsoft Entra IDの設定

アプリケーションの作成

1. Microsoft Entra IDでMicrosoft Entra管理センターにログインします。 テスト目的の場合は、Microsoft Entra IDで無料トライアルアカウントを作成できます。

2. Microsoft Entra管理センターで、アプリケーション -> エンタープライズアプリケーション -> 新しいアプリケーション -> 独自のアプリケーションを作成 を選択します。

3. アプリケーション名を追加し、他のアプリケーションを統合... オプションを選択します。 その後、作成をクリックします。

シングルサインオンの設定
  1. アプリケーションページで、Set up single sign on に移動し、Get started をクリックします。 次に SAML を選択します。

  2. Basic SAML Configuration を編集します:

  • Identifier (Entity ID) には、Microsoft Entra ID でアプリを識別するための一意の名前(例:zabbix)を設定します。
  • Reply URL (Assertion Consumer Service URL) には、Zabbix のシングルサインオンエンドポイント https://<path-to-zabbix-ui>/index_sso.php?acs を設定します。

"https" が必須であることに注意してください。 Zabbix でこれを機能させるには、conf/zabbix.conf.php に以下の行を追加する必要があります。

$SSO['SETTINGS'] = ['use_proxy_headers' => true];
  1. Attributes & Claims を編集します。 Zabbix に渡したいすべての属性(user_name, user_lastname, user_email, user_mobile, groups)を追加する必要があります。

属性名は任意です。 異なる属性名を使用することもできますが、Zabbix の SAML 設定の該当フィールド値と一致している必要があります。

  • Add new claim をクリックして属性を追加します。

  • Add a group claim をクリックして、グループを Zabbix に渡すための属性を追加します。

このクレームでは、選択した Source attribute によってグループ名(グループIDではなく)が Zabbix に渡されることが重要です。 そうでない場合、JITユーザープロビジョニングが正しく機能しません。

  1. SAML Certificates で、Entra ID から提供されたBase64証明書をダウンロードし、Zabbixフロントエンドインストールの conf/certs に配置します。

以下のコマンドで644パーミッションを設定します。

chmod 644 entra.cer
  1. Entra ID の Set up <your app name> の値を使用して、Zabbix の SAML認証を設定します(次のセクションを参照)。

Zabbixの設定

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

Zabbixフィールド Entra IDの設定フィールド サンプル値
IdPエンティティID Microsoft Entra識別子
SSOサービスURL ログインURL
SLOサービスURL ログアウトURL
SPエンティティID 識別子(エンティティID)
ユーザー名属性 カスタム属性(クレーム) user_email
グループ名属性 カスタム属性(クレーム) groups
ユーザー名属性 カスタム属性(クレーム) user_name
ユーザー姓属性 カスタム属性(クレーム) user_lastname

2. Entra IDから提供された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から読み込まれます。

ユーザーグループのマッピングも設定する必要があります。
メディアのマッピングはオプションです。

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

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

1. Entra IDアプリケーションページのメインメニューから、プロビジョニングページを開きます。 Get startedをクリックし、自動プロビジョニングモードを選択します:

  • Tenant URLには、次の値を設定します: https://<path-to-zabbix-ui>/api_scim.php
  • Secret tokenには、スーパ管理者権限を持つZabbix APIトークンを入力します。
  • Test connectionをクリックして、接続が確立されているか確認します。

2. これで、SCIMでZabbixに渡されるすべての属性を追加できます。 そのためには、Mappingsをクリックし、Provision Microsoft Entra ID Usersをクリックします。

属性マッピングリストの一番下でShow advanced optionsを有効にし、Edit attribute list for customappssoをクリックします。

属性リストの一番下に、タイプ「String」で独自の属性を追加します:

リストを保存します。

3. 追加した属性のマッピングを追加できます。 属性マッピングリストの一番下でAdd New Mappingをクリックし、以下のようにマッピングを作成します:

すべてのマッピングを追加したら、マッピングリストを保存します。

4. Zabbixへのユーザープロビジョニングの前提条件として、Entra IDでユーザーとグループが設定されている必要があります。

そのためには、Microsoft Entra admin centerに移動し、該当するユーザーおよびグループページでユーザー/グループを追加します。

5. Entra IDでユーザーとグループが作成されたら、アプリケーションのUsers and groupsメニューに移動し、アプリに追加できます。

6. アプリのProvisioningメニューに移動し、Start provisioningをクリックして、ユーザーをZabbixにプロビジョニングします。

Entra IDのUsers PATCHリクエストはメディアの変更をサポートしていないことに注意してください。

認証リクエストの署名

Entra IDを構成して、署名付き認証リクエストの署名を検証することができます。

これを機能させるには、公開鍵/秘密鍵を作成します:

openssl req -x509 -newkey rsa:4096 -keyout /usr/share/zabbix/conf/certs/request-sign.key -out /usr/share/zabbix/conf/certs/request-sign.pem -sha256 -days 1825 -nodes

権限を割り当てます:

chown apache /usr/share/zabbix/conf/certs/request-sign.key 
       chmod 400 /usr/share/zabbix/conf/certs/request-sign.key

Zabbixフロントエンドの設定を更新し、以下を追加します:

$SSO['SP_KEY'] = 'conf/certs/request-sign.key';
       $SSO['SP_CERT'] = 'conf/certs/request-sign.crt';

トラブルシューティング

ユーザーがSAML経由でZabbixにログインしようとした際、すでにMicroSoft Edgeプロファイルでログインしている場合、MicroSoft Edgeブラウザで認証の問題が発生することがあります。 この問題の兆候として、ユーザーがMicroSoft Edgeのプライベートモードを使用してZabbixにログインできる場合があります。

この場合の認証問題を回避するには、Zabbixフロントエンドの設定ファイル(zabbix.conf.php)でrequestedAuthnContextを"false"に設定する必要がある場合があります。

$SSO['SETTINGS'] = [
           'security' => [
               'requestedAuthnContext' => false
           ]
       ];