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.

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
           ]
       ];