Zabbixへのサインインには、多要素認証(MFA)を使用でき、ユーザー名とパスワードだけでなく、追加のセキュリティ層を提供します。
MFAを使用する場合、ユーザーはZabbixに存在し、ログイン時にZabbixの認証情報を提供し、さらに通常はユーザーの携帯電話の認証アプリによって生成されたコードなど、他の手段で本人確認を行う必要があります。
複数のMFA方式が利用可能であり、ユーザーは自分のセキュリティ要件や好みに最適なオプションを選択できます。 これらの方式には、時刻ベースのワンタイムパスワード(TOTP)とDuo Universal Promptがあります。

設定パラメータ:
| パラメータ | 説明 |
|---|---|
| 多要素認証を有効にする | チェックボックスをオンにすると多要素認証が有効になります。 |
| メソッド | 追加をクリックして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の場合、ユーザーは認証アプリ(例:Google Authenticatorアプリ)を使用して本人確認を行う必要があります。
1. ZabbixのMFA設定(ユーザー → 認証)に移動し、多要素認証を有効にします。
2. 次の設定で新しいMFAメソッドを追加します。
3. 追加ボタンをクリックし、続いて更新ボタンをクリックします。
4. ユーザー → ユーザーグループに移動し、次の設定で新しいユーザーグループを作成します。
5. Zabbixからログアウトし、再度認証情報を使用してログインします。 ログインに成功すると、MFAへの登録を求められ、QRコードとシークレットキーが表示されます。

6. QRコードをスキャンするか、シークレットキーをGoogle Authenticatorアプリに入力します。 アプリが認証コードを生成するので、それを入力してログインプロセスを完了します。
7. 次回以降のログイン時には、Google Authenticatorアプリから認証コードを取得し、ログイン時に入力します。
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管理パネルを開き、Applications → Protect an Applicationに移動し、Web SDKアプリケーションを検索してProtectをクリックします。
3. ZabbixでMFA方式を設定するために必要な認証情報(Client ID、Client secret、API hostname)をメモします。
4. Zabbixのユーザー → 認証のMFA設定に移動し、多要素認証を有効にします。
5. 以下の設定で新しいMFA方式を追加します。
6. 追加ボタンをクリックし、続けて更新ボタンをクリックします。
7. ユーザー → ユーザーグループに移動し、以下の設定で新しいユーザーグループを作成します。
8. Zabbixからログアウトし、認証情報を使用して再度ログインします。 ログインに成功すると、MFAへの登録を求められ、Duoにリダイレクトされます。 Duoのセットアップを完了し、電話のDuoアプリでユーザーを認証してログインします。
9. 以降のログインでは、Duoアプリで提供される適切なMFA方式(認証コードの取得、プッシュ通知への応答、ハードキーの使用など)を使用し、ログイン時に必要な情報を入力します。