docker
docker 部署合集
docker搭建OpenLDAP
docker-compose
phpLdapAdmin 创建用户和组
jenkins 集成 ldap
添加memberOf模块
gitlab 集成ldap
OpenLDAP多主复制(基于docker容器模式部署)
ldap 日志
LDAP自助密码服务平台
cadvisor
开放 端口 和 套接字
docker命令
Weave Scope
cmd entrypoint
docker-compose 删除数据卷
docker slim
面试
harbor 更新证书
Docker Build Cache 缓存清理
本文档使用 MrDoc 发布
-
+
首页
docker搭建OpenLDAP
## 安装(docker方式) dockerhub: * openldap:https://hub.docker.com/r/osixia/openldap *phpldapadmin:https://hub.docker.com/r/osixia/phpldapadmin github: * openldap:https://github.com/osixia/docker-openldap,有详细的使用说明 * phpldapadmin:https://github.com/osixia/docker-phpLDAPadmin,有详细的使用说明 1. 启动openldap容器: ``` docker run -p 389:389 -p 636:636 --name ldap-service --detach --hostname ldap-service osixia/openldap # 检查是否启动成功 docker exec ldap-service ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin ``` 2. 启动phpldapadmin容器: ``` docker run -p 6443:443 --name phpldapadmin-service --hostname phpldapadmin-service --link ldap-service:ldap-host --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin ``` 3. 浏览器打开:https://localhost:6443/ 默认账号:cn=admin,dc=example,dc=org 默认密码:admin 4.新建一个用户组和用户 ``` # 参考:https://www.cnblogs.com/xiaomifeng0510/p/9564688.html 左侧dc=example,dc=org域下点击Create new entry here 选择Generic: Posix Group 输入组名,比如employee 点击Create Object 点击Commit 左侧选择刚刚创建的组 右侧点击Create a child entry 右侧选择Generic: User Account 只需要输入Last name和Password,这里我填e1和123456 点击Create Object 点击Commit 这样我们就得到了一个dn为cn=e1,cn=employee,dc=example,dc=org,密码为123456的用户,各种系统接入ldap登录时用户名就是e1 ``` 5.可以新开一个无痕浏览器进入https://localhost:6443/, 使用dn=cn=e1,cn=employee,dc=example,dc=org,密码=123456进行登录 ## Python操作 1.python代码中测试这个新创建的用户的登录 ```python # pip install ldap3 from ldap3 import Server, Connection # 基本认证 server = Server(host='127.0.0.1', port=389) conn = Connection(server, 'cn=e1, cn=employee,dc=example,dc=org', '123456', auto_bind=True) print(conn.extend.standard.who_am_i()) # 会输出:dn:cn=e1,cn=employee,dc=example,dc=org ``` 2.管理员身份登录ldap并搜索用户 ```python from ldap3 import Server, Connection # admin账号绑定search conn = Connection(server, 'cn=admin,dc=example,dc=org', 'admin', auto_bind=True) conn.bind() print(conn) r = conn.search(search_base='cn=employee,dc=example,dc=org', search_filter='(cn=e1)', attributes=['mail']) print(r) # search是否成功(True,False) print(conn.result) # 查询失败的原因 print(conn.entries) # 查询到的数据 for entry in conn.entries: print(entry.entry_to_json()) ``` ## 扩展 * 使用代码管理ldap,包括新建组、用户、修改密码等:http://ldap3.readthedocs.io/ * 想要自定义各种配置以及了解更多细节请仔细查阅: * https://github.com/osixia/docker-openldap * https://github.com/osixia/docker-phpLDAPadmin * 主要是通过环境变量来控制各种东西 * 生产环境注意保管好OpenLDAP的数据卷
admin
2023年2月15日 16:12
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码