Administration → Authentication 部分允许指定Zabbix 的全局用户认证方法和内部密码要求。 可用internal、HTTP、LDAP 和 SAML方式进行验证。
默认情况下,Zabbix 对所有用户使用内部 Zabbix 身份验证。可以将默认方法更改为 LDAP 系统范围或仅对特定用户组启用 LDAP 身份验证。
要将 LDAP 设置为所有用户的默认身份验证方法,请导航至LDAP 选项卡并配置身份验证参数,然后返回Authentication 选项卡并将 Default authentication 选择器切换到LDAP
请注意,身份验证方法可以在 用户组 级别。即使LDAP认证全局设置,部分用户组仍然可以 由 Zabbix 认证。这些组必须有 前端访问 设置到内部。反之亦然,如果全局使用内部身份验证,可以为特定用户指定和使用 LDAP 身份验证详细信息 前端访问 是设置为 LDAP。如果一个用户包含在至少一个用户组中LDAP 认证,此用户将无法使用内部身份验证方法。
HTTP 和 SAML 2.0除了默认的身份验证方法之外,还可以使用身份验证方法身份验证方法。
Authentication 选项卡允许定义自定义密码复杂性 内部 Zabbix 用户的要求。
可以配置以下密码策略选项:
参数 | 说明 |
---|---|
最小密码长度 | 默认情况下,最小密码长度设置为 8。支持范围:1-70。请注意,超过 72 个字符的密码将被截断。 |
密码必须包含 | 标记一个或多个复选框以要求在密码中使用指定字符: -一个大写和一个小写拉丁字母 -一个数字 -一个特殊字符 将鼠标悬停在问号上可查看每个选项的字符列表提示。 |
避免使用容易猜到的密码 | 如果标记,将根据以下要求检查密码: - 不得包含用户名、姓氏或用户名 - 不得为常见或上下文之一-特定密码。 常用密码和上下文特定密码列表是从 NCSC“前 100k 密码”列表、SecLists“前 1M 密码”列表和 Zabbix 上下文特定密码列表自动生成的.不允许内部用户设置此列表中包含的密码,因为此类密码因其常见用途而被视为弱密码。 |
密码复杂性要求的变化不会影响现有的用户密码,但如果现有用户选择更改密码,新密码必须满足当前要求。一个提示要求列表将显示在 Password 字段旁边用户配置 和 用户配置表单 可访问从管理→用户菜单。
基于 HTTP 或 Web 服务器的身份验证(例如:Basic Authentication、NTLM/Kerberos)可用于检查用户名和密码。 请注意,用户也必须存在于 Zabbix 中,但是它的不会使用 Zabbix 密码。
当心! 确保网络服务器身份验证在切换之前已配置且正常工作。
配置参数:
参数 | 说明 |
---|---|
启用 HTTP 身份验证 | 选中复选框以启用 HTTP 身份验证。 |
默认登录表单 | 指定是否将未经身份验证的用户定向到: Zabbix 登录表单 - 标准 Zabbix 登录页面。 HTTP 登录表单 - HTTP 登录页面。<br >建议仅对 index_http.php 页面启用基于 Web 服务器的身份验证。如果 Default login form 设置为“HTTP login page”,如果 Web 服务器身份验证模块将在 $_SERVER 变量中设置有效的用户登录名,则用户将自动登录。支持的 $_SERVER 键是 PHP_AUTH_USER ,REMOTE_USER ,AUTH_USER 。 |
删除域名 | 应从用户名中删除的以逗号分隔的域名列表。 例如 comp,any - 如果用户名是 'Admin@any', 'comp\Admin',用户将作为 'Admin' 登录;如果用户名是'notacompany\Admin',登录将被拒绝。 |
区分大小写的登录 | 取消选中该复选框以禁用用户名的区分大小写登录(默认启用)。 例如禁用区分大小写的登录并使用例如“ADMIN”用户登录,即使 Zabbix 用户是“Admin”。 注意禁用区分大小写登录的情况下,如果在 Zabbix 数据库存在多个用户,登录将被拒绝(例如 Admin、admin)。 |
在 Web 服务器身份验证的情况下,所有用户(即使 前端访问 设置 到 LDAP/内部)将由 Web 服务器进行身份验证,而不是由Zabbix!
对于无法使用 HTTP 登录的内部用户导致 401 的凭据(默认设置为 HTTP 登录表单)错误,您可能需要添加一个 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.xx 及更高版本,完整的可以使用 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) |
绑定 DN | LDAP 帐户,用于在 LDAP 服务器上进行绑定和搜索,示例: uid=ldap_search,ou=system (for OpenLDAP), CN=ldap_search,OU=user_group ,DC=company,DC=com(用于 Microsoft Active Directory) 还支持匿名绑定。 |
区分大小写的登录 | 取消选中该复选框以禁用用户名的区分大小写登录(默认启用)。 例如禁用区分大小写的登录并使用例如“ADMIN”用户登录,即使 Zabbix 用户是“Admin”。 注意禁用区分大小写登录的情况下,如果存在多个用户,登录将被拒绝具有相似用户名的 Zabbix 数据库(例如 Admin、admin)。 |
绑定密码 | LDAP服务器上绑定和搜索帐号的LDAP密码。 |
测试认证 | 测试部分的标题 |
Login | 测试用户的名称(当前登录在 Zabbix 前端)。此用户名必须存在于 LDAP 服务器中。 如果 Zabbix 无法对测试用户进行身份验证,它将不会激活 LDAP 身份验证。 |
用户密码 | 测试用户的LDAP密码。 |
如果证书出现问题,要使安全的 LDAP 连接 (ldaps) 正常工作,您可能需要在 /etc/openldap/ldap.conf 配置文件中添加 TLS_REQCERT allow
行。它可能会降低连接到 LDAP 目录的安全性。
建议创建一个单独的 LDAP 帐户 (Bind DN) 以在 LDAP 中以最低权限在 LDAP 服务器上执行绑定和搜索,而不是使用真实用户帐户(用于登录 Zabbix 前端)。这种方法提供了更高的安全性,并且当用户在 LDAP 服务器中更改自己的密码时,不需要更改 Bind password。 在上表中,它是 ldap_search 帐户名。
SAML 2.0 身份验证可用于登录 Zabbix。 请注意,用户必须存在于 Zabbix 中,但不会使用其 Zabbix 密码。 如果身份验证成功,则 Zabbix 会将本地用户名与 SAML 返回的用户名属性进行匹配。
如果启用 SAML 身份验证,用户将能够在本地登录或通过 SAML 单点登录之间进行选择。
为了与 Zabbix 合作,SAML 身份提供商 (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. 私钥和证书应存储在 ui/conf/certs/ 中,除非 zabbix.conf.php 中提供了自定义路径。
默认情况下,Zabbix 将在以下位置查找:
2. 所有最重要的设置都可以在 Zabbix 前端进行配置。但是,可以在 配置文件 中指定其他设置。
配置参数,在 Zabbix 前端可用:
参数 | 说明 |
---|---|
启用 SAML 身份验证 | 选中复选框以启用 SAML 身份验证。 |
IDP 实体 ID | SAML 身份提供者的唯一标识符。 |
SSO 服务 URL | 用户登录时将被重定向到的 URL。 |
SLO 服务 URL | 用户注销时将被重定向到的 URL。如果留空,则不会使用 SLO 服务。 |
// 用户名属性// | 登录 Zabbix 时用作用户名的 SAML 属性。 支持的值列表由身份提供者确定。 示例: uid 用户主体名 samaccountname 用户名 用户用户名 urn:oid:0.9.2342.19200300.100.1.1 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 名称 ID 格式 | 定义应使用的名称标识符格式。 示例: 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> |
Sign | 标记复选框以选择应为其启用 SAML 签名的实体: 消息 断言 AuthN 请求 注销请求 注销回复 |
加密 | 标记复选框以选择应启用 SAML 加密的实体: 断言 名称 ID |
区分大小写的登录 | 标记复选框以启用用户名区分大小写的登录(默认禁用)。 例如禁用区分大小写的登录并使用例如“ADMIN”用户登录,即使 Zabbix 用户是“Admin”。 注意禁用区分大小写登录的情况下,如果存在多个用户,登录将被拒绝具有相似用户名的 Zabbix 数据库(例如 Admin、admin)。 |
可以在 Zabbix 前端配置文件 (zabbix.conf.php) 中配置额外的 SAML 参数:
Zabbix 使用 OneLogin 的 SAML PHP Toolkit 库(版本 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', // ... ], // ... ];