暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

docker安装openldap

Code旅途 2021-11-19
2381

环境:

    centos 7.9

    docker 20.10.10

    openldap 当前最新版

一.安装ldap

1.拉取openldap镜像

执行docker pullosixia/openldap

 

2.创建映射目录

       执行mkdir -p /usr/local/ldap

 cd /usr/local/ldap

 

3.启动ldap容易

       dockerrun \

   -d \

   -p 389:389 \

   -p 636:636 \

   -v /usr/local/ldap:/usr/local/ldap \

   --name ldap \

osixia/openldap

 

配置LDAP域:--env LDAP_DOMAIN="***.com"

配置LDA密码:--env LDAP_ADMIN_PASSWORD="***"

补充:openLDAP环境变量

可以通过 --env [环境变量名] = [环境变量值] 为启动的openLDAP服务容器设置初始值,例如:

常用的环境变量如下:

LDAP_ORGANISATION 组织名称。默认为Example Inc.

LDAP_DOMAIN Ldap域。默认为example.org

LDAP_BASE_DN Ldap基本DN。如果为空,则自动从LDAP_DOMAIN值设置。默认为(empty)

LDAP_ADMIN_PASSWORD Ldap管理员密码。默认为admin

LDAP_CONFIG_PASSWORD Ldap配置密码。默认为config

LDAP_READONLY_USER 添加只读用户。默认为false

LDAP_READONLY_USER_USERNAME 只读用户名。默认为readonly

LDAP_READONLY_USER_PASSWORD 只读用户密码。默认为readonly

与TLS相关的环境变量如下:

LDAP_TLS 添加openldap TLS功能。设置为true后无法删除。默认为true。

LDAP_TLS_CRT_FILENAME Ldap ssl证书文件名。默认为ldap.crt

LDAP_TLS_KEY_FILENAME Ldap ssl证书私钥文件名。默认为ldap.key

LDAP_TLS_CA_CRT_FILENAME Ldap ssl CA证书文件名。默认为ca.crt

LDAP_TLS_ENFORCE 强制执行TLS但ldapi连接除外。设置为true后无法禁用。默认为false。

LDAP_TLS_CIPHER_SUITE TLS密码套件。默认为SECURE256:+SECURE128:-VERS-TLS-ALL:+VERS-TLS1.2:-RSA:-DHE-DSS:-CAMELLIA-128-CBC:-CAMELLIA-256-CBC,基于Red Hat的TLS强化指南

LDAP_TLS_VERIFY_CLIENT TLS验证客户端。默认为demand

与复制操作相关的环境变量如下:

LDAP_REPLICATION 添加openldap复制功能。默认为false

LDAP_REPLICATION_CONFIG_SYNCPROV 用于配置数据库的olcSyncRepl选项。没有基于LDAP_REPLICATION_HOSTS自动添加的rid和provider。默认为binddn="cn=admin,cn=config"bindmethod=simple credentials=$LDAP_CONFIG_PASSWORDsearchbase="cn=config" type=refreshAndPersist retry="60 +"timeout=1 starttls=critical

LDAP_REPLICATION_DB_SYNCPROV 用于数据库的olcSyncRepl选项。没有基于LDAP_REPLICATION_HOSTS自动添加的rid和provider。默认为binddn=“cn=admin,L D A P B A S ED N " b i n d m e t h o d = s i m p l e c r e d e n t i a l s =LDAP_BASE_DN" bindmethod=simple credentials=LDAP

BASEDN"bindmethod=simplecredentials=LDAP_ADMIN_PASSWORDsearchbase=”$LDAP_BASE_DN" type=refreshAndPersist interval=00:00:00:10retry=“60 +” timeout=1 starttls=critical

LDAP_REPLICATION_HOSTS 复制主机列表,必须包含由docker run命令上的–hostname设置的当前容器主机名。默认为:

- ldap://ldap.example.org

- ldap://ldap2.example.org12

如果要在docker run命令中设置此变量,请添加标记#PYTHON2BASH:并在python中转换yaml:dockerrun --envLDAP_REPLICATION_HOSTS="#PYTHON2BASH:['ldap://ldap.example.org','ldap://ldap2.example.org']"--detach osixia/openldap:1.2.21

其他环境变量如下:

KEEP_EXISTING_CONFIG 不要更改ldap配置。默认为false

如果使用现有数据库设置为true,则config将保持不变。imagetls和复制配置将不会运行。容器可以使用LDAP_ADMIN_PASSWORD和LDAP_CONFIG_PASSWORD空启动或填充假数据。

如果在引导新数据库时设置为true,则不会添加bootstap ldif和schema,并且不会运行tls和replicationconfig。12

LDAP_REMOVE_CONFIG_AFTER_SETUP 安装后删除配置文件夹。默认为true

LDAP_SSL_HELPER_PREFIX ssl-helper环境变量前缀。默认为ldap,ssl-helper在SSL_HELPER_ *变量之前首先从LDAP_SSL_HELPER_ *变量中搜索配置。

HOSTNAME 设置正在运行的openldap服务器的主机名。默认为docker创建的任何内容。

4.验证openldap

       #进入容器

执行 docker exec-it ldap /bin/bash

      # 执行查询

执行ldapsearch -x-H ldap://localhost:389 -b dc=example,dc=org -D"cn=admin,dc=example,dc=org" -w admin

# 或直接在容器外执行查询

执行docker exec-it ldap ldapsearch -x -H ldap://localhost:389 -b dc=example,dc=org -D"cn=admin,dc=example,dc=org" -w admin

 

5.默认配置描述

       dn          dc=example,dc=org

admin       admin,dc=example,dc=org

password    admin

二.安装phpldapadmin

1.拉去phpldapadmin镜像

       执行docker pull osixia/phpldapadmin

 

2.启动容器

       dockerrun -dit \

-p 8081:80 \

--link ldap \

--name pla \

--envPHPLDAPADMIN_HTTPS=false \

--env PHPLDAPADMIN_LDAP_HOSTS=ldap\

--restart always\

--detachosixia/phpldapadmin

 

三.登录

       浏览器输入http://ip:8081/

       登录名:cn=admin,dc=example,dc=org

       密码:admin

                       

   


 

四.Ldapaccountmanager安装

1. 拉取镜像

       执行docker pull ldapaccountmanager/lam

 

2. 启动容器

    执行docker run -p 8082:80 -it -d ldapaccountmanager/lam:stable

 

3.登录

http://ip:8082/lam

 

用户:admin

密码:admin

3.1配置修改

可选择语言为中文






补充

openLDAP常见的属性如下:

常用属性介绍

dn:唯一标志名,类似于linux文件系统中的绝对路径,每个条目都有一个标识名,例如uid=zhangsan,ou=people,dc=baidu,dc=com,在整个openldap中是唯一的,类似于mysql表中的主键
rdn
:通常指相对标识名,类似于linux文件系统中的相对路径,如uid=zhangsan
uid
:通常指一个用户的登陆名称,例如:uid=zhangsan
sn
:通常指一个人的姓氏,例如:sn: zhang
giveName:
通常指一个人的名字。giveNamezhangsan
objectClass
objectClass是特殊的属性,用来指定条目包含哪些对象类。如 objectClassperson
dc
:通常指定一个域名,例如 dc=baidu,dc=com
ou:
指定一个组织单元的名称:
ou=people,dc=baidu,dc=com
ou=group,dc=baidu,dc=com
mail:
邮箱 mail: didi@baidu.com


文章转载自Code旅途,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论