外部 LDAP authentication 可用于验证用户名和密码。
Zabbix LDAP 认证至少支持 Microsoft Active Directory 和 OpenLDAP。
如果仅配置了 LDAP 登录,则用户也必须存在于 Zabbix 中,但其 Zabbix 密码将不会被使用。如果认证成功,Zabbix 将把本地用户名与 LDAP 返回的用户名属性进行匹配。
可以为 LDAP 用户配置 JIT(即时)用户供应(user provisioning)。在这种情况下,Zabbix 中无需预先存在该用户。当用户首次登录 Zabbix 时,系统将自动创建该用户的账户。
当 LDAP 用户输入其 LDAP login 和密码后,Zabbix 会检查默认的 LDAP 服务器以确认该用户是否存在。如果用户存在但尚未在 Zabbix 中创建账户,则系统会自动创建新用户,用户即可登录。
如果启用了 JIT 供应功能,则必须在 认证 选项卡中指定一个用于注销用户的用户组。
JIT 供应还允许根据 LDAP 中的变化对已供应的用户账户进行 update。
例如,如果一个用户从一个 LDAP 组移动到另一个 LDAP 组,则该用户在 Zabbix 中也会相应地从一个用户组移动到另一个用户组;如果用户从 LDAP 组中被移除,则在 Zabbix 中也会被从对应的用户组中移除,若其不再属于任何其他用户组,则会被添加到注销用户组中。已供应的用户账户将根据配置的供应周期 或在用户登录 Zabbix 时进行更新。
请注意,后台的用户供应操作是在用户与 Zabbix 前端交互或至少在浏览器中打开了 Zabbix 前端页面时由前端完成的。Zabbix 并没有专门的后台进程用于用户供应。
LDAP JIT 供应功能仅在 LDAP 配置为使用“匿名”或“特定用户”进行绑定时可用。对于直接用户绑定的情况,仅在用户 login 操作时进行供应,因为此类绑定方式使用了登录用户的密码。
如有需要,可以定义多个LDAP服务器。例如,可以使用不同的服务器对不同的用户组进行认证。一旦配置了LDAP服务器,在配置配置中即可为相应的用户组选择所需的LDAP服务器。
如果某个用户位于多个用户组且配置了多个LDAP服务器,则会使用按名称升序排序后的LDAP服务器列表中的第一个服务器进行认证。
配置参数:
参数 | 描述 |
---|---|
Enable LDAP authentication | 勾选此复选框以启用 LDAP 认证。 |
Enable JIT provisioning | 勾选此复选框以启用 JIT 自动配置。 |
Servers | 点击 添加 以配置 LDAP 服务器(见下方 LDAP 服务器配置)。 |
Case-sensitive login | 取消勾选此复选框以禁用用户名的大小写敏感 login(默认启用)。 禁用大小写敏感 login 后,例如,即使 Zabbix 用户名为 "Admin" 或 "ADMIN",也可以以 "admin" 登录。 请注意,如果禁用了大小写敏感 login,并且存在多个相似用户名的 Zabbix 用户(例如 Admin 和 admin),这些用户的 login 将始终被拒绝,并显示以下错误信息:"认证失败:提供的凭证不唯一。" |
Provisioning period | 设置自动配置周期,即用户在使用前端界面时进行自动配置的频率。 |
LDAP服务器配置参数:
参数 | 描述 |
---|---|
Name | Zabbix配置中LDAP服务器的名称。 |
Host | 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 URI,如ldap://主机名:端口或ldaps://主机名:端口。 |
Port | 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(用于直接用户绑定,请参阅下方注释) |
Search attribute | 用于搜索的LDAP账户属性: uid(适用于OpenLDAP), sAMAccountName(适用于Microsoft Active Directory) |
Bind DN | 用于绑定和搜索LDAP服务器的账户,示例: uid=ldap_search,ou=system(适用于OpenLDAP), CN=ldap_search,OU=user_group,DC=company,DC=com(适用于Microsoft Active Directory) 同时支持匿名绑定。需注意匿名绑定可能向未授权用户暴露域配置信息(包括用户、计算机、服务器、组、服务等相关信息)。出于安全考虑,应在LDAP 主机 上禁用匿名绑定,改用认证访问方式。 |
Bind password | 用于绑定及在LDAP服务器上执行搜索的账户密码。 |
Description | LDAP服务器描述。 |
Configure JIT provisioning | 勾选此复选框以显示与JIT配置相关的选项。 |
Group configuration | 选择组配置方式: memberOf - 通过搜索用户及其组成员属性 groupOfNames - 通过成员属性搜索组 注意memberOf方式更快速,建议优先使用;若您的LDAP服务器不支持 memberOf 或需要组过滤,则使用groupOfNames方式。 |
Group name attribute | 指定从memberOf 属性中所有objects提取组名的get属性(参见用户组成员属性字段)组名是用户组映射的必要条件。 |
User group membership attribute | 指定包含用户所属群组信息的属性(例如memberOf )。例如,memberOf属性可能包含如下信息: memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=com 该字段仅适用于memberOf方法。 |
User name attribute | 指定包含用户名字的属性。 |
User last name attribute | 指定包含用户姓氏的属性。 |
User group mapping | 将LDAP用户组模式映射到Zabbix用户组和用户角色。 此配置用于确定被配置用户在Zabbix中将get的用户组/角色。 点击添加按钮创建映射关系。 LDAP组模式字段支持通配符,组名必须匹配现有组。 若LDAP用户匹配多个Zabbix用户组,该用户将成为所有这些组的成员。 若用户匹配多个Zabbix用户角色,系统将get其中权限级别最高的角色。 |
Media type mapping | 将用户的LDAP媒体属性(例如电子邮件)映射到Zabbix用户媒体以发送通知。 |
Advanced configuration | 点击高级配置标签以显示高级配置选项(见下文)。 |
StartTLS | 勾选此复选框以在连接至LDAP服务器时启用StartTLS操作。若服务器不支持StartTLS,连接将失败。 注意:使用ldaps协议的服务器无法启用StartTLS功能。 |
Search filter | 在LDAP中认证用户时定义自定义string。支持以下占位符:%{attr} - 搜索属性名(uid、sAMAccountName)%{user} - 待认证用户的用户名值例如,在大小写不敏感的LDAP或Microsoft Active Directory环境中执行大小写敏感搜索时,可如下定义string: (%{attr}:caseExactMatch:=%{user}) 。若未自定义过滤器,LDAP将使用默认值: (%{attr}=%{user}) 。 |
要为直接用户绑定配置LDAP服务器,需将属性uid=%{user}附加到Base DN参数中(例如,uid=%{user},dc=example,dc=com),并保持BindDN和Bind password参数为空。在认证过程中,占位符%{user}会被替换为login期间输入的用户名。
以下字段专属于以"groupOfNames"作为群组配置方法的情况:
参数 | 描述 |
---|---|
Group base DN | LDAP服务器中组的基础路径。 |
Group name attribute | 指定用于get指定基础路径下用户组名称的属性。 组名对于用户组映射是必需的。 |
Group member attribute | 指定LDAP中包含组成员信息的属性(例如member )。 |
Reference attribute | 指定群组筛选器的参考属性(参见群组筛选器字段)。 然后在群组筛选器中使用 %{ref} 来get此处指定属性的值。 |
Group filter | 指定过滤器以检索用户所属的群组。 例如, (member=uid=%{ref},ou=Users,dc=example,dc=com) 将匹配"User1"(如果群组的成员属性为 uid=User1,ou=Users,dc=example,dc=com ),并返回"User1"所属的群组。 |
如果遇到证书问题,要使安全LDAP连接(ldaps)正常工作 您可能需要在 /etc/openldap/ldap.conf
配置文件中添加一行 TLS_REQCERT allow
file。这可能会降低与LDAP目录连接的安全性。
建议create单独的LDAP账户(绑定专有名称)来执行绑定操作 在LDAP中使用最小权限搜索LDAP服务器,而非使用真实权限 用户账户(用于登录Zabbix前端界面)。 这种方法提供了更高的安全性,且无需更改绑定密码 当用户在LDAP服务器上更改自己的密码时。 在上表中是 ldap_search 账户名称。
测试按钮允许测试用户访问:
参数 | 说明 |
---|---|
Login | 要测试的LDAP用户名(已预填Zabbix前端的当前用户名)。该用户名必须存在于LDAP服务器中。 如果无法验证测试用户,Zabbix将不会启用LDAP认证。 |
User password | 要测试的LDAP用户密码。 |