摘要

OpenLdap可以提供强大的集中账号管理和授权,但其强大的功能依赖多个插件的集成,为方便OpenLdap的编译和部署,我便制作了一个docker 镜像,并通过本文记录该镜像的使用方法。

文档环境

  • 本文档中代码的测试环境

    OpenLdap Docker 部署

获取镜像

docker pull nginxbar/ldapsso:0.1

容器启动

docker run -p 389:389 -p 636:636 --name ldapsso --detach nginxbar/ldapsso:0.1

自定义ldap域

镜像默认的ldap域是nginxbar,根域是dc=nginxbar,dc=com,自定义域可用如下方式修改

docker run -p 389:389 -p 636:636 \
    -e DOMAIN=ldapsso \
    -e BASE_DN=dc=ldapsso,dc=com \
    --name ldapsso --detach nginxbar/ldapsso:0.1

修改管理员及密码

通过环境变量 ADMIN 及 CONFIG_PASS 修改管理员账号及密码

docker run -p 389:389 -p 636:636 \
    -e ADMIN=superadmin \
    -e CONFIG_PASS=admin \
    --name ldapsso --detach nginxbar/ldapsso:0.1

AD 域集成

镜像已经配置好AD 集成的环境,在使用时,只需配置好AD域的相关参数即可。

docker run -p 389:389 -p 636:636 \
      -e AD_SERVER=xxx.xxx.xxx.xxx \
      -e AD_BASE_DN=DC=office,DC=nginxbar,dc=com \
      -e AD_BIND_DN=CN=admin,CN=Users,DC=office,DC=nginxbar,dc=com \
      -e AD_PASSWD=abcdefg --detach nginxbar/ldapsso:0.1

密码修改

镜像集成了一个自修改密码的web程序,通过8080端口直接访问。

docker run -p 389:389 -p 636:636 -p 8080:8080 --name ldapsso --detach nginxbar/ldapsso:0.1

docker-compose 脚本

version: '3.3'
services:
  ldapsso:
    hostname: ldapsso
    image: nginxbar/ldapsso:0.1
    container_name: ldapsso
    ports:
      - 389:389
      - 636:636
      - 8080:8080
    environment:
      - HOSTNAME=localhost
      - LOG_LEVEL=256
      - ADMIN=root
      - CONFIG_PASS=admin
      - DOMAIN=ldapsso
      - BASE_DN=dc=ldapsso,dc=com
      - AD_SERVER=xxx.xxx.xxx.xxx
      - AD_BASE_DN=DC=office,DC=nginxbar,DC=com
      - AD_BIND_DN=CN=admin,CN=Users,DC=office,DC=nginxbar,dc=com
      - AD_PASSWD=abcdefg

参考文档

https://hub.docker.com/repository/docker/nginxbar/ldapsso