1:拉取镜像
docker pull osixia/openldap:1.5.0
docker pull osixia/phpldapadmin:0.9.0
2: 编写docker-compose.yaml
cd /data/docker/ldap
vi docker-compose.yaml
docker-compose.yaml内容如下:
version: '3.1'
services:
openldap:
image: osixia/openldap:1.5.0
restart: always
container_name: openldap
privileged: true
networks:
- openldap-net
environment:
LDAP_ORGANISATION: "example"
LDAP_DOMAIN: "example.com"
LDAP_ADMIN_PASSWORD: "123456"
LDAP_CONFIG_PASSWORD: "123456"
ports:
- 389:389
- 636:636
volumes:
- /data/docker/ldap:/usr/local/ldap
phpldapadmin:
depends_on:
- openldap
image: osixia/phpldapadmin:0.9.0
restart: always
container_name: phpldapadmin
privileged: true
networks:
- openldap-net
environment:
- PHPLDAPADMIN_HTTPS=false
- PHPLDAPADMIN_LDAP_HOSTS=192.168.31.2
ports:
- 8499:80
networks:
openldap-net:
driver: bridge
3: 启动成功后登录
输入网址:http://192.168.31.2:8499
点击login登录
Login DN: cn=admin,dc=example,dc=com
Password: 123456
登录成功后,如下图
4:ldap基础知识
关键字 | 英文名称 | 含义 |
dc | Domain Component | 域名的部分,其格式是将完整的域名分成几部分,如域名example.com变成dc=example,dc=com (一条记录的所属位置) |
uid | User Id | 用户ID san.zhang(一条记录的ID) |
ou | Organization Unit | 组织单位,组织单位可以包含其他各种对象(包括其他组织单元),如 “oa组”(一条记录所属组织) |
cn | Common Name | 公共名称,如 “public team”(一条记录的名称) |
sn | Surname | 姓 ,如:“张” |
dn | Distinguished Name | "uid=san.zhang,ou=oa组,dc=example,dc=com" (一条记录的位置,唯一) |
rdn | Relative dn | 相对辨别名,类似于文件系统的相对路径,它是与目录树结构无关的部分,如“uid=tom” 或“cn= "public team” |
5:ldap数据的增删改查
语法:ldapmodify [ldap服务器地址] [用户名] [密码] [ldif文件地址]
ldif文件如下:demo.ldif
dn: cn=jingdong,dc=example,dc=com
objectClass: inetOrgPerson
cn: jingdong
sn: dym
title: the world's most famous mythical manager
mail: dym@example.com
uid: dym