什麼情況適合使用LDAP?

為什麼很多大公司使用LDAP而不是關係型資料庫進行用戶管理?什麼情況下使用LDAP比使用關係型資料庫更好?


你基於 SQL 資料庫也要重新發明一套從 SQL 映射出樹形結構並進行查詢的方式

你基於 Web 也好 HTTP 也好還是需要重新定義一套 API 去查詢樹形的層級數據

LDAP 是一個被廣泛支持的、用於存儲和查詢樹形結構的協議,它的價值就是「廣泛接受的標準」

在一個沒有閉源商業系統必須通過 LDAP (以及 Kerberos、Radius 等等等等)整合的理想環境里你當然可以全部走 web 協議,比如全套 Google Apps + OAuth 認證連接 GitHub 的 web IDE 什麼的——樓上某位要是活在這樣的環境請允許我羨慕一下。


這兩個東西又不是互斥的關係,OpenLDAP明明就支持把用戶信息存到關係型資料庫里。


The main idea of LDAP Server is to keep in one place all the information of a user (contact details, login, password, permissions), so that it is easier to maintain by network administrators. For example you can:

1. use the same login/passwd to login on an Intranet and on your local computer.

2. give specific permissions to a group of user. For example some could access some specific page of your Intranet, or some specific directories on a shared drive.

3. get all the contact details of the people in a company on Outlook for example.


答案肯定是可以的。

但是,考慮到這套服務的通用性,易用性,balabala,還是會考慮LDAP。

(簡單粗暴的)分析:

如果使用資料庫,你準備讓使用服務的人如何接入?1給他開資料庫的訪問許可權?那你是不是還得提供準確的sql查詢腳本?2在資料庫之上,提供一套web服務?那接入方要嚴格按照你的api對接咯。這樣接入方更換認證服務的時候,很可能是不統一的api,想想都麻煩。

認證服務是LDAP的話,接入方的平台確認了之後,接入調用的api就是確定的,只要更換服務的地址,目錄的信息就可以了,是不是簡單很多。


成熟而統一的標準,方便各種服務集成;

強大的群組管理。


directory database 和 relational database的區別。。。這是一個很大的話題。還要上班,簡單回答一下。當你需要儲存大量的數據,而且數據不是經常更改,需要很快速的查找的話。用LDAP。


推薦閱讀:

如何用OmniPlan?
項目管理的前路?
唐僧到底是不是合格的項目經理?
在軟體項目開發過程中,要求開發人員每天提交一份工作日誌合理嗎?

TAG:項目管理 | IT項目管理 | LDAP |