管理 → 認証セクションでは、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'の場合、ログインは拒否されます。 |
ログイン時に大文字小文字を区別 | ユーザー名の大文字と小文字を区別するログイン(デフォルトで有効)を無効にするには、チェックボックスをオフにします。 例:大文字と小文字を区別するログインを無効にすると、ユーザーが'Admin'でログインしたの場合でも'ADMIN'ユーザーでログインします。 注大文字と小文字を区別するログインを無効にすると、Zabbixデータベースに同様のユーザー名を持つ複数のユーザーが存在する場合 (例:Admin, admin)、ログインが拒否されることに注意してください。 |
Webサーバー認証の場合、すべてのユーザー(フロントエンドアクセス がLDAP/Internalに設定されている場合でも)は、ZabbixではなくWebサーバーによって認証されます。
HTTP資格情報(HTTPログインフォームがデフォルトとして設定されている)を使用してログインできず、401エラーが発生する内部ユーザーは、Basic認証ディレクティブに ErrorDocument 401/index.php?form=default
行を追加すると、通常のZabbixログイン画面にリダイレクトされます。
外部LDAP認証を使用して、ユーザー名とパスワードを確認できます。ユーザーはZabbixにも存在する必要がありますが、そのZabbixパスワードは使用されないことに注意してください。
Zabbix LDAP認証は、少なくともMicrosoft Active DirectoryとOpen LDAPで機能します。
設定値:
パラメータ | 説明 |
---|---|
LDAP認証の有効化 | チェックボックスをオンにすると、LDAP認証が有効になります。 |
LDAPホスト | LDAPサーバーの名前。例:ldap://ldap.zabbix.com 安全なLDAPサーバーの場合は、ldapsプロトコルを使用します。 ldaps://ldap.zabbix.com OpenLDAP 2.x.x以降では、フルldap:// hostname:portまたはldaps:// hostname:port形式のLDAPURIを使用できます。 |
ポート | LDAPサーバーのポート。デフォルトは389です。 安全なLDAP接続の場合、ポート番号は通常636です。 完全なLDAPURIを使用する場合は使用されません。 |
Base DN | 検索アカウントへの基本パス: ou=Users、ou=system(Open LDAPの場合)、 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の場合) 匿名バインディングもサポートされています。 |
ログイン時に大文字小文字を区別 | ユーザー名の大文字と小文字を区別するログイン(デフォルトで有効)を無効にするには、チェックボックスをオフにします。 例:大文字と小文字を区別するログインを無効にすると、ユーザーが「Admin」でログインしたの場合でも「ADMIN」ユーザーでログインします。 注大文字と小文字を区別するログインを無効にすると、Zabbixデータベースに同様のユーザー名を持つ複数のユーザーが存在する場合 (例:Admin, admin)、ログインが拒否されることに注意してください。 |
Bind password | LDAPサーバーをバインドおよび検索するためのアカウントのLDAPパスワード。 |
認証のテスト | テスト用セクションのヘッダー |
ログイン | テストユーザー(デフォルトでは現在ログイン中のユーザー)の名前。このユーザー名はLDAPサーバーに存在する必要があります。 Zabbixは、テストユーザーを認証できない場合、LDAP認証をアクティブにしません。 |
ユーザーのパスワード | テストユーザーのLDAPパスワード。 |
証明書に問題がある場合、安全なLDAP接続(ldaps)を機能させるには /etc/openldap/ldap.conf設定ファイルにTLS_REQCERTallow
行を追加する必要がある場合がありますが、 LDAPカタログへの接続のセキュリティが低下する可能性があります。
別のLDAPアカウント(Bind DN)を作成して、(Zabbixフロントエンドへのログインに使用している)実際のユーザーアカウントを使用する代わりに、LDAPで最小限の権限でLDAPサーバー上でバインドと検索を実行することをお勧めします。、ユーザーがLDAPサーバーで自分のパスワードを変更するときにバインドパスワードを変更する必要はありません。、* 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 フロントエンドで利用可能な設定パラメータ:
パラメータ | 説明 |
---|---|
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 暗号化を有効にするエンティティを選択します: アサーション NameID |
ログイン時に大文字小文字を区別 | チェックボックスをマークして、ユーザー名の大文字と小文字を区別するログインを有効にします (デフォルトでは無効)。 例:大文字と小文字を区別するログインを無効にすると、たとえば、Zabbix ユーザーが'Admin'であっても'ADMIN'ユーザーでログインします。 注 大文字と小文字を区別するログインを無効にすると、Zabbix データベースに類似したユーザー名 (Admin、admin など) を持つ複数のユーザーが存在する場合、ログインが拒否されることに注意してください。 |
追加のSAMLパラメーターは、Zabbixフロントエンド設定ファイル(zabbix.conf.php)で設定できます。 Additional SAML parameters can be configured in the Zabbix frontend configuration file (zabbix.conf.php):
ZabbixはOneLoginのSAMLPHPToolkitライブラリ(バージョン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]
設定例