LDAP(輕型目錄訪問協議)是一個開放的、中立的、業標準的應用協議,通過IP協議提供訪問控制和維護分布式信息的目錄信息,它是由目錄數據庫和一套訪問協議組成的系統,詳情請查看 [百度百科](https://baike.baidu.com/item/輕型目錄訪問協議/10493115),LDAP協議最大的好處就是能統一管理用戶密碼,新人報道創建一個用戶就能登錄公司的所有平臺,離職一鍵刪除即可
---
### 說明
LDAP有兩個協議端口,分別是:
| 端口 | 協議描述 |
| :--: | :--: |
| 389 | ldap:// |
| 636 | ldaps:// |
---
### 互聯網
請注意截至寫稿日期(2022-02-15),OpenLDAP還沒有為CentOS8準備好安裝包,如果安裝過程中找不到 *openldap-servers*,需要下載源碼編譯安裝
- [openldap](https://www.openldap.org)
```
[CentOS 8-]
yum -y install openldap openldap-servers openldap-clients
[CentOS 8+]
yum -y install wget vim cyrus-sasl-devel libtool-ltdl-devel \
openssl-devel libdb-devel make libtool autoconf \
tar gcc perl perl-devel
useradd -r -M -d /var/lib/openldap -u 55 -s /usr/sbin/nologin ldap
wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.9.tgz
tar xzf openldap-2.4.9.tgz
cd openldap-2.4.9
./configure --prefix=/usr --sysconfdir=/etc --disable-static \
--enable-debug --with-cyrus-sasl --enable-dynamic \
--enable-crypt --enable-spasswd --enable-slapd --enable-modules \
--enable-rlookups --enable-backends=mod --disable-ndb --disable-sql \
--disable-shell --disable-bdb --disable-hdb --enable-overlays=mod
make depend
make install
```
---
### 局域網
```
rz
```
在彈出框中選擇對應的包并上傳
---
### CentOS 7
```
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap. /var/lib/ldap
systemctl start slapd
systemctl enable slapd
- 生成密碼
slappasswd -s <your password>
- 將生成的串替換文本
vim chrootpw.ldif
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: <above string with (SSHA)>
- 將密碼等用LDiF方式導入
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
- 向 LDAP 中導入一些基本的 Schema
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/core.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
```
---
### 容器安裝
ldap 數據目錄存放在:/data/slapd/,容器通過掛載可以直接使用
記得定期備份!
```
docker run --name ldap-core -p 389:389 -p 636:636 \
--volume /data/slapd/database:/var/lib/ldap \
--volume /data/slapd/config:/etc/ldap/slapd.d \
--env LDAP_ORGANISATION="dtzhejiang" \
--env LDAP_DOMAIN="dtzhejiang.com" \
--env LDAP_ADMIN_PASSWORD="Passw0rd" \
--env LDAP_TLS=false --restart=always --detach osixia/openldap
- 查詢用戶
docker exec ldap-core ldapsearch -x -H ldap://127.0.0.1 -b dc=dtzhejiang,dc=com -D "cn=admin,dc=dtzhejiang,dc=com" -w <your password>
```
---
### 常用命令
| 命令 | 描述 |
| :--: | :--: |
| ldapdelete -x -W -D | 刪除條目 |
| ldapsearch -x -b | 搜索條目 |
---
### 參考文檔
- [文1](https://wangshuashua.com/centos-7-install-openldap/)
- 前言
- 關于文檔
- 第一章 預備
- 1.1 機器資源
- 1.2 網絡環境
- 1.3 鏡像源
- 1.4 磁盤掛載
- 第二章 基礎組件
- 2.1 安裝Zlib
- 2.2 安裝JDK
- 2.3 安裝Maven
- 2.4 安裝Git
- 2.5 安裝SonarQube
- 2.6 安裝Nexus
- 2.7 安裝NodeJS
- 2.8 安裝Docker
- 2.9 安裝Compose
- 2.10 安裝Kubectl
- 第三章 集群組件
- 3.1 安裝Gitlab
- 3.2 安裝Jenkins
- 3.3 安裝Harbor
- 3.4 安裝Rancher
- 3.5 安裝Nacos
- 3.6 安裝LDAP
- 3.7 安裝LDAPAdmin
- 第四章 集群配置
- 4.1 配置流水線
- 4.2 配置Hook
- 4.3 配置Rancher-Cli
- 4.4 配置Harbor
- 4.5 配置LDAP
- 4.6 配置Rancher
- 第五章 開發集成
- 5.1 Java項目
- 5.2 NodeJS項目
- 5.3 Python項目
- 5.4 Go項目
- 第六章 F&Q
- 6.1 安裝錯誤Compose
- 6.2 安裝錯誤Harbor