原创

LDAP轻量目录服务概念及其原理分析

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是以树状层次机构来存储数据的,基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。

LDAP特点以及与关系型数据库的不同点:

1)LDAP目录服务的数据类型主要是字符型, 而不是关系数据库提供的整数、浮点数、日期、货币等类型

2)为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax)

3)同样也不提供象关系数据库中普遍包含的大量的函数

4)目录有很强的查询(读)功能,适合于进行大量数据的检索但目录一般只执行简单的更新(写)操作,不支持批量更新所需要的事务处理功能

5)它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),不提供事务的回滚(rollback)机制.

6)目录具有广泛复制信息的能力,适合于多个目录服务器同步/更新

LDAP的优点:

1)跨平台和标准协议

2)安装简单,易于维护,和关系形数据库相比更易维护

3)LDAP的结构用树来表示,而不是用表格

4)LDAP可以很快地得到查询结果,不过在写方面,就慢得多,LDAP提供了静态数据的快速查询方式

5)client/server

模型:

Client提供操作目录信息树的工具,这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前

LDAP是一种开放Internet标准,LDAP协议是跨平台的 的Interent协议,它是基于X.500标准的, 与X.500不同,LDAP支持TCP/IP(即可以分布式部署)

结构:

server说明:

/usr/sbin/slapd -u ldap -h ldap:///

client说明:

用于对ldap server库进行操作工具:ldapadd, ldapsearch

用于将ldap server库在实际工作中使用工具:radius(RADIUS 是一种用于在需要认证其链接的网络访问服务器(NAS)和共享认证服务器之间进行认证、授权和记帐信息的文档协议)+ldap, pam+ldap

LDAP中提供三种身份认证机制:

1)匿名    Ldapsearch –x -LLL

2)基本认证    通过用户名和密码进行身份识别,又分为简单密码和MD5密码认证

# ldapadd -x -D "cn=root,dc=otas,dc=cn" -W -f base.ldif
-x就是simple authetication
Enter LDAP Password: 输入admin123
 adding new entry "dc=otas,dc=cn"
 adding new entry "ou=People,dc=otas,dc=cn"
 adding new entry "ou=Group,dc=otas,dc=cn"

3)SASL    Simple Authentication and Secure Layer

LDAP提供的在SSL和TLS安全通道基础上进行的身份认证,包括数字证书的认证

TLS 安全性:

分布式LDAP 是以明文的格式通过网络来发送信息的,包括client访问sldap的密码。TLS(SSL 的后继者,由OpenSSL 包)加密机制来解决这个问题。

DN,Distinguished Name分辨名,在LDAP中,一个条目的分辨名叫做“DN”,DN是该条目在整个树中的唯一名称标识,DN相当于关系数据库表中的关键字(Primary  Key);是一个识别属性,通常用于检索

常见的两种DN设置:

基于cn(姓名)

cn=Fran Smith,ou=employees,dc=foobar,dc=com (dn格式就是这么一大串)

最常见的CN是/etc/group转来的条目

基于uid(User ID)

uid=fsmith,ou=employees,dc=foobar,dc=com  最常见的UID是/etc/passwd和/etc/shadow转来的条目
~阅读全文-人机检测~

微信公众号“Java精选”(w_z90110),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信