最近公司引入了很多办公协助软件,比如meterphere,gitlab,Jenkins等等,然而登录这些系统的时候需要用各自的用户名密码登录,根本打不通
所以研究了一下LDAP这个协议
参考:
https://segmentfault.com/a/1190000014683418?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
https://www.cnblogs.com/fengjian2016/p/12494784.html
https://hub.fastgit.org/Nordes/IdentityServer4.LdapExtension/
首先,我使用windows docker部署了osixia/openldap跟osixia/phpldapadmin,前者是ldap的服务端,后者是客户端,后面我觉得这个客户端不太好用,然后下载了
LdapAdminExe-w64-1.8.3,这是一个窗体客户端,个人觉得比较好用
1. 部署服务端
不得不说,使用docker部署非常方便,但是在客户端写入的数据都是放在容器里面的,当容器重启后,数据也就丢失了,所以如果需要部署生产使用,这里需要将存储拆出来
docker run -d -p 389:389 -v /data/ldap/ldap:/var/lib/ldap -v /data/ldap/slapd.d:/etc/ldap/slapd.d --name ldap --env LDAP_TLS=false --env LDAP_ORGANISATION="zhongrui" --env LDAP_DOMAIN="zhongruigroup.com" --env LDAP_ADMIN_PASSWORD="123456" --env LDAP_CONFIG_PASSWORD="123456" --restart always --detach osixia/openldap
配置LDAP组织者:LDAP_ORGANISATION
配置LDAP域:LDAP_DOMAIN
配置LDAP密码:LDAP_ADMIN_PASSWORD
默认登录用户名:admin
2.使用客户端
1)phpldapadmin
2)LdapAdminExe
3. 运行IdentityServer4
使用上面github代码改造为netcore3.1运行https://gitee.com/liuzhiwei1110/identity-server.ldap-extension