外部LDAP 認証 を使用して、ユーザー名とパスワードを確認できます。
ZabbixのLDAP認証は、少なくともMicrosoft Active DirectoryおよびOpenLDAPで動作します。
LDAPサインインのみが設定されている場合、ユーザーはZabbixにも存在する必要がありますが、そのZabbixパスワードは使用されません。認証が成功すると、ZabbixはLDAPから返されたユーザー名属性とローカルのユーザー名を照合します。
LDAPユーザーに対してJIT(ジャストインタイム)ユーザーのプロビジョニングを設定することができます。この場合、Zabbixにユーザーがすでに存在している必要はありません。ユーザーアカウントは、ユーザーが初めてZabbixにログインしたときに作成できます。
LDAPユーザーがLDAPのログイン名とパスワードを入力すると、ZabbixはデフォルトのLDAPサーバーでこのユーザーが存在するかどうかを確認します。ユーザーが存在し、まだZabbixにアカウントがない場合は、Zabbixに新しいユーザーが作成され、ユーザーはログインできるようになります。
JITプロビジョニングが有効な場合は、認証タブでプロビジョニング解除されたユーザー用のユーザーグループを指定する必要があります。
JITプロビジョニングでは、LDAPの変更に基づいてプロビジョニングされたユーザーアカウントを更新することもできます。 たとえば、ユーザーがあるLDAPグループから別のグループに移動された場合、Zabbixでもユーザーはあるグループから別のグループに移動されます。 ユーザーがLDAPグループから削除された場合、Zabbixでもそのグループから削除され、他のグループに属していない場合は、プロビジョニング解除されたユーザー用のユーザーグループに追加されます。 プロビジョニングされたユーザーアカウントは、設定されたプロビジョニング期間またはユーザーがZabbixにログインしたときに更新されます。
バックグラウンドプロビジョニングは、ユーザーがZabbixフロントエンドとやり取りしている場合、または少なくともブラウザでフロントエンドページを開いている場合に、Zabbixフロントエンドによって実行されることに注意してください。 ユーザーをプロビジョニングするための専用のバックグラウンドプロセスはありません。
LDAP JITプロビジョニングは、LDAPがバインドに「匿名」または「特別なユーザー」を使用するように設定されている場合にのみ利用できます。直接ユーザーバインディングの場合、そのタイプのバインディングにはログインユーザーのパスワードが使用されるため、プロビジョニングはユーザーログインアクションに対してのみ行われます。
必要に応じて、複数のLDAPサーバーを定義できます。たとえば、異なるユーザーグループを認証するために異なるサーバーを使用できます。LDAPサーバーが設定されると、ユーザーグループの設定で、該当するユーザーグループに必要なLDAPサーバーを選択できるようになります。
ユーザーが複数のユーザーグループおよび複数のLDAPサーバーに所属している場合、名前で昇順にソートされたLDAPサーバーのリストの最初のサーバーが認証に使用されます。

設定パラメータ:
| パラメータ | 説明 |
|---|---|
| LDAP認証を有効にする | チェックボックスをオンにすると、LDAP認証が有効になります。 |
| JITプロビジョニングを有効にする | チェックボックスをオンにすると、JITプロビジョニングが有効になります。 |
| サーバー | 追加をクリックしてLDAPサーバーを設定します(下記のLDAPサーバーの設定を参照)。 |
| 大文字と小文字を区別したログイン | チェックボックスをオフにすると、ユーザー名の大文字と小文字を区別したログインが無効になります(デフォルトでは有効)。 大文字と小文字を区別したログインを無効にすると、たとえばZabbixユーザーが「Admin」や「ADMIN」であっても「admin」としてログインできます。 大文字と小文字を区別したログインを無効にし、同じようなユーザー名(例:Adminとadmin)を持つ複数のZabbixユーザーがいる場合、これらのユーザーのログインは常に次のエラーメッセージで拒否されることに注意してください:「認証に失敗しました:入力された認証情報が一意ではありません。」 |
| プロビジョニング期間 | プロビジョニング期間を設定します。つまり、フロントエンドで作業している間、ログインしたユーザーがどのくらいの頻度でプロビジョニングされるかを指定します。 |

