简介:

LDAP(轻量级目录访问协议)是一种目录服务协议,常用于集中管理用户账户、密码和权限,适用于单点登录等场景。openldap是一个基于ldap实现的开源项目,本篇主要介绍openldap的部署和使用,以及与第三方服务的集成。

ldap相关概念

  • dn:LDAP中每个条目都有自己的dn,dn是该条目在整棵树中的唯一标识;

  • dc:域名组件,其格式是将完整的域名分成几部分,比如 dc=example,dc=com;

  • uid:用户ID;

  • ou:组织名称;

  • cn:公共名称,即常用名;

  • sn:姓氏;

部署openldap

这里使用docker方式进行部署;

version: "3.9"
networks:
  ldap:
    driver: bridge
services:
  phpldapadmin:
    container_name: phpldapadmin
    image: osixia/phpldapadmin:latest
    restart: always
    ports:
      - 80:80
    volumes:
      - /etc/localtime:/etc/localtime:ro
    environment:
      - PHPLDAPADMIN_LDAP_HOSTS=openldap
      - PHPLDAPADMIN_HTTPS=false
      - TZ=Asia/Shanghai
    networks:
      - ldap
  openldap:
    container_name: openldap
    image: osixia/openldap:latest
    restart: always
    ports:
      - 389:389
      - 636:636
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./data:/var/lib/ldap
      - ./conf:/etc/ldap/slapd.d
    environment:
      LDAP_TLS_VERIFY_CLIENT: never
      LDAP_ORGANISATION: org01  # 组织名称
      LDAP_DOMAIN: org01.cn     # 组织域, 如:cn=admin,dc=org01,dc=cn
      LDAP_ADMIN_PASSWORD: admin@123  # 管理密码(要足够复杂)
      LDAP_CONFIG_PASSWORD: admin@123 # 配置密码(要足够复杂)
      TZ: Asia/Shanghai
    networks:
      - ldap

# 启动服务
docker compose up -d
docker compose ps

创建账号

部署完成后,登录ldap管理页面,管理账号为cn=admin,dc=org01,dc=cn,密码是部署文件中LDAP_ADMIN_PASSWORD定义的值;

添加两个ou组,这里一个employee,用来存放成员信息,一个groups,用来定义成员组;

同样,继续创建groups组;

在名为groups的ou下添加两个成员组,分别是 operation、develop;

同样,添加另一个成员组;

继续创建用户,将用户加入到employee的ou下,并指定一个成员组,如下,创建用户zhangsan加入到operation,wangwu加入到develop组;

同样操作继续添加wangwu用户,结果如下;

dnf install -y openldap-clients

查看配置
 ldapsearch -x   -H ldap://192.168.0.130:389   -D "cn=admin,dc=org01,dc=cn"   -w admin@123   -b "dc=org01,dc=cn"   "(objectclass=*)"

继承LDAP

配置前先看下当前ldap里面两个用户组的gid号;