1.搭建LDAP服务器
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP
(1)什么是目录服务?
目录服务就是按照树状存储信息的模式
目录服务的特点? 目录服务与关系型数据库不同?
- 目录服务的数据类型主要是字符型, 而不是关系数据库提供的整数、浮点数、日期、货币等类型,为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax)
- 同样也不提供象关系数据库中普遍包含的大量的函数
- 目录有很强的查询(读)功能,适合于进行大量数据的检索
- 但目录一般只执行简单的更新(写)操作,不支持批量更新所需要的事务处理功能
- 它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),不提供事务的回滚(rollback)机制.
- 目录具有广泛复制信息的能力,适合于多个目录服务器同步/更新
(2)LDAP服务特点
- LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了
- LDAP可以很快地得到查询结果,不过在写方面,就慢得多
- LDAP提供了静态数据的快速查询方式
- Client/server模型
Server 用于存储数据
Client提供操作目录信息树的工具
(3)LDAP存储这样的信息最为有用: 也就是数据需要从不同的地点读取,但是不需要经常更新:
公司员工的电话号码簿和组织结构图
客户的联系信息
计算机管理需要的信息,包括NIS映射、email假名,等等
软件包的配置信息
公用证书和安全密匙
(4)LDAP目录数据结构
- 在LDAP中目录是按照树型结构组织——目录信息树(DIT)
DIT是一个主要进行读操作的数据库
- DIT由条目(Entry)组成,条目相当于关系数据库中表的记录;
条目是具有分辨名DN(Distinguished Name)的属性-值对(Attribute-value,简称AV)的集合
(5)在目录树中怎么组织数据
在UNIX文件系统中,最顶层是根目录(root),LDAP目录也通常用ROOT做根,通常称为BaseDN。
因为历史(X.500)的原因,LDAP目录用OU(Organization Unit)从逻辑上把数据分开来。
Ou 也是一种条目,容器条目
Ou 下就是真正的用户条目
(6)什么是dn?
DN,Distinguished Name分辨名
在LDAP中,一个条目的分辨名叫做“DN”,DN是该条目在整个树中的唯一名称标识,DN相当于关系数据库表中的关键字(Primary Key);是一个识别属性,通常用于检索
2.开始搭建过程:
sudo apt-get install ldap-utils sladpd
发生错误:
解决问题:
sudo apt-get install slapd ldap-utils migrationtools
(2)重新配置:
sudo dpkg-reconfigure slapd
如图, 修改DIT的后缀为 dc=example,dc=com ,DNS domain name就填写example.com, 也就是客户端要填写的基准DN
(3)新建一个add_content.ldif文件,用来添加对应用户密码, 如下图添加了一个john用户
sudo vi add_content.ldif
输入如下:
dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Groups,dc=example,dc=com objectClass: organizationalUnit ou: Groups dn: cn=miners,ou=Groups,dc=example,dc=com objectClass: posixGroup cn: miners gidNumber: 5000 dn: uid=john,ou=People,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: john sn: Doe givenName: John cn: John Doe displayName: John Doe uidNumber: 10000 gidNumber: 5000 userPassword: johnldap gecos: John Doe loginShell: /bin/bash homeDirectory: /home/john
ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif
完成 john的配置
(4)Router作为客户端配置
(5)登录认证成功:登录成功,表示LDAP服务器认证成功