LDAPサーバーの設定パラメータ:
| パラメータ | 説明 |
|---|---|
| 名前 | Zabbixの設定でのLDAPサーバー名。 |
| ホスト | LDAPサーバーのホスト名、IPまたはURI。例: ldap.example.com, 127.0.0.1, ldap://ldap.example.com セキュアなLDAPサーバーの場合は、ldapsプロトコルとホスト名を使用します。例: ldaps://ldap.example.com OpenLDAP 2.x.x以降では、ldap://hostname:portまたはldaps://hostname:portの形式の完全なLDAP URIを使用できます。 |
| ポート | LDAPサーバーのポート。デフォルトは389です。 セキュアなLDAP接続の場合、通常は636です。 完全なLDAP URIを使用する場合は使用されません。 |
| Base DN | LDAPサーバー上のユーザーアカウントへのベースパス: ou=Users,ou=system (OpenLDAPの場合), DC=company,DC=com (Microsoft Active Directoryの場合) uid=%{user},dc=example,dc=com (直接ユーザーバインディングの場合、下記の注意参照) |
| 検索属性 | 検索に使用する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ホストで匿名バインドを無効にし、認証付きアクセスを使用してください。 |
| Bindパスワード | LDAPサーバー上でバインドおよび検索を行うアカウントのLDAPパスワード。 |
| 説明 | LDAPサーバーの説明。 |
| JITプロビジョニングの設定 | このチェックボックスをオンにすると、JITプロビジョニングに関連するオプションが表示されます。 |
| グループ設定 | グループ設定方法を選択: memberOf - ユーザーとそのグループメンバーシップ属性で検索 groupOfNames - メンバー属性でグループを検索 memberOfの方が高速なため推奨されます。LDAPサーバーが memberOfをサポートしていない場合やグループフィルタリングが必要な場合はgroupOfNamesを使用してください。 |
| グループ名属性 | memberOf属性内のすべてのオブジェクトからグループ名を取得する属性を指定します(ユーザーグループメンバーシップ属性フィールド参照)グループ名はユーザーグループマッピングに必要です。 |
| ユーザーグループメンバーシップ属性 | ユーザーが所属するグループ情報を含む属性を指定します(例: memberOf)。例えば、memberOf属性は次のような情報を持つ場合があります: memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=comこのフィールドはmemberOfメソッドでのみ利用可能です。 |
| ユーザー名属性 | ユーザーの名を含む属性を指定します。 |
| ユーザー姓属性 | ユーザーの姓を含む属性を指定します。 |
| ユーザーグループマッピング | LDAPユーザーグループパターンをZabbixユーザーグループおよびユーザーロールにマッピングします。 プロビジョニングされたユーザーがZabbixでどのユーザーグループ/ロールを取得するかを決定するために必要です。 追加をクリックしてマッピングを追加します。 LDAPグループパターンフィールドはワイルドカードをサポートします。グループ名は既存のグループと一致する必要があります。 LDAPユーザーが複数のZabbixユーザーグループに一致する場合、ユーザーはすべてのグループのメンバーになります。 ユーザーが複数のZabbixユーザーロールに一致する場合、ユーザーはその中で最も高い権限レベルのロールを取得します。 |
| メディアタイプマッピング | ユーザーのLDAPメディア属性(例: メール)をZabbixユーザーメディアにマッピングし、通知を送信します。 |
| 詳細設定 | 詳細設定ラベルをクリックすると、詳細設定オプションが表示されます(下記参照)。 |
| StartTLS | LDAPサーバーに接続する際にStartTLS操作を使用するには、このチェックボックスをオンにします。サーバーがStartTLSをサポートしていない場合、接続は失敗します。 StartTLSはldapsプロトコルを使用するサーバーでは使用できません。 |
| 検索フィルター | LDAPでユーザーを認証する際にカスタム文字列を定義します。以下のプレースホルダーがサポートされています:%{attr} - 検索属性名(uid, sAMAccountName)%{user} - 認証するユーザー名の値大文字小文字を区別しないLDAPやMicrosoft Active Directory環境で大文字小文字を区別した検索を行う場合、次のように定義できます: (%{attr}:caseExactMatch:=%{user})。フィルターをカスタマイズしない場合、LDAPはデフォルトで (%{attr}=%{user})を使用します。 |
直接ユーザーバインディング用にLDAPサーバーを設定するには、Base DNパラメータにuid=%{user}属性を追加し(例: uid=%{user},dc=example,dc=com)、BindDNおよびBindパスワードパラメータを空にします。認証時には、%{user}プレースホルダーがログイン時に入力されたユーザー名に置き換えられます。
グループ設定方法として"groupOfNames"を選択した場合、以下のフィールドが特有となります:

| パラメータ | 説明 |
|---|---|
| グループBase DN | LDAPサーバー上のグループへのベースパス。 |
| グループ名属性 | グループへのベースパスでグループ名を取得する属性を指定します。 グループ名はユーザーグループマッピングに必要です。 |
| グループメンバー属性 | LDAP内のグループメンバー情報を含む属性を指定します(例: member)。 |
| 参照属性 | グループフィルター用の参照属性を指定します(グループフィルターフィールド参照)。 ここで指定した属性の値を取得するためにグループフィルターで %{ref}を使用します。 |
| グループフィルター | ユーザーがメンバーであるグループを取得するためのフィルターを指定します。 例えば、 (member=uid=%{ref},ou=Users,dc=example,dc=com)は、グループのmember属性がuid=User1,ou=Users,dc=example,dc=comの場合に"User1"に一致し、そのユーザーがメンバーであるグループを返します。 |
証明書に問題がある場合、セキュアなLDAP接続(ldaps)を機能させるには /etc/openldap/ldap.conf設定ファイルにTLS_REQCERT allow行を追加する必要がある場合があります。 この設定はLDAPカタログへの接続のセキュリティを低下させる可能性があります。
LDAPサーバー上でバインドおよび検索を行うために、実際のユーザーアカウント(Zabbixフロントエンドへのログインに使用される)ではなく、LDAP内で最小限の権限を持つ別のLDAPアカウント(Bind DN)を作成することを推奨します。
この方法はセキュリティを高め、ユーザーがLDAPサーバーで自身のパスワードを変更した場合でもBindパスワードを変更する必要がありません。
上記の表ではldap_searchアカウント名です。
テストボタンでユーザーアクセスをテストできます:
| パラメータ | 説明 |
|---|---|
| ログイン | テストするLDAPユーザー名(Zabbixフロントエンドの現在のユーザー名で自動入力されます)。このユーザー名はLDAPサーバーに存在している必要があります。 Zabbixは、テストユーザーの認証に失敗した場合、LDAP認証を有効にしません。 |
| ユーザーパスワード | テストするLDAPユーザーパスワード。 |