[comment]: # translation:outdated

[comment]: # ({28802075-11206317})
# 11 Microsoft Entra IDを使用したSAMLの設定

[comment]: # ({/28802075-11206317})

[comment]: # ({375b74d6-d1a8a2fc})

#### 概要

このセクションでは、SAML 2.0 認証を使用して Microsoft Entra ID（旧 Microsoft Azure Active Directory）から Zabbix へのシングルサインオンを設定するためのガイドラインを示します。

シングルサインオンが機能するには、ユーザー名が Zabbix に存在している必要がありますが、Zabbix パスワードは使用されません。認証が成功すると、Zabbix はローカルのユーザー名と SAML によって返されるユーザー名属性を照合します。

[comment]: # ({/375b74d6-d1a8a2fc})

[comment]: # ({b4d9f9a1-ed685e3c})
#### Microsoft Entra IDの設定

[comment]: # ({/b4d9f9a1-ed685e3c})

[comment]: # ({42f21e5b-440025da})

##### アプリケーションの作成

1\. [Microsoft Entra ID](https://entra.microsoft.com) で Microsoft Entra 管理センターにログインします。テスト目的で、Microsoft Entra ID で無料トライアルアカウントを作成できます。

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

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

![](../../../../assets/en/manual/appendix/install/entra_create_app.png){width="550"}

[comment]: # ({/42f21e5b-440025da})

[comment]: # ({86fef1ed-82aca309})

##### シングルサインオンの設定

1\. アプリケーションページで、*シングルサインオンの設定*に移動し、*開始* をクリックします。次に、 *SAML* を選択します。

2\. *基本的なSAML構成*を編集します。

- *識別子（エンティティID）*に、Microsoft Entra IDでアプリを識別するための一意の名前を設定します（例：`zabbix`）
- *応答URL（アサーションコンシューマーサービスURL）*に、Zabbixシングルサインオンエンドポイントを設定します（`https://<path-to-zabbix-ui>/index_sso.php?acs`）

![](../../../../assets/en/manual/appendix/install/entra_basic_saml.png){width="600"}

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

```
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
```

3\. *Attributes & Claims* を編集します。Zabbix に渡すユーザー名属性（この場合は `user_email`）を追加する必要があります。
\
属性名は任意です。異なる属性名を使用できますが、Zabbix SAML 設定の対応するフィールド値と一致する必要があります。

- *Add new claims* をクリックして属性を追加します。

![](../../../../assets/en/manual/appendix/install/azure_claim.png)

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

以下のコマンドを実行して、権限を644に設定します。

chmod 644 entra.cer

`conf/zabbix.conf.php` に以下の行が含まれていることを確認してください。

```
$SSO['IDP_CERT'] = 'conf/certs/entra.cer';
```

5\. Entra ID の *Set up <your app name>* の値を使用して、Zabbix SAML 認証を設定します（次のセクションを参照）

![](../../../../assets/en/manual/appendix/install/entra_sso_settings.png){width="550"}

[comment]: # ({/86fef1ed-82aca309})

[comment]: # ({f4396adc-b1c1c877})
#### Zabbix の設定

1\. Zabbix で [SAML 設定](/manual/web_interface/frontend_sections/users/authentication/saml#setting-up-zabbix) に移動し、Entra ID の設定に基づいて設定オプションを入力します。

![](../../../../assets/en/manual/appendix/install/entra_zabbix_conf.png){width="600"}

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

*更新*をクリックして設定を保存します。

[comment]: # ({/f4396adc-b1c1c877})

[comment]: # ({c0cb36b9-389c9019})

#### 認証リクエストの署名

Entra ID を構成して、署名された認証リクエストの [署名を検証](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/howto-enforce-signed-saml-authentication) することができます。

これを実行するには、公開鍵と秘密鍵を作成します。

```bash
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
```

権限を割り当てます。

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

Zabbix フロントエンドの設定に以下のコードを追加します。

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

[comment]: # ({/c0cb36b9-389c9019})

[comment]: # ({612478ad-95037e87})

#### トラブルシューティング

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

この場合、認証の問題を回避するには、Zabbixフロントエンド設定ファイル（*zabbix.conf.php*）で`requestedAuthnContext`を"false"に設定する必要があるかもしれません。

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

[comment]: # ({/612478ad-95037e87})
