LDAP 是轻量目录拜访协定,英文全称是LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL,个别都简称为 LDAP。
读写效率十分高
对读操作进行优化的一种数据库,在读写比例大于7比1的状况下,LDAP会体现出极高的性能。这个个性正适宜了身份认证的须要。
凋谢的标准协议
不同于SQL数据库,LDAP的客户端是跨平台的,并且对简直所有的程序语言都有规范的API接口。
即便是扭转了LDAP数据库产品的提供厂商,开发人员也不必放心须要批改程序能力适应新的数据库产品。这个劣势是应用SQL语言进行查问的关系型数据库难以达到的。
强认证形式
能够达到很高的安全级别。
在国际化方面,LDAP应用了UTF-8编码来存储各种语言的字符。
OpenLDAP开源实现
OpenLDAP还蕴含了很多有创造性的新性能,能满足大多数使用者的要求。
OpenLDAP是其中最轻便且耗费系统资源起码的一个。
OpenLDAP是开源软件,近年国内很多公司开发的LDAP产品都是基于OpenLDAP开发的。
灵便增加数据类型
LDAP是依据schema的内容定义各种属性之间的从属关系及匹配模式的。
例如在关系型数据库中如果要为用户减少一个属性,就要在用户表中减少一个字段,在领有宏大数量用户的状况下是十分困难的,须要扭转表构造。
但LDAP只须要在schema中退出新的属性,不会因为用户的属性增多而影响查问性能。
数据存储是树结构
整棵树的任何一个分支都能够独自放在一个服务器中进行分布式治理,不仅有利于做服务器的负载平衡,还不便了跨地区的服务器部署。
这个劣势在查问负载大或企业在不同地区都设有分公司的时候体现尤为显著。
LDAP 的特点
- LDAP 是一种网络协议而不是数据库,而且LDAP的目录不是关系型的,没有RDBMS那么简单,
- LDAP不反对数据库的Transaction机制,纯正的无状态、申请-响应的工作模式。
- LDAP不能存储BLOB,LDAP的读写操作是非对称的,读十分不便,写比拟麻烦,
- LDAP反对简单的查问过滤器(filter),能够实现很多相似数据库的查问性能。
- LDAP应用树状构造,靠近于公司组织构造、文件目录构造、域名构造等咱们耳熟能详的货色。 LDAP应用简略、接口标准,并反对SSL拜访。
LDAP与NIS相比
1.LDAP是规范的、跨平台的,在Windows下也能反对。
2.LDAP反对非匿名的拜访,而且有比较复杂的访问控制机制(如ACL),安全性仿佛更好一些。
3.LDAP反对很多简单的查问形式。
4.LDAP的用处较NIS更为宽泛,各种服务都能够和LDAP挂钩。
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 的编程过程中,你可能会感到十分困惑。
https://www.ossez.com/t/ldap/523