3 身份验证
在
Administration → Authentication(管理 → 身份验证)
验证中,可以指定对Zabbix的全局用户身份验证方法。可用的方法有内部,HTTP,LDAP和SAML身份验证。
请注意,可以在用户组级别上微调身份验证方法。
默认情况下,全局使用内部Zabbix身份验证。改变:
到HTTP-导航到“ HTTP设置”标签并输入身份验证详细信息;
到LDAP-选择LDAP作为默认身份验证,然后在LDAP设置标签中输入身份验证详细信息;
到SAML-导航到“ SAML设置”标签,然后输入身份验证详细信息。
完成后,单击表单底部的“更新”。
HTTP认证
基于HTTP或Web服务器的身份验证(例如:基本身份验证,NTLM / Kerberos)可用于检查用户名和密码。请注意,用户也必须存在于Zabbix中,但是不会使用其Zabbix密码。
当心!在打开Web服务器身份验证之前,请确保已对其进行配置并正常工作。
配置参数:
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)的用户时,将拒绝登录。
对于无法使用HTTP凭据(默认设置为HTTP登录格式)登录的内部用户,导致401错误,您可能需要
ErrorDocument 401 /index.php?form=default
在基本身份验证指令中添加一行,它将重定向到常规Zabbix登录格式。
LDAP验证
外部LDAP身份验证可用于检查用户名和密码。请注意,用户也必须存在于Zabbix中,但是不会使用其Zabbix密码。
全局设置LDAP身份验证后,Zabbix仍可以对某些用户组进行身份验证。这些组必须将
前端访问权限
设置为“内部”。反之亦然,如果全局使用内部身份验证,则可以指定LDAP身份验证详细信息,并将其用于
前端访问
设置为LDAP的特定用户组。
Zabbix LDAP身份验证至少与Microsoft Active Directory和OpenLDAP一起使用。
配置参数:
LDAP host
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 =用户,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身份验证
SAML 2.0身份验证可用于登录Zabbix。请注意,用户必须存在于Zabbix中,但是不会使用其Zabbix密码。如果身份验证成功,则Zabbix将匹配本地用户名(别名)与SAML返回的用户名属性。
如果启用了SAML身份验证,则用户将能够在本地登录或通过SAML单一登录之间进行选择。
设置身份提供者
为了使用Zabbix,需要以以下方式配置SAML身份提供程序(
onelogin.com
,
auth0.com
,
okta.com
等)
断言使用者URL应设置为
<path_to_zabbix_ui>/index_sso.php?acs
单一登出网址应设置为
<path_to_zabbix_ui>/index_sso.php?sls
<path_to_zabbix_ui>
示例:
设置ZABBIX
如果要在前端使用SAML身份验证,则需要安装php-openssl。
要使用SAML身份验证,应按以下方式配置Zabbix:
1.除非
zabbix.conf.php
中提供了自定义路径,否则私钥和证书应存储在ui/conf/certs/中。
默认情况下,Zabbix将在以下位置查找:
ui/conf/certs/sp.key-SP 私钥文件
ui/conf/certs/sp.crt-SP 证书文件
ui/conf/certs/idp.crt-IDP 证书文件
2.所有最重要的设置都可以在Zabbix前端中进行配置。但是,可以在
配置文件
中指定其他设置。
在Zabbix前端中可用的配置参数:
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
标记复选框以选择应为其启用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参数:
$ SSO ['SP_KEY'] ='<SP私钥文件的路径>';
$ SSO ['SP_CERT'] ='<SP证书文件的路径>';
$ SSO ['IDP_CERT'] ='<IDP证书文件的路径>';
$ SSO ['SETTINGS']
Zabbix使用
OneLogin的SAML PHP工具包
库(版本3.4.1)。$ SSO ['SETTINGS']部分的结构应类似于库使用的结构。有关配置选项的说明,请参见官方库
文档
。
只能将以下选项设置为$ SSO ['SETTINGS']的一部分:
strict(严格的)
compress(压缩)
contactPerson(联系人)
organization(组织)
sp(仅此列表中指定的选项)
安全性(仅此列表中指定的选项)
signMetadata(符号元数据)
wantNameId(想要的名称标识)
requestAuthnContext(请求认证上下文)
requestAuthnContextComparison(请求认证上下文比较)
wantXMLValidation(想要的XML验证)
RelaxDestinationValidation(目的验证)
destinationStrictlyMatches(严格匹配)
rejectUnsolicitedResponsesWithInResponseTo(拒绝未经请求的响应)
signatureAlgorithm(签名算法)
digestAlgorithm(摘要算法)
lowercaseUrlencoding
所有其他选项将从数据库中获取,并且不能被覆盖。在调试选项将被忽略。
配置示例: