Zabbix对接AD域进行认证

如果Zabbix开启LDAP认证提示“缺失PHP LDAP库”,需要先给PHP增加LDAP扩展

编译安装LDAP
进入PHP源码包的LDAP扩展目录
cd php-7.3.33/ext/ldap

使用phpize准备扩展库编译环境,可以在不重新编译PHP的情况下增加扩展,直接在需要增加的扩展目录下执行命令
phpize
然后编译安装LDAP

./configure --with-ldap -with-php-config=/usr/local/php/bin/php-config
make
make install

如果编译提示找不到ldap.h,需要先安装OpenLDAP开发库
CentOS
openldap-devel
Debian
apt install libldap2-dev
安装完成后再次编译安装LDAP

启用LDAP
编辑php.ini,取消注释或者增加extension=ldap,然后重启PHP,执行命令php -i | grep ldap,输出结果Protocols中包含ldap,表示成功

Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
ldap
ldap.max_links => Unlimited => Unlimited

配置LDAP
开启LDAP验证
LDAP主机:ldap://192.168.0.5(前缀ldap://,后面是AD域服务器的IP或者主机名)
端口:389(LDAP协议默认端口)
基于DN:CN=Users,DC=test,DC=com(搜索帐户的基本路径,可以限制到OU)
搜索属性:sAMAccountName(表示AD的登录账号)
绑定DN:CN=zabbix,CN=Users,DC=test,DC=com(用于和AD域对接的账号,无需域管理员权限)
绑定密码(对应上面域账号的密码)
测试认证(使用一个基于DN范围内的域账号,测试LDAP连接)

添加用户
新建用户群组,前端访问设置为LDAP

新建用户,用户名为域账号,群组选择上一步创建的LDAP组,密码随意,完成后测试使用域账号和密码登录

如果默认认证方式改为LDAP,为避免AD域故障导致Zabbix前端无法登录,需要新建用户群组,前端访问设置为用户类型,将本地用户加入到此组

参考:
https://www.sijitao.net/1851.html
https://bbs.vpser.net/thread-14818-1-1.html