[comment]: # translation:outdated

[comment]: # ({cee0eb99-cee0eb99})
# 3 認証
[comment]: # (tags: ldap, saml)

[comment]: # ({/cee0eb99-cee0eb99})

[comment]: # ({9217fb1a-9217fb1a})
### 概要

*管理 → 認証*セクションでは、Zabbixおよび内部パスワード要件に対するグローバルユーザー認証方法を指定できます。使用可能な方法は、内部,HTTP,LDAPおよびSAML認証です。

[comment]: # ({/9217fb1a-9217fb1a})

[comment]: # ({0e754ffa-0e754ffa})
### デフォルト認証

デフォルトでは、Zabbixはすべてのユーザーに内部Zabbix認証を使用します。デフォルトの方法をシステム全体で[LDAP](#ldap_authentication)に変更したり、特定のユーザーグループに対してのみLDAP認証を有効にしたりすることもできます。

LDAPをすべてのユーザーのデフォルトの認証方法として設定するには、*LDAP*タブに移動して認証パラメーターを構成してから、*認証*タブに戻り、*デフォルト認証*セレクターをLDAPに切り替えます。

認証方法は[ユーザーグループ](/manual/config/users_and_usergroups/usergroup)レベルで微調整できることに注意してください。 LDAP認証がグローバルに設定されている場合でも、一部のユーザーグループをZabbixで認証することもできます。これらのグループでは[フロントエンドアクセス](/manual/config/users_and_usergroups/usergroup#configuration)を内部に設定する必要があります。逆に、内部認証をグローバルに使用する場合は、LDAP認証の詳細を指定して、[フロントエンドアクセス](/manual/config/users_and_usergroups/usergroup#configuration)がLDAPに設定されている特定のユーザーグループに使用できます。ユーザーが少なくともLDAP認証を使用している1つのユーザーグループに含まれている場合、このユーザーは内部認証方式を使用できません。

デフォルトの認証方法に加えて[HTTP](#http_authentication)および[SAML 2.0](#saml_authentication)認証方法を使用できます。

[comment]: # ({/0e754ffa-0e754ffa})

[comment]: # ({72802abe-d3760aa9})
### 認証

*認証*タブでは、Zabbix内部ユーザーのカスタムパスワード要件を定義できます。

![](../../../../../assets/en/manual/web_interface/frontend_sections/administration/auth.png)

次のパスワードポリシーオプションを設定できます。

|パラメータ|説明|
|--|--------|
|*最小パスワード長*|デフォルトではパスワードの最小長は8に設定されています。設定可能範囲:1〜70。 72文字を超えるパスワードは切り捨てられます。|
|*パスワード必須項目*|1つまたは複数のチェックボックスをオンにして、パスワードで指定した文字を使用するよう強制します。<br>-英字の大文字と小文字<br>-数字<br>-特殊記号<br><br>疑問符にカーソルを合わせると各オプションの文字リストを含むヒントを表示します。|
|*推測されやすいパスワードの回避*|チェックボックスがオンの場合、パスワードは次の要件に基づいてチェックされます。<br>-ユーザーの苗字、名前、またはユーザー名を含まないこと<br>-共通またはコンテキスト固有のパスワードの1つではないこと。<br> <br>共通およびコンテキスト固有のパスワードのリストは、NCSCの"トップ100kパスワード"のリスト、SecListの"トップ1Mパスワード"のリスト、およびZabbixコンテキスト固有のパスワードのリストから自動的に生成されます。内部ユーザーは、このリストに含まれるパスワードを設定することはできません。このようなパスワードは、一般的に使用されているため、脆弱であると見なされるためです。|

パスワードの複雑さの要件を変更しても、既存のユーザーパスワードには影響しませんが、既存のユーザーが*管理 → ユーザー*メニューからパスワードを変更する場合、新しいパスワードは現在の要件を満たす必要があります。要件のリストを含むヒントが、[ユーザープロファイル](/manual/web_interface/user_profile)および[ユーザー構成フォーム](/manual/config/users_and_usergroups/user)の*Password*フィールドの横に表示されます。 

[comment]: # ({/72802abe-d3760aa9})

[comment]: # ({58c69118-096ce00b})
### HTTP認証の設定

HTTPまたはWebサーバーベースの認証（例：Basic認証、NTLM / Kerberos）を使用して、ユーザー名とパスワードを確認できます。ユーザーはZabbixにも存在する必要がありますが、そのZabbixパスワードは使用されないことに注意してください。

::: noteimportant
オンにする前に、Webサーバー認証が構成され、正しく機能していることを確認してください。
:::

![](../../../../../assets/en/manual/web_interface/frontend_sections/administration/auth_http.png)

設定値:

|パラメーター|説明|
|--|--------|
|*HTTP認証の有効化*|チェックボックスをオンにすると、HTTP認証が有効になります。|
|*デフォルトのログイン画面*|認証されていないユーザーをどの画面に誘導するかを指定します：<br>**Zabbixのログイン画面** - 標準のZabbixログインページ<br>**HTTPのログイン画面** - HTTPログインページ<br>`index_http.php`ページに対してのみWebサーバーベースの認証を有効にすることをお勧めします。 *デフォルトのログイン画面*が'HTTPログインページ'に設定されている場合、Webサーバー認証モジュールが`$_SERVER`変数に有効なユーザーログインを設定すると、ユーザーは自動的にログインします。<br>サポートされている`$_SERVER`キーは`PHP_AUTH_USER`, `REMOTE_USER`,`AUTH_USER`です。|
|*ドメイン名の削除*|ユーザー名から削除する必要があるドメイン名のカンマ区切りのリスト。<br>例： `comp,any` - ユーザー名が'Admin\@any','comp\\Admin'の場合、ユーザーは'Admin'としてログインします。ユーザー名が'notacompany\\Admin'の場合、ログインは拒否されます。|
|*ログイン時に大文字小文字を区別*|チェックボックスをオフにすると、ユーザー名の大文字と小文字を区別したログインが無効になります。(デフォルトでは有効)<br>大文字と小文字を区別するログインを無効にすると、Zabbixに登録されたユーザーが'Admin'または'ADMIN'であっても、'admin'としてログインできます。<br>大文字と小文字を区別するログインが無効で、類似したユーザー名(例: Adminとadmin)が複数Zabbixのユーザーとして登録されている場合、これらのユーザーのログインは常に拒否され、次のエラー メッセージが表示されます: "認証に失敗しました：指定された資格情報はユニークではありません。"|

::: notetip
(HTTPログインフォームがデフォルトとして設定している)HTTP認証情報を使用してログインできず、401エラーが発生する内部ユーザーは、Basic認証ディレクティブに `ErrorDocument 401/index.php?form=default`行を追加すると、通常のZabbixログイン画面にリダイレクトされます。
:::

[comment]: # ({/58c69118-096ce00b})

[comment]: # ({078dbbe1-b032eddc})
### LDAP認証の設定

外部LDAP認証を使用して、ユーザー名とパスワードを確認できます。ユーザーは Zabbix にも存在している必要がありますが、Zabbix パスワードは使用されないことに注意してください。

Zabbix LDAP認証は、Microsoft Active Directoryおよび OpenLDAPで動作確認を行っています。

![](../../../../../assets/en/manual/web_interface/frontend_sections/administration/auth_ldap.png)

パラメータ設定:

|パラメータ|説明|
|--|--------|
|*LDAP認証の有効化*|LDAP 認証を有効にするには、チェックボックスをオンにします。|
|*LDAP ホスト*|LDAP サーバーの名前。例: ldap://ldap.zabbix.com<br>セキュアLDAPサーバーの場合は *ldaps* プロトコルを使用します。<br>ldaps://ldap.zabbix.com<br>OpenLDAP 2.x.x 以降では、ldap://hostname:portまたはldaps://hostname:portという形式の完全なLDAP URIを使用します。|
|*ポート*|LDAP サーバーのポート。デフォルトは389です。<br>セキュアLDAP接続の場合、ポート番号は通常636です。<br>完全なLDAP URIを使用する場合は使用されません。|
|*Base DN*|アカウントを検索するためのベース パス:<br>ou=Users、ou=system (OpenLDAP の場合)、<br>DC=company、DC=com (Microsoft Active Directory の場合)|
|*検索の属性*|検索に使用されるLDAPアカウント属性:<br>uid (OpenLDAP の場合)、<br>sAMAccountName (Microsoft Active Directory の場合)|
|*Bind DN*|LDAP サーバーを介したバインドと検索のためのLDAPアカウント。例:<br>uid=ldap\_search,ou=system (OpenLDAP の場合)、<br>CN=ldap\_search,OU=user\_group,DC=company,DC=com (Microsoft Active Directory の場合)<br>匿名バインドもサポートされています。匿名バインドでは、ドメイン構成(ユーザー、コンピューター、サーバー、グループ、サービスなどの情報)が権限のないユーザーに公開される可能性があることに注意してください。セキュリティ上の理由から、LDAP ホストでの匿名バインドを無効にし、代わりに認証されたアクセスを使用してください。|
|*ログイン時に大文字小文字を区別*|ユーザー名の大文字と小文字を区別するログインを無効にするには、チェックボックスをオフにします。(デフォルトでは有効)<br>大文字と小文字を区別するログインを無効にすると、Zabbixに登録されたユーザーが'Admin'または'ADMIN'であっても、'admin'としてログインできます。<br>大文字と小文字を区別するログインが無効で、類似したユーザー名(例: Adminとadmin)が複数Zabbixのユーザーとして登録されている場合、これらのユーザーのログインは常に拒否され、次のエラー メッセージが表示されます: "認証に失敗しました：指定された資格情報はユニークではありません。"|
|*Bind password*|LDAP サーバーをバインドおよび検索するためのアカウントのLDAPパスワード|
|*認証のテスト*|テスト用セクションのヘッダー|
|*ログイン*|(現在Zabbixフロントエンドにログインしている)テストユーザーの名前。このユーザー名はLDAPサーバーに存在している必要があります。<br>Zabbixは、テストユーザーを認証できない場合はLDAP認証をアクティブ化しません。|
|*ユーザーのパスワード*|テストユーザーのLDAPパスワード。|

::: notewarning
証明書に問題がある場合、セキュアLDAP接続(ldaps)を機能させるには、/etc/openldap/ldap.conf構成ファイルに`TLS_REQCERT allow`行を追加する必要があります。これにより、LDAPカタログへの接続のセキュリティが低下する可能性があります。
:::

::: notetip
(Zabbix Webインタフェースへのログインに使用する)実際のユーザーアカウントを使用する代わりに、LDAPでの最小限の権限でLDAPサーバーを介してバインドと検索を実行するために、別の LDAPアカウント(*Bind DN*) を作成することをお勧めします。\
このようなアプローチにより、セキュリティが強化され、ユーザーが LDAP サーバーで自分のパスワードを変更したときに *Bind パスワード* を変更する必要がなくなります。\
上記の表では、*ldap\_search* がアカウント名です。
:::

[comment]: # ({/078dbbe1-b032eddc})

[comment]: # ({cc7ae197-cc7ae197})
### SAML認証の設定

SAML 2.0認証を使用して、Zabbixにサインインできます。ユーザーはZabbixに存在する必要がありますが、そのZabbixパスワードは使用されないことに注意してください。認証が成功すると、Zabbixはローカルユーザー名をSAMLによって返されたユーザー名属性と照合します。

::: noteclassic
 SAML認証が有効になっている場合、ユーザーはローカルでログインするか、SAMLシングルサインオンを介してログインするかを選択できます。
:::

[comment]: # ({/cc7ae197-cc7ae197})

[comment]: # ({2d356342-6700a0b3})
#### IDプロバイダーの設定

SAML IDプロバイダーであるZabbix（([onelogin.com](https://onelogin.com), [auth0.com](https://auth0.com),[okta.com](https://okta.com),など）を次の方法で設定する必要があります。

-   *アサーションコンシューマURL*は`<path_to_zabbix_ui>/index_sso.php?acs`に設定する必要があります
-   *シングルログアウトURL*は`<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`

[comment]: # ({/2d356342-6700a0b3})

[comment]: # ({080e3f17-be70e1a1})
#### Zabbixのセッティング

::: noteimportant
フロントエンドで SAML 認証を使用する場合は、php-openssl をインストールする必要があります。
:::

SAML 認証を使用するには、Zabbix を次のように設定する必要があります:

1\. [zabbix.conf.php](authentication#高度な設定)でカスタム パスが指定されていない限り、秘密鍵と証明書は *ui/conf/certs*/ に保存する必要があります。

デフォルトでは、Zabbix は次の場所を検索します。

-   ui/conf/certs/sp.key - SP 秘密鍵ファイル
-   ui/conf/certs/sp.crt - SP 証明書ファイル
-   ui/conf/certs/idp.crt - IDP 証明書ファイル

2\. 最も重要な設定はすべて、Zabbix フロントエンドで構成できます。 ただし、[設定ファイル](authentication#高度な設定)で追加設定を指定することも可能です。

![](../../../../../assets/en/manual/web_interface/frontend_sections/administration/auth_saml.png)

Zabbix webインターフェースで利用可能な設定パラメータ:

|パラメータ|説明|
|--|--------|
|*SAML認証の有効化*|チェックボックスをマークして、SAML 認証を有効にします。|
|*IdPエンティティID*|SAML ID プロバイダーのユニーク識別子。|
|*SSOサービスURL*|ログイン時にユーザーがリダイレクトされる URL。|
|*SLOサービスURL*|ログアウト時にユーザーがリダイレクトされる URL。 空のままにすると、SLO サービスは使用されません。|
|*ユーザー名の属性*|Zabbix へのログイン時にユーザー名として使用される SAML 属性。<br>サポートされている値のリストは ID プロバイダーによって決まります。<br><br>例:<br>uid<br>userprincipalname<br>samaccountname<br>username<br>userusername<br><urn:oid:0.9.2342.19200300.100.1.1><br><urn:oid:1.3.6.1.4.1.5923.1.1.1.13><br><urn:oid:0.9 .2342.19200300.100.1.44>|
|*SPのエンティティID*|SAML サービス プロバイダーのユニーク識別子。|
|*SPのNameIDフォーマット*|使用する名前識別子の形式を定義します。<br><br>例:<br><urn:oasis:names:tc:SAML:2.0:nameid-format:persistent><br><urn:oasis:names:tc:SAML:2.0:nameid-format:transient><br><urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos><br><urn:oasis:names:tc:SAML:2.0:nameid-format:entity>|
|*サイン*|チェックボックスをマークして、SAML 署名を有効にする必要があるエンティティを選択します。<br>*メッセージ*<br>*アサーション*<br>*AuthNリクエスト*<br>*ログアウトリクエスト*<br>*ログアウトレスポンス*|
|*暗号化*|チェックボックスをマークして、SAML 暗号化を有効にするエンティティを選択します:<br>*アサーション*<br>*Name ID*|
|*ログイン時に大文字小文字を区別*|ユーザー名の大文字と小文字を区別するログインを無効にするには、チェックボックスをオフにします。(デフォルトでは有効)<br>大文字と小文字を区別するログインを無効にすると、Zabbixに登録されたユーザーが'Admin'または'ADMIN'であっても、'admin'としてログインできます。<br>大文字と小文字を区別するログインが無効で、類似したユーザー名(例: Adminとadmin)が複数Zabbixのユーザーとして登録されている場合、これらのユーザーのログインは常に拒否され、次のエラー メッセージが表示されます: "認証に失敗しました：指定された資格情報はユニークではありません。"|

[comment]: # ({/080e3f17-be70e1a1})

[comment]: # ({9be84341-be372f8e})
##### 高度な設定

追加のSAMLパラメーターは、Zabbixフロントエンド設定ファイル(*zabbix.conf.php*)で設定できます。

-   $SSO\['SP\_KEY'\] = '<SP 秘密鍵ファイルへのパス>';
-   $SSO\['SP\_CERT'\] = '<SP 証明書ファイルへのパス>';
-   $SSO\['IDP\_CERT'\] = '<IDP 証明書ファイルへのパス>';
-   $SSO\['SETTINGS'\]

::: noteclassic
 Zabbixは[OneLoginのSAML PHPToolkit](https://github.com/onelogin/php-saml/tree/3.4.1)ライブラリ(バージョン3.4.1)を使用します。$SSO\['SETTINGS'\] セクションの構造は、ライブラリで使用される構造と同様である必要があります。設定オプションの説明については、公式ライブラリ[ドキュメント](https://github.com/onelogin/php-saml/tree/3.4.1/#user-content-settings)を参照してください。
:::

$SSO\['SETTINGS'\]の一部として設定できるのは、次のオプションです。

-   *strict*
-   *baseurl*
-   *compress*
-   *contactPerson*
-   *organization*
-   *sp* (このリストで指定されたオプションのみ)
    -   *attributeConsumingService*
    -   *x509certNew*
-   *idp* (このリストで指定されたオプションのみ)
    -   *singleLogoutService* (オプションは 1 つだけ)
    -   *responseUrl*
    -   *certFingerprint*
    -   *certFingerprintAlgorithm*
    -   *x509certMulti*
-   *security* (このリストで指定されたオプションのみ)
    -   *signMetadata*
    -   *wantNameId*
    -   *requestedAuthnContext*
    -   *requestedAuthnContextComparison*
    -   *wantXMLValidation*
    -   *relaxDestinationValidation*
    -   *destinationStrictlyMatches*
    -   *rejectUnsolicitedResponsesWithInResponseTo*
    -   *signatureAlgorithm*
    -   *digestAlgorithm*
    -   *lowercaseUrlencoding*

他のすべてのオプションはデータベースから取得され、オーバーライドすることはできません。 *debug*オプションは無視されます。

さらに、Zabbix UIがプロキシまたはロードバランサーの背後にある場合は、カスタムの*use\_proxy\_headers*オプションを使用できます。

-   *false* (デフォルト) - オプションを無効に;
-   *true* - use X-Forwarded-\* ベースURLを構築するためのHTTPヘッダー.

ロードバランサーを使用してZabbixインスタンスに接続する場合に、ロードバランサーはTLS/SSLを使用し、Zabbixは使用しない場合は、次のように「baseurl」「strict」および「use_proxy_headers」パラメーターを指定する必要があります。  

```php
$SSO['SETTINGS'] = [
    'strict' => false,
    'baseurl' => 'https://zabbix.example.com/zabbix/',
    'use_proxy_headers' => true
];
```

**設定例:**

```php
$SSO['SETTINGS'] = [
    'security' => [
        'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
        'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
        // ...
    ],
    // ...
];
```

[comment]: # ({/9be84341-be372f8e})

[comment]: # ({32ef8a47-2e5c6dcf})
##### Kerberos/ADFS を使用したWebインターフェース設定

Zabbix Webインターフェースの設定ファイル(*zabbix.conf.php*) を使用して、Kerberos認証とADFSによるSSOを設定できます:

```php
$SSO['SETTINGS'] = [
    'security' => [
        'requestedAuthnContext' => [
            'urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos',
        ],
        'requestedAuthnContextComparison' => 'exact'
    ]
]; 
```

この場合、SAML 構成の *SP 名 ID* フィールドで次のように設定します:

    urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

[comment]: # ({/32ef8a47-2e5c6dcf})
