在 Administration → Authentication(管理 → 身份验证) 验证中,可以指定对Zabbix的全局用户身份验证方法。可用的方法有内部,HTTP,LDAP和SAML身份验证。
请注意,可以在用户组级别上微调身份验证方法。
默认情况下,全局使用内部Zabbix身份验证。改变:
完成后,单击表单底部的“更新”。
基于HTTP或Web服务器的身份验证(例如:基本身份验证,NTLM / Kerberos)可用于检查用户名和密码。请注意,用户也必须存在于Zabbix中,但是不会使用其Zabbix密码。
当心!在打开Web服务器身份验证之前,请确保已对其进行配置并正常工作。
配置参数:
参数 描 | 说明 |
---|---|
Enable HTTP authentication (启用HTTP身份验证) |
选中该复选框以启用HTTP身份验证。 |
Default login form (默认登录表单) **Zabbi |
指定是否将未经身份验证的用户定向到: login form-标准Zabbix登录页面。 HTTP login form**-HTTP登录页面。 建议 index_http.php 仅对页面启用基于Web服务器的身份验证。如果将默认登录表单设置为“ HTTP登录页面”,并且Web服务器身份验证模块将在$_SERVER 变量中设置有效的用户登录名,则该用户将自动登录。支持 $_SERVER 键PHP_AUTH_USER ,REMOTE_USER ,AUTH_USER 。 |
Case sensitive login (区分大小写的登录) 例如,禁用区分大小 |
取消选中该复选框可禁用用户名区分大小写的登录(默认情况下启用)。 的登录并使用“ ADMIN”用户登录,即使Zabbix用户为“ Admin”。 请注意,如果区分大小写的登录禁用,则Zabbix数据库中存在多个具有相似别名(例如Admin,admin)的用户时,将拒绝登录。 |
如果进行Web服务器身份验证,则所有用户(即使前端访问权限设置为Internal)都将由Web服务器而不是Zabbix进行身份验证!
对于无法使用HTTP凭据(默认设置为HTTP登录格式)登录的内部用户,导致401错误,您可能需要ErrorDocument 401 /index.php?form=default
在基本身份验证指令中添加一行,它将重定向到常规Zabbix登录格式。
外部LDAP身份验证可用于检查用户名和密码。请注意,用户也必须存在于Zabbix中,但是不会使用其Zabbix密码。
全局设置LDAP身份验证后,Zabbix仍可以对某些用户组进行身份验证。这些组必须将前端访问权限设置为“内部”。反之亦然,如果全局使用内部身份验证,则可以指定LDAP身份验证详细信息,并将其用于前端访问设置为LDAP的特定用户组。
Zabbix LDAP身份验证至少与Microsoft Active Directory和OpenLDAP一起使用。
配置参数:
参数 描 | 说明 |
---|---|
Enable LDAP authentication | 启动LDAP认证,选中复选框以启用LDAP身份验证。 |
LDAP host | LDAP服务器名称。例如:ldap:ldap.zabbix.com 对于安全的LDAP服务器,请使用ldaps协议。 ldaps:ldap.zabbix.com 在OpenLDAP 2.xx和更高版本中,可以使用格式为ldap:// hostname:port或ldaps:// hostname:port的完整LDAP URI。 |
Port | LDAP服务器的端口。默认值为389。 对于安全LDAP连接,端口号通常为636。 使用完整LDAP URI时不使用。 |
Base DN | 搜索帐户的基本路径: ou =用户,ou =系统(对于OpenLDAP), DC =公司,DC = com(对于Microsoft Active Directory) |
Search attribute | 用于搜索的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) 匿名绑定也是支持的。 |
Case-sensitive login | 取消选中该复选框可禁用用户名区分大小写的登录(默认情况下启用)。 例如,禁用区分大小写的登录并使用“ ADMIN”用户登录,即使Zabbix用户为“ Admin”。 请注意,如果区分大小写的登录禁用,则Zabbix数据库中存在多个具有相似别名(例如Admin,admin)的用户时,将拒绝登录。 |
Bind password | 用于绑定和搜索LDAP服务器的帐户的LDAP密码。 |
Test authentication | 测试部分的标题 |
Login | 测试用户的名称(当前已在Zabbix前端中登录)。该用户名必须存在于LDAP服务器中。 如果Zabbix无法认证测试用户,则不会激活LDAP认证。 |
User password | 测试用户的LDAP密码。 |
<note Warning> 万一证书出现问题,为了使LDAP连接(ldaps)正常工作,您可能需要TLS_REQCERT allow在/etc/openldap/ldap.conf配置文件中添加一行。这可能会降低与LDAP目录连接的安全性。 :::
建议创建一个单独的LDAP帐户(Bind DN),以使用LDAP中的最小特权在LDAP服务器上执行绑定和搜索,而不要使用真实的用户帐户(用于登录Zabbix前端)。
这样的方法提供了更高的安全性,并且在用户更改LDAP服务器中自己的密码时不需要更改“绑定”密码。
在上表中是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>
示例:
如果要在前端使用SAML身份验证,则需要安装php-openssl。
要使用SAML身份验证,应按以下方式配置Zabbix:
1.除非zabbix.conf.php中提供了自定义路径,否则私钥和证书应存储在ui/conf/certs/中。
默认情况下,Zabbix将在以下位置查找:
2.所有最重要的设置都可以在Zabbix前端中进行配置。但是,可以在配置文件中指定其他设置。
在Zabbix前端中可用的配置参数:
参数 描 | 说明 |
---|---|
Enable SAML authentication | 选中复选框以启用SAML身份验证。 |
IDP entity ID | SAML身份提供者的唯一标识符。 |
SSO service URL | 登录时,URL用户将被重定向到. |
SLO Service URL | 注销时,URL用户将被重定向到。如果保留为空,将不使用SLO服务。 |
Username attribute | 登录到Zabbix时用作用户名的SAML属性。 支持的值列表由身份提供商确定。 示例: Examples: 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 entity ID | SAML服务提供者的唯一标识符。 |
SP name ID format | 定义应使用的名称标识符格式。 示例: 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签名的实体: Messages(消息) Assertions(断言) AuthN requests(AuthN请求) Logout requests(注销请求) Logout responses(注销响应) |
Encrypt | 标记复选框以选择应为其启用SAML加密的实体: Assertions(断言) Name ID(名称ID) |
Case-sensitive login | 选中该复选框以启用区分大小写的登录名(默认情况下禁用)。 例如,禁用区分大小写的登录并使用“ ADMIN”用户登录,即使Zabbix用户为“ Admin”。 请注意,如果区分大小写的登录禁用,则Zabbix数据库中存在多个具有相似别名(例如Admin,admin)的用户时,将拒绝登录。 |
可以在Zabbix前端配置文件(zabbix.conf.php)中配置其他SAML参数:
Zabbix使用OneLogin的SAML PHP工具包库(版本3.4.1)。$ SSO ['SETTINGS']部分的结构应类似于库使用的结构。有关配置选项的说明,请参见官方库文档。
只能将以下选项设置为$ SSO ['SETTINGS']的一部分:
* attributeConsumingService
* x509certNew
* idp(仅此列表中指定的选项)
* singleLogoutService(仅一个选项)
* responseUrl(响应Url)
* certFingerprint(证书指纹)
* certFingerprintAlgorithm(证书指纹算法)
* x509certMulti
所有其他选项将从数据库中获取,并且不能被覆盖。在调试选项将被忽略。
配置示例: