由于最近的工作涉及到PG的LDAP认证登录,以前没有接触过LDAP方面的内容,于是将LDAP服务器的搭建以及如何实现PG的LDAP认证登录记录下来。一来是为了将来使用能有所参考,二来是为了增加自己对LDAP的理解。本文记载了两种方式实现PG的LDAP认证,其中的主要差别在于服务器安装方式的不一样和管理工具的不一样。
方法一:本地服务器安装与管理
一:LDAP服务器的搭建
参考文章:https://my.oschina.net/u/2496664/blog/801996 的安装配置
其中安装和重新配置都需要做,否则之后使用ldap_account_manager进行登录可能会遇到问题。
二:LDAP管理工具环境搭建
使用LDAP的命令行管理工具对LDAP服务器进行管理比较困难,因此采用web管理接口进行管理。首先需要安装lamp服务环境。安装好lamp环境后,就可以利用web管理接口对LDAP服务器进行管理了。选择ldap_account_manager对LDAP服务器进行管理。ldap_account_manager的官网为:https://www.ldap-account-manager.org/lamcms/
(1)安装
1、sudo apt-get install ldap-account-manager
2、重启apache Web服务器
sudo systemctl restart apache2
可参考:https://ywnz.com/linuxyffq/4177.html 进行安装和配置
(2)配置
安装完成之后需要进行一些配置的操作
1、打开浏览器,http://IP/lam
(2)点击右上角的配置进行配置,点击Edit general settings
(3)输入密码,初始密码为lam
(4)可以更改密码,不清楚具体功能,可以点击问号查看功能
(5)Edit server profiles
三:利用LDAP管理工具向LDAP服务器中添加用户
上述操作完成后就可以通过登录页面完成登录,如果登录没有成功,请检查第一步安装ldap服务器时,配置和管理员用户的设置问题。
登录成功后页面为:
点击Users可以向LDAP服务器中用户,点击Groups可进行进行组的添加。
四:使用LDAP服务器进行PostgreSQL的认证
pg_hba.conf 参照如下的ldap配置进行配置
# "local" is for Unix domain socket connections only local all all ldap ldapserver=16.157.247.8 ldapprefix="uid=" ldapsuffix=",ou=People,o=System Support,dc=my-domain,dc=com" #local all all md5 # IPv4 local connections: #host all all 127.0.0.1/32 md5 host all all 127.0.0.1/32 ldap ldapserver=16.157.247.8 ldapprefix="uid=" ldapsuffix=",ou=People,o=System Support,dc=my-domain,dc=com" # IPv6 local connections: host all all ::1/128 md5
配置编译postgresql时加上--with-ldap选项,然后执行正常的连接操作即可实现ldap方式的认证登录。
方法二:使用docker安装ldap服务器和管理工具
一:服务器的安装
一句命令完成安装
docker run -p 389:389 -p 636:636 --name my-openldap-container --detach osixia/openldap:1.4.0
安装完成之后需要进入到docker中修改配置
docker exec -it docker-container-ID /bin/bash
vim /etc/ldap/ldap.conf
再次进行另外的配置,主要为了添加管理用户,后续管理工具登录需要。
dpkg-reconfigure slapd
具体实现可参考https://my.oschina.net/u/2496664/blog/801996
二:LDAP服务器管理工具的安装
一句话安装
docker run -p 6443:443 --env PHPLDAPADMIN_LDAP_HOSTS=10.2.7.100 --name phpldapadmin --detach osixia/phpldapadmin:0.8.0
注意:PHPLDAPADMIN_LDAP_HOSTS=10.2.7.100 的IP地址不能为127.0.0.1
安装完成后,打开浏览器https://127.0.0.1:6443然后登录管理员张皓密码。
参考文档:
https://blog.csdn.net/Man_In_The_Night/article/details/101530244
https://github.com/osixia/docker-phpLDAPadmin