このセクションでは、SAML 2.0認証を使用してMicrosoft Entra ID(旧Microsoft Azure Active Directory)からZabbixへのシングルサインオンおよびユーザーのプロビジョニングを設定するためのガイドラインを提供します。
1. Microsoft Entra IDでMicrosoft Entra管理センターにログインします。 テスト目的の場合は、Microsoft Entra IDで無料トライアルアカウントを作成できます。
2. Microsoft Entra管理センターで、アプリケーション -> エンタープライズアプリケーション -> 新しいアプリケーション -> 独自のアプリケーションを作成 を選択します。
3. アプリケーション名を追加し、他のアプリケーションを統合... オプションを選択します。 その後、作成をクリックします。

アプリケーションページで、Set up single sign on に移動し、Get started をクリックします。 次に SAML を選択します。
Basic SAML Configuration を編集します:
zabbix)を設定します。https://<path-to-zabbix-ui>/index_sso.php?acs を設定します。
"https" が必須であることに注意してください。 Zabbix でこれを機能させるには、conf/zabbix.conf.php に以下の行を追加する必要があります。
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
属性名は任意です。 異なる属性名を使用することもできますが、Zabbix の SAML 設定の該当フィールド値と一致している必要があります。


このクレームでは、選択した Source attribute によってグループ名(グループIDではなく)が Zabbix に渡されることが重要です。 そうでない場合、JITユーザープロビジョニングが正しく機能しません。
conf/certs に配置します。以下のコマンドで644パーミッションを設定します。

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. 更新ボタンを押してこれらの設定を保存します。
1. Entra IDアプリケーションページのメインメニューから、プロビジョニングページを開きます。 Get startedをクリックし、自動プロビジョニングモードを選択します:
https://<path-to-zabbix-ui>/api_scim.php
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.keyZabbixフロントエンドの設定を更新し、以下を追加します:
ユーザーがSAML経由でZabbixにログインしようとした際、すでにMicroSoft Edgeプロファイルでログインしている場合、MicroSoft Edgeブラウザで認証の問題が発生することがあります。 この問題の兆候として、ユーザーがMicroSoft Edgeのプライベートモードを使用してZabbixにログインできる場合があります。
この場合の認証問題を回避するには、Zabbixフロントエンドの設定ファイル(zabbix.conf.php)でrequestedAuthnContextを"false"に設定する必要がある場合があります。