管理 → 認証セクションでは、Zabbixおよび内部パスワード要件に対するグローバルユーザー認証方法を指定できます。使用可能な方法は、内部,HTTP,LDAPおよびSAML認証です。
デフォルトでは、Zabbixはすべてのユーザーに内部Zabbix認証を使用します。デフォルトの方法をシステム全体でLDAPに変更したり、特定のユーザーグループに対してのみLDAP認証を有効にしたりすることもできます。
LDAPをすべてのユーザーのデフォルトの認証方法として設定するには、LDAPタブに移動して認証パラメーターを構成してから、認証タブに戻り、デフォルト認証セレクターをLDAPに切り替えます。
認証方法はユーザーグループレベルで微調整できることに注意してください。 LDAP認証がグローバルに設定されている場合でも、一部のユーザーグループをZabbixで認証することもできます。これらのグループではフロントエンドアクセスを内部に設定する必要があります。逆に、内部認証をグローバルに使用する場合は、LDAP認証の詳細を指定して、フロントエンドアクセスがLDAPに設定されている特定のユーザーグループに使用できます。ユーザーが少なくともLDAP認証を使用している1つのユーザーグループに含まれている場合、このユーザーは内部認証方式を使用できません。
デフォルトの認証方法に加えてHTTPおよびSAML 2.0認証方法を使用できます。
認証タブでは、Zabbix内部ユーザーのカスタムパスワード要件を定義できます。
次のパスワードポリシーオプションを設定できます。
パラメータ | 説明 |
---|---|
最小パスワード長 | デフォルトではパスワードの最小長は8に設定されています。設定可能範囲:1〜70。 72文字を超えるパスワードは切り捨てられます。 |
パスワード必須項目 | 1つまたは複数のチェックボックスをオンにして、パスワードで指定した文字を使用するよう強制します。 -英字の大文字と小文字 -数字 -特殊記号 疑問符にカーソルを合わせると各オプションの文字リストを含むヒントを表示します。 |
推測されやすいパスワードの回避 | チェックボックスがオンの場合、パスワードは次の要件に基づいてチェックされます。 -ユーザーの苗字、名前、またはユーザー名を含まないこと -共通またはコンテキスト固有のパスワードの1つではないこと。 共通およびコンテキスト固有のパスワードのリストは、NCSCの"トップ100kパスワード"のリスト、SecListの"トップ1Mパスワード"のリスト、およびZabbixコンテキスト固有のパスワードのリストから自動的に生成されます。内部ユーザーは、このリストに含まれるパスワードを設定することはできません。このようなパスワードは、一般的に使用されているため、脆弱であると見なされるためです。 |
パスワードの複雑さの要件を変更しても、既存のユーザーパスワードには影響しませんが、既存のユーザーが管理 → ユーザーメニューからパスワードを変更する場合、新しいパスワードは現在の要件を満たす必要があります。要件のリストを含むヒントが、ユーザープロファイルおよびユーザー構成フォームのPasswordフィールドの横に表示されます。
HTTPまたはWebサーバーベースの認証(例:Basic認証、NTLM / Kerberos)を使用して、ユーザー名とパスワードを確認できます。ユーザーはZabbixにも存在する必要がありますが、そのZabbixパスワードは使用されないことに注意してください。
オンにする前に、Webサーバー認証が構成され、正しく機能していることを確認してください。
設定値:
パラメーター | 説明 |
---|---|
HTTP認証の有効化 | チェックボックスをオンにすると、HTTP認証が有効になります。 |
デフォルトのログイン画面 | 認証されていないユーザーをどの画面に誘導するかを指定します: Zabbixのログイン画面 - 標準のZabbixログインページ HTTPのログイン画面 - HTTPログインページ index_http.php ページに対してのみWebサーバーベースの認証を有効にすることをお勧めします。 デフォルトのログイン画面が'HTTPログインページ'に設定されている場合、Webサーバー認証モジュールが$_SERVER 変数に有効なユーザーログインを設定すると、ユーザーは自動的にログインします。サポートされている $_SERVER キーはPHP_AUTH_USER , REMOTE_USER ,AUTH_USER です。 |
ドメイン名の削除 | ユーザー名から削除する必要があるドメイン名のカンマ区切りのリスト。 例: comp,any - ユーザー名が'Admin@any','comp\Admin'の場合、ユーザーは'Admin'としてログインします。ユーザー名が'notacompany\Admin'の場合、ログインは拒否されます。 |
ログイン時に大文字小文字を区別 | チェックボックスをオフにすると、ユーザー名の大文字と小文字を区別したログインが無効になります。(デフォルトでは有効) 大文字と小文字を区別するログインを無効にすると、Zabbixに登録されたユーザーが'Admin'または'ADMIN'であっても、'admin'としてログインできます。 大文字と小文字を区別するログインが無効で、類似したユーザー名(例: Adminとadmin)が複数Zabbixのユーザーとして登録されている場合、これらのユーザーのログインは常に拒否され、次のエラー メッセージが表示されます: "認証に失敗しました:指定された資格情報はユニークではありません。" |
(HTTPログインフォームがデフォルトとして設定している)HTTP認証情報を使用してログインできず、401エラーが発生する内部ユーザーは、Basic認証ディレクティブに ErrorDocument 401/index.php?form=default
行を追加すると、通常のZabbixログイン画面にリダイレクトされます。
外部LDAP認証を使用して、ユーザー名とパスワードを確認できます。ユーザーは Zabbix にも存在している必要がありますが、Zabbix パスワードは使用されないことに注意してください。
Zabbix LDAP認証は、Microsoft Active Directoryおよび OpenLDAPで動作確認を行っています。
パラメータ設定:
パラメータ | 説明 |
---|---|
LDAP認証の有効化 | LDAP 認証を有効にするには、チェックボックスをオンにします。 |
LDAP ホスト | LDAP サーバーの名前。例: ldap://ldap.zabbix.com セキュアLDAPサーバーの場合は ldaps プロトコルを使用します。 ldaps://ldap.zabbix.com OpenLDAP 2.x.x 以降では、ldap://hostname:portまたはldaps://hostname:portという形式の完全なLDAP URIを使用します。 |
ポート | LDAP サーバーのポート。デフォルトは389です。 セキュアLDAP接続の場合、ポート番号は通常636です。 完全なLDAP URIを使用する場合は使用されません。 |
Base DN | アカウントを検索するためのベース パス: ou=Users、ou=system (OpenLDAP の場合)、 DC=company、DC=com (Microsoft Active Directory の場合) |
検索の属性 | 検索に使用されるLDAPアカウント属性: uid (OpenLDAP の場合)、 sAMAccountName (Microsoft Active Directory の場合) |
Bind DN | LDAP サーバーを介したバインドと検索のためのLDAPアカウント。例: uid=ldap_search,ou=system (OpenLDAP の場合)、 CN=ldap_search,OU=user_group,DC=company,DC=com (Microsoft Active Directory の場合) 匿名バインドもサポートされています。匿名バインドでは、ドメイン構成(ユーザー、コンピューター、サーバー、グループ、サービスなどの情報)が権限のないユーザーに公開される可能性があることに注意してください。セキュリティ上の理由から、LDAP ホストでの匿名バインドを無効にし、代わりに認証されたアクセスを使用してください。 |
ログイン時に大文字小文字を区別 | ユーザー名の大文字と小文字を区別するログインを無効にするには、チェックボックスをオフにします。(デフォルトでは有効) 大文字と小文字を区別するログインを無効にすると、Zabbixに登録されたユーザーが'Admin'または'ADMIN'であっても、'admin'としてログインできます。 大文字と小文字を区別するログインが無効で、類似したユーザー名(例: Adminとadmin)が複数Zabbixのユーザーとして登録されている場合、これらのユーザーのログインは常に拒否され、次のエラー メッセージが表示されます: "認証に失敗しました:指定された資格情報はユニークではありません。" |
Bind password | LDAP サーバーをバインドおよび検索するためのアカウントのLDAPパスワード |
認証のテスト | テスト用セクションのヘッダー |
ログイン | (現在Zabbixフロントエンドにログインしている)テストユーザーの名前。このユーザー名はLDAPサーバーに存在している必要があります。 Zabbixは、テストユーザーを認証できない場合はLDAP認証をアクティブ化しません。 |
ユーザーのパスワード | テストユーザーのLDAPパスワード。 |
証明書に問題がある場合、セキュアLDAP接続(ldaps)を機能させるには、/etc/openldap/ldap.conf構成ファイルにTLS_REQCERT allow
行を追加する必要があります。これにより、LDAPカタログへの接続のセキュリティが低下する可能性があります。
(Zabbix Webインタフェースへのログインに使用する)実際のユーザーアカウントを使用する代わりに、LDAPでの最小限の権限でLDAPサーバーを介してバインドと検索を実行するために、別の LDAPアカウント(Bind DN) を作成することをお勧めします。
このようなアプローチにより、セキュリティが強化され、ユーザーが LDAP サーバーで自分のパスワードを変更したときに Bind パスワード を変更する必要がなくなります。
上記の表では、ldap_search がアカウント名です。
SAML 2.0認証を使用して、Zabbixにサインインできます。ユーザーはZabbixに存在する必要がありますが、そのZabbixパスワードは使用されないことに注意してください。認証が成功すると、Zabbixはローカルユーザー名をSAMLによって返されたユーザー名属性と照合します。
SAML認証が有効になっている場合、ユーザーはローカルでログインするか、SAMLシングルサインオンを介してログインするかを選択できます。
SAML IDプロバイダーであるZabbix((onelogin.com, auth0.com,okta.com,など)を次の方法で設定する必要があります。
<path_to_zabbix_ui>/index_sso.php?acs
に設定する必要があります<path_to_zabbix_ui>/index_sso.php?sls
に設定する必要があります<path_to_zabbix_ui>
の例: <https://example.com/zabbix/ui>,<http://another.example.com/zabbix>,<http://><any\_public\_ip\_address>/zabbix
フロントエンドで SAML 認証を使用する場合は、php-openssl をインストールする必要があります。
SAML 認証を使用するには、Zabbix を次のように設定する必要があります:
1. zabbix.conf.phpでカスタム パスが指定されていない限り、秘密鍵と証明書は ui/conf/certs/ に保存する必要があります。
デフォルトでは、Zabbix は次の場所を検索します。
2. 最も重要な設定はすべて、Zabbix フロントエンドで構成できます。 ただし、設定ファイルで追加設定を指定することも可能です。
Zabbix webインターフェースで利用可能な設定パラメータ:
パラメータ | 説明 |
---|---|
SAML認証の有効化 | チェックボックスをマークして、SAML 認証を有効にします。 |
IdPエンティティID | SAML ID プロバイダーのユニーク識別子。 |
SSOサービスURL | ログイン時にユーザーがリダイレクトされる URL。 |
SLOサービスURL | ログアウト時にユーザーがリダイレクトされる URL。 空のままにすると、SLO サービスは使用されません。 |
ユーザー名の属性 | Zabbix へのログイン時にユーザー名として使用される SAML 属性。 サポートされている値のリストは ID プロバイダーによって決まります。 例: uid userprincipalname samaccountname username userusername urn:oid:0.9.2342.19200300.100.1.1 urn:oid:1.3.6.1.4.1.5923.1.1.1.13 <urn:oid:0.9 .2342.19200300.100.1.44> |
SPのエンティティID | SAML サービス プロバイダーのユニーク識別子。 |
SPのNameIDフォーマット | 使用する名前識別子の形式を定義します。 例: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent urn:oasis:names:tc:SAML:2.0:nameid-format:transient urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos urn:oasis:names:tc:SAML:2.0:nameid-format:entity |
サイン | チェックボックスをマークして、SAML 署名を有効にする必要があるエンティティを選択します。 メッセージ アサーション AuthNリクエスト ログアウトリクエスト ログアウトレスポンス |
暗号化 | チェックボックスをマークして、SAML 暗号化を有効にするエンティティを選択します: アサーション Name ID |
ログイン時に大文字小文字を区別 | ユーザー名の大文字と小文字を区別するログインを無効にするには、チェックボックスをオフにします。(デフォルトでは有効) 大文字と小文字を区別するログインを無効にすると、Zabbixに登録されたユーザーが'Admin'または'ADMIN'であっても、'admin'としてログインできます。 大文字と小文字を区別するログインが無効で、類似したユーザー名(例: Adminとadmin)が複数Zabbixのユーザーとして登録されている場合、これらのユーザーのログインは常に拒否され、次のエラー メッセージが表示されます: "認証に失敗しました:指定された資格情報はユニークではありません。" |
追加のSAMLパラメーターは、Zabbixフロントエンド設定ファイル(zabbix.conf.php)で設定できます。
ZabbixはOneLoginのSAML PHPToolkitライブラリ(バージョン3.4.1)を使用します。$SSO['SETTINGS'] セクションの構造は、ライブラリで使用される構造と同様である必要があります。設定オプションの説明については、公式ライブラリドキュメントを参照してください。
$SSO['SETTINGS']の一部として設定できるのは、次のオプションです。
他のすべてのオプションはデータベースから取得され、オーバーライドすることはできません。 debugオプションは無視されます。
さらに、Zabbix UIがプロキシまたはロードバランサーの背後にある場合は、カスタムのuse_proxy_headersオプションを使用できます。
ロードバランサーを使用してZabbixインスタンスに接続する場合に、ロードバランサーはTLS/SSLを使用し、Zabbixは使用しない場合は、次のように「baseurl」「strict」および「use_proxy_headers」パラメーターを指定する必要があります。
$SSO['SETTINGS'] = [
'strict' => false,
'baseurl' => 'https://zabbix.example.com/zabbix/',
'use_proxy_headers' => true
];
設定例:
$SSO['SETTINGS'] = [
'security' => [
'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
// ...
],
// ...
];
Zabbix Webインターフェースの設定ファイル(zabbix.conf.php) を使用して、Kerberos認証とADFSによるSSOを設定できます:
$SSO['SETTINGS'] = [
'security' => [
'requestedAuthnContext' => [
'urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos',
],
'requestedAuthnContextComparison' => 'exact'
]
];
この場合、SAML 構成の SP 名 ID フィールドで次のように設定します: