跳转到内容

LDAP教程

OpenLDAP 是轻量级目录访问协议(LDAP)的开源实现,由 OpenLDAP 项目组维护。它主要用于存储用户信息、组织结构及权限数据,是实现单点登录(SSO)和统一账号管理的核心组件。

LDAP 目录以树状结构(DIT)存储数据,理解以下术语至关重要:

  • 条目 (Entry):目录中的基本单元,代表一个对象(如用户、设备)。
  • 属性 (Attribute):描述条目的键值对,如 mail, uid, cn (Common Name)。
  • 对象类 (Object Class):定义了条目必须包含或可选包含的属性集合(如 inetOrgPerson)。
  • 识别名 (DN - Distinguished Name):条目的全局唯一标识。
    • 示例:cn=John Doe,ou=people,dc=example,dc=com
  • 根目录条目 (Root DSE):服务器的入口点,描述服务器的功能及根命名上下文。
后端开发者特点状态
BDBOracle高性能嵌入式数据库,曾是默认后端。已过时
HDBOpenLDAPBDB 变种,优化了层次化(树状)数据处理。已过时
MDBOpenLDAP高性能、无锁 (Lock-free)。2.4 引入,2.5 成为唯一默认后端。推荐
Terminal window
# 安装主程序与工具
sudo apt update && sudo apt install slapd ldap-utils
# 图形化/交互式配置 (设置域名、管理员密码等)
sudo dpkg-reconfigure slapd

适用于需要自定义模块或追求特定版本的场景。

Terminal window
# 安装编译依赖
sudo apt install build-essential libtool pkg-config libsasl2-dev libssl-dev libgnutls28-dev libltdl-dev
# 下载并解压
wget https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.6.9.tgz
tar -xzvf openldap-2.6.9.tgz
cd openldap-2.6.9/
# 编译配置 (启用 MDB 引擎)
./configure --prefix=/opt/software/openldap \
--enable-modules \
--enable-slapd \
--enable-mdb \
--enable-ldap \
--enable-crypt \
--enable-spasswd
make && make test
sudo make install

创建 database.ldif 用于定义 DIT 根节点及管理员权限:

dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcSuffix: dc=[example],dc=com
olcRootDN: cn=admin,dc=[example],dc=com
olcRootPW: {SSHA}[PASSWORD_HASH]

执行添加操作:

Terminal window
/opt/openldap/bin/ldapadd -x -H ldap:/// -D "cn=config" -W -f database.ldif