4 MFA
概要
多要素認証(MFA)を使用してZabbixにサインインでき、ユーザー名とパスワードだけの場合に比べて、追加のセキュリティ層を提供します。
MFAでは、ユーザーがZabbixに存在している必要があり、ログイン時にZabbixの認証情報を入力し、さらに別の手段で本人確認を行う必要があります。通常は、ユーザーのスマートフォン上の認証アプリで生成されたコードを使用します。
複数のMFA方式が利用可能であり、ユーザーは自身のセキュリティ要件や好みに最も適したオプションを選択できます。
これらの方式には、Time-Based One-Time Password(TOTP)とDuo Universal Promptがあります。
設定

設定パラメータ:
| Parameter | Description |
|---|---|
| Enable multi-factor authentication | チェックボックスをオンにして、多要素認証を有効にします。 |
| Methods | Add をクリックしてMFA方式を設定します(以下の方式の設定を参照)。 |
メソッドの設定

メソッド設定パラメータ:
| パラメータ | 説明 |
|---|---|
| タイプ | MFAメソッドのタイプを選択します: TOTP - 認証アプリを使用して時間ベースのワンタイムパスワードを生成します。 Duo Universal Prompt - Duo 認証サービスを使用して多要素認証を提供します。 |
| 名前 | 認証アプリ内ですべてのMFAユーザーにアカウント名として表示される名前を入力します(例: "Zabbix")。 |
| ハッシュ関数 | TOTPコードの生成に使用するハッシュ関数(SHA-1、SHA-256、またはSHA-512)を選択します。 このパラメータは、MFAメソッドのタイプが "TOTP" に設定されている場合に使用できます。 現在、多くのアプリケーションはこれらの関数をサポートしていないため、SHA-256 または SHA-512 を選択すると互換性が大幅に制限される可能性があることに注意してください。 |
| コード長 | 認証コードの長さ(6 または 8)を選択します。 このパラメータは、MFAメソッドのタイプが "TOTP" に設定されている場合に使用できます。 |
| APIホスト名 | Duo 認証サービスによって提供されたAPIホスト名を入力します。 このパラメータは、MFAメソッドのタイプが "Duo Universal Prompt" に設定されている場合に使用できます。 |
| クライアントID | Duo 認証サービスによって提供されたクライアントIDを入力します。 このパラメータは、MFAメソッドのタイプが "Duo Universal Prompt" に設定されている場合に使用できます。 |
| クライアントシークレット | Duo 認証サービスによって提供されたクライアントシークレットを入力します。 このパラメータは、MFAメソッドのタイプが "Duo Universal Prompt" に設定されている場合に使用できます。 |
設定例
このセクションでは、Time-Based One-Time Password(TOTP)および Duo Universal Prompt を使用してMFAを設定する例を示します。
TOTP
TOTP では、ユーザーは認証アプリ(たとえば Google Authenticator アプリ)を使用して本人確認を行う必要があります。
1. Zabbix の Users → Authentication で MFA 設定を開き、多要素認証を有効にします。
2. 次の設定で新しい MFA 方式 を追加します。
- タイプ: TOTP
- 名前: Zabbix TOTP
- ハッシュ関数: SHA-1
- コード長: 6
3. Add ボタンをクリックし、次に Update ボタンをクリックします。
4. Users → User groups に移動し、次の設定で新しいユーザーグループを作成します。
- グループ名: TOTP group
- ユーザー: Admin
- 多要素認証: Default(または、デフォルトとして設定されていない場合は「Zabbix TOTP」)
5. Zabbix からログアウトし、認証情報を使用して再度ログインします。
ログインに成功すると、MFA への登録を求められ、QR コードとシークレットキーが表示されます。

6. QR コードをスキャンするか、シークレットキーを Google Authenticator アプリに入力します。
アプリが確認コードを生成するので、それを入力してログイン処理を完了します。
7. 次回以降のログインでは、Google Authenticator アプリから確認コードを取得し、ログイン時に入力します。
Duo Universal Prompt
Duo Universal Prompt では、ユーザーは Duo Mobile 認証アプリを使用して本人確認を行う必要があります。
Duo Universal Prompt MFA 方式を使用するには、php-curl 拡張機能のインストール、HTTPS 経由での Zabbix へのアクセス、および Duo サーバーへのアウトバウンド接続の許可が必要です。 さらに、Webサーバーで Content Security Policy (CSP) を有効にしている場合 は、仮想ホストの設定ファイルの CSP ディレクティブに "duo.com" を追加してください。
1. Duo Signup で無料の Duo 管理者アカウントを登録します。
2. Duo Admin Panel を開き、Applications → Protect an Application に移動して、Web SDK アプリケーションを検索し、Protect をクリックします。
3. Zabbix で MFA 方式を設定するために必要な認証情報(Client ID、Client secret、API hostname)を控えます。
4. Zabbix の Users → Authentication にある MFA 設定に移動し、多要素認証を有効にします。
5. 次の設定で新しい MFA 方式 を追加します。
- Type: Duo Universal Prompt
- Name: Zabbix Duo
- API hostname: (Duo の API hostname を使用)
- Client ID: (Duo の Client ID を使用)
- Client secret: (Duo の Client secret を使用)
6. Add ボタンをクリックし、次に Update ボタンをクリックします。
7. Users → User groups に移動し、次の設定で新しいユーザーグループを作成します。
- Group name: Duo group
- Users: Admin
- Multi-factor authentication: Default(または、デフォルトに設定されていない場合は "Zabbix Duo")
8. Zabbix からログアウトし、認証情報を使用して再度ログインします。 ログインに成功すると、MFA への登録を求められ、Duo にリダイレクトされます。 Duo の設定を完了し、ログインするためにスマートフォンの Duo アプリでユーザー確認を行います。
9. 以降のログインでは、Duo アプリが提供する適切な MFA 方式(確認コードの取得、プッシュ通知への応答、またはハードキーの使用など)を使用し、ログイン時に必要な情報を入力します。