LDAP 是轻量目录访问协议,英文全称是LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL,通常都简称为 LDAP。php
对读操做进行优化的一种数据库,在读写比例大于7比1的状况下,LDAP会体现出极高的性能。这个特性正适合了身份认证的须要。python
不一样于SQL数据库,LDAP的客户端是跨平台的,而且对几乎全部的程序语言都有标准的API接口。数据库
即便是改变了LDAP数据库产品的提供厂商,开发人员也不用担忧须要修改程序才能适应新的数据库产品。这个优点是使用SQL语言进行查询的关系型数据库难以达到的。编程
能够达到很高的安全级别。跨域
在国际化方面,LDAP使用了UTF-8编码来存储各类语言的字符。安全
OpenLDAP还包含了不少有创造性的新功能,能知足大多数使用者的要求。服务器
OpenLDAP是其中最轻便且消耗系统资源最少的一个。网络
OpenLDAP是开源软件,近年国内不少公司开发的LDAP产品都是基于OpenLDAP开发的。负载均衡
LDAP是根据schema的内容定义各类属性之间的从属关系及匹配模式的。ssh
例如在关系型数据库中若是要为用户增长一个属性,就要在用户表中增长一个字段,在拥有庞大数量用户的状况下是十分困难的,须要改变表结构。
但LDAP只须要在schema中加入新的属性,不会因为用户的属性增多而影响查询性能。
整棵树的任何一个分支均可以单独放在一个服务器中进行分布式管理,不只有利于作服务器的负载均衡,还方便了跨地域的服务器部署。
这个优点在查询负载大或企业在不一样地域都设有分公司的时候体现尤其明显。
1.LDAP是标准的、跨平台的,在Windows下也能支持。
2.LDAP支持非匿名的访问,并且有比较复杂的访问控制机制(如ACL),安全性彷佛更好一些。
3.LDAP支持不少复杂的查询方式。
4.LDAP的用途较NIS更为普遍,各类服务均可以和LDAP挂钩。
.网络服务:DNS服务
2.统一认证服务:
3.Linux PAM (ssh, login, cvs. . . )
4.Apache访问控制
5.各类服务登陆(ftpd, php based, perl based, python based. . . )
6.我的信息类,如地址簿
7.服务器信息,如账号管理、邮件服务等
做为通常的公司来讲,LDAP 不少时候被用来权限认证,软件和内部系统的用户管理和认证。
设想下,你有一个软件公司,公司里面有超过上千的员工,大家公司可能会用到各类软件,好比说 JIRA,Wiki,代码库,考勤系统等等。
LDAP 就充当了受权的这个角色,你可用在 LDAP 中对用户进行受权,分组,这样你的用户就会具备不经过软件平台的访问权限了。
如今公司的流动性也很是强,天天都会有入职的也会有离职的,对每个人都要进行受权,撤销权限,跨域管理等等与用户有关的操做,在大一点的公司这个简直就是灾难。
LDAP 可以很好的解决这个问题。
Spring Data 提供了基于 LDAP 协议访问的 API,须要注意的是,在开发的时候须要将 LDAP 认为是一个数据库,只是与普通数据库不一样的是,LDAP 使用的是 LDAP 的协议。
不然,在用户分组查询,等基于 Spring Data LDAP 的编程过程当中,你可能会感到很是困惑。