ldap 管理指南
文章目录
1. slapd 和 slurpd 介绍
本章介绍如何编译、配置和运行独立的 LDAP 守护进程(slapd)和独立的更新复制守护进程(slurpd),该内容主要是针对系统管理员。
1.1 什么是目录服务
目录服务(英语:Directory service)是一个储存、组织和提供信息访问服务的软件系统,在软件工程中,一个目录是指一组名字和值的映射。它允许根据一个给出的名字来查找对应的值,与词典相似。像词典中每一个词也许会有多个词义,在一个目录中,一个名字也许会与多个不同的信息相关联。类似地,就像一个词会有多个不同的发音和多个不同的词义,目录中的一个名字可能会有多个不同类型的值。
目录也许只提供范围非常小的节点类型和数值类型,也可能对任意的或可扩展的一组类型提供支持。在一个电话目录中,节点就是姓名而数值项就是电话号码。在DNS中,节点是域名而数值项是IP地址(还有别名,邮件服务器名等等)。在一个网络操作系统的目录中,节点是那些由操作系统所管理的资源,包括用户、计算机、打印机和其它共享资源。互联网问世以来,有许多目录服务得到应用,但是本文主要关注那些源自X.500的目录服务。
目录服务遵循LDAP和X.500协议。目录服务的一个最常用例子是DNS服务。微软的Active Directory是目录服务的一个著名实现。
1.2 什么是 LDAP
轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。 目录服务在开发内部网和与互联网程序共享用户、系统、网络、服务和应用的过程中占据了重要地位。例如,目录服务可能提供了组织有序的记录集合,通常有层级结构,例如公司电子邮件目录。同理,也可以提供包含了地址和电话号码的电话簿。
1.3 LDAP 是如何工作的
LDAP目录的条目(entry)由属性(attribute)的一个聚集组成,并由一个唯一性的名字引用,即专有名称(distinguished name,DN)。例如,DN能取这样的值:“ou=groups,ou=people,dc=scutech,dc=com”。
1 2 3 4 5 |
dc=com |dc=scutech / \ ou=people ou=groups |
LDAP目录与普通数据库的主要不同之处在于数据的组织方式,它是一种有层次的、树形结构。所有条目的属性的定义是对象类object class的组成部分,并组成在一起构成schema;那些在组织内代表个人的schema被命名为white pages schema。数据库内的每个条目都与若干对象类联系,而这些对象类决定了一个属性是否为可选和它保存哪些类型的信息。属性的名字一般是一个易于记忆的字符串,例如用cn为通用名(common name)命名,而”mail”代表e-mail地址。属性取值依赖于其类型,并且LDAPv3中一般非二进制值都遵从UTF-8字符串语法。例如,mail属性包含值 user@example.com
;jpegPhotos属性一般包含JPEG/JFIF格式的图片。
1.4 什么是 slapd
Slapd 是 LDAP 的独立服务,可以在不同的 UNIX 系统下运行,你可以将其作为自己的目录服务器。Slapd 包含很多特性和功能: * 可选数据库:LDBM,基于磁盘的高性能数据库;SHELL,一个可以任意操作 UNIX 命令和 shell 脚本的数据库;PASSWD,简单的密码文件数据库。 * 支持多个数据库实例 * 通用的数据库接口 * 权限访问控制 * 多线程 * 可复制
1.5 什么是 X.500 协议
X.500是计算机目录服务的标准系列。最早是ITU-T X.500开发,前身为CCITT的,并于1988年首次批准,此一目录可以成为全球目录的一部分。
X.500协议包括:
- DAP (Directory Access Protocol)
- DSP (Directory System Protocol)
- DISP (Directory Information Shadowing Protocol)
- DOP (Directory Operational Bindings Management Protocol)
1.6 什么是 slurpd
Slurpd 是一个提供复制服务的 UNIX 进程,它负责分发到主 slapd 更改数据库的各种 slapd 的副本。
2. 安装配置 slapd
2.1 安装 slapd 和 ldap-utils
这里以 ubuntu 为例,说明如何安装和配置 slapd,通过 apt-get 来进行安装
1
|
sudo apt-get install slapd ldap-utils |
2.2 新增配置文件
1
|
sudo vi /etc/ldap/slapd.conf |
1 2 3 4 5 |
database ldbm suffix "dc=scutech,dc=com" rootdn "cn=admin, dc=scutech,dc=com" rootpw secret directory "/var/lib/ldap" |
重启 slapd
1
|
sudo service slapd restart |
查询数据
1
|
ldapsearch -x -LLL -b dc=scutech,dc=com |
可以看到我们添加的 admin 的数据
1 2 3 4 5 6 7 8 9 10 11 12 |
dn: dc=scutech,dc=com objectClass: top objectClass: dcObject objectClass: organization o: scutech.com dc: scutech dn: cn=admin,dc=scutech,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator |
2.3 新增用户
1
|
vi my.ldif |
1 2 3 4 5 6 7 8 9 |
dn: dc=scutech,dc=com o: scutech.com objectclass: organization dn: cn=admin, dc=scutech,dc=com cn: zhixin sn: wen mail: wenzhixin2010@gmail.com objectclass: person |
这里可以包含任何想要的属性值
1
|
ldapadd -cx -D cn=admin,dc=scutech,dc=com -w password -f my.ldif |
文章作者 wenzhixin
上次更新 2015-11-10