LDAP 笔记

By | 2024年4月9日

介绍

LDAP——轻量目录访问协议,一般用在企业内部用于保存员工信息和组织架构,同时可以作为个人电脑以及应用系统的统一认证和登录。官网

base dn 是LDAP目录树的最顶部,也就是树的根,一般使用公司的域名。

服务端

下面介绍 Ubuntu 上安装 LDAP 服务的步骤。

安装服务端

sudo apt update
sudo apt install slapd ldap-utils

配置 LDAP 服务:

# 此命令可以重复执行
sudo dpkg-reconfigure slapd

以上命令会进入向导配置界面,根据需要选择以下选项:

  • Omit OpenLDAP server configuration? [No]: No 选择 “No”,进行OpenLDAP服务器配置。
  • DNS domain name: 输入您的域名,如 example.com
  • Organization name: 输入您的组织名称。
  • Administrator password: 输入LDAP管理员密码,确保密码复杂度强。
  • Remove the database when slapd is purged? [No]: 根据您的需求选择是否删除数据库。
  • Move old database? [Yes]: 根据您的需求选择是否移动旧数据库。

提醒:装好后执行 netstat –an| grep 389 检查服务是否起来了,但发现一直没起来,重启电脑后起来了!

安装 Web 管理界面 – phpldapadmin

# 1. 安装
apt-get install phpldapadmin -y

# 2. 配置
vim /etc/phpldapadmin/config.php
=================================================================
修改的地方:
$servers->setValue('server','base',array('dc=example,dc=com'));
=================================================================

# 3. 关闭 apache 的默认界面
a2dissite 000-default.conf
systemctl restart apache2

服务起来后,登陆管理页面:http://SERVER_IP/phpldapadmin。

页面 Unrecognized error number 处理

页面虽然可以访问了,但是页面上有报错,参考这篇解决了:Unrecognized error number: 8192: trim(): Passing null to parameter #1 ($string) of type string is deprecated

步骤:

(1)下载 http://archive.ubuntu.com/ubuntu/pool/universe/p/phpldapadmin/phpldapadmin_1.2.6.3-0.3_all.deb
(2)下载后安装它:dpkg -i phpldapadmin_1.2.6.3-0.3_all.deb
(3)修复/安装依赖项:sudo apt-get -f install

重启web服务后就可以了!

登录

使用上面设置的 admin 账号的管理员密码登录(匿名登录用户不可以创建新条目的,没有按钮入口的):

添加组织单位

添加组

同样的方法创建一个cn=users:

添加用户

添加后出现了两个名称一样的用户名,我删了一个,导致点击另一个同名的一致是空的,实际上刷新或者logout再login就显示正常了:

以上设置参考自Ubuntu Server 20.04上安装OpenLDAP和phpLDAPadmin中的 “2.安装phpLDAPadmin”这节。

客户端

命令行工具

# 安装LDAP客户端工具包后,可以使用工具进行LDAP操作
sudo apt install ldap-utils

# 检索本机 LDAP 目录中所有条目
#ldapsearch -x -b dc=example,dc=com

# 需要输入管理员密码以进行身份验证。如果连接成功并显示您的LDAP目录内容
ldapsearch -x -H ldap://<LDAP_SERVER_IP> -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -W

可视化工具

推荐使用 LdapBrowser:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注