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 的編程過程當中,你可能會感到很是困惑。