LDAP概念瞭解

1、什麼是LDAP?數據庫

(一)介紹什麼是LDAP以前,「什麼是目錄服務?安全

    1. 目錄服務是一個特殊的數據庫,用來保存描述性的、基於屬性的詳細信息,支持過濾功能。服務器

    2. 是動態的,靈活的,易擴展的。app

    如:人員組織管理,電話簿,地址簿。性能

(二)瞭解完目錄服務後,咱們再來看看LDAP的介紹:大數據

LDAP(Light Directory Access Portocol),它是基於X.500標準的輕量級目錄訪問協議。優化

目錄是一個爲查詢、瀏覽和搜索而優化的數據庫,它成樹狀結構組織數據,相似文件目錄同樣。ui

目錄數據庫和關係數據庫不一樣,它有優異的讀性能,但寫性能差,而且沒有事務處理、回滾等複雜功能,不適於存儲修改頻繁的數據。因此目錄天生是用來查詢的,就好象它的名字同樣。this

LDAP目錄服務是由目錄數據庫和一套訪問協議組成的系統。spa

(三)爲何要使用

LDAP是開放的Internet標準,支持跨平臺的Internet協議,在業界中獲得普遍承認的,而且市場上或者開源社區上的大多產品都加入了對LDAP的支持,所以對於這類系統,不需單獨定製,只須要經過LDAP作簡單的配置就能夠與服務器作認證交互。「簡單粗暴」,能夠大大下降重複開發和對接的成本。

咱們拿開源系統(YAPI)作案例,只需作一下簡單的幾步配置就能夠達到LDAP的單點登陸認證了:

 

複製代碼
{
"ldapLogin": {
      "enable": true,
      "server": "ldap://l-ldapt1.ops.dev.cn0.qunar.com",
      "baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
      "bindPassword": "password123",
      "searchDn": "OU=UserContainer,DC=test,DC=com",
      "searchStandard": "mail"
   }
}
複製代碼

 

是否是很方便呢?

 

2、LDAP的主要產品

細心的朋友應該會主要到,LDAP的中文全稱是:輕量級目錄訪問協議,說到底LDAP僅僅是一個訪問協議,那麼咱們的數據究竟存儲在哪裏呢?

來,咱們一塊兒看下下面的表格:

廠商

產品

介紹

SUN

SUNONE Directory Server

基於文本數據庫的存儲,速度快 。

IBM

IBM Directory Server

基於DB2 的的數據庫,速度通常。

Novell

Novell Directory Server

基於文本數據庫的存儲,速度快, 不經常使用到。

Microsoft 

Microsoft Active Directory

基於WINDOWS系統用戶,對大數據量處理速度通常,但維護容易,生態圈大,管理相對簡單。

Opensource

Opensource

OpenLDAP 開源的項目,速度很快,可是非主 流應用。

 

 

 

 

 

 

 

 

 

 

沒錯,這就是正常存儲數據的地方,而訪問這些數據就是經過咱們上述所說的LDAP。相信到這裏你們應該瞭解二者之間的關係了吧!

3、LDAP的基本模型

每個系統、協議都會有屬於本身的模型,LDAP也不例外,在瞭解LDAP的基本模型以前咱們須要先了解幾個LDAP的目錄樹概念:

(一)目錄樹概念

1. 目錄樹:在一個目錄服務系統中,整個目錄信息集能夠表示爲一個目錄信息樹,樹中的每一個節點是一個條目。

2. 條目:每一個條目就是一條記錄,每一個條目有本身的惟一可區別的名稱(DN)。

3. 對象類:與某個實體類型對應的一組屬性,對象類是能夠繼承的,這樣父類的必須屬性也會被繼承下來。

4. 屬性:描述條目的某個方面的信息,一個屬性由一個屬性類型和一個或多個屬性值組成,屬性有必須屬性和非必須屬性。

(二)DC、UID、OU、CN、SN、DN、RDN

關鍵字

英文全稱

含義

dc

Domain Component

域名的部分,其格式是將完整的域名分紅幾部分,如域名爲example.com變成dc=example,dc=com(一條記錄的所屬位置)

uid

User Id

用戶ID songtao.xu(一條記錄的ID)

ou

Organization Unit

組織單位,組織單位能夠包含其餘各類對象(包括其餘組織單元),如「oa組」(一條記錄的所屬組織)

cn

Common Name

公共名稱,如「Thomas Johansson」(一條記錄的名稱)

sn

Surname

姓,如「許」

dn

Distinguished Name

「uid=songtao.xu,ou=oa組,dc=example,dc=com」,一條記錄的位置(惟一)

rdn

Relative dn

相對辨別名,相似於文件系統中的相對路徑,它是與目錄樹結構無關的部分,如「uid=tom」或「cn= Thomas Johansson」

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(三)基本模型:

信息模型:

  命名模型:

  

  功能模型:

  

  安全模型:

  

4、LDAP的使用

  那咱們是如何訪問LDAP的數據庫服務器呢?

  

  統一身份認證主要是改變原有的認證策略,使須要認證的軟件都經過LDAP進行認證,在統一身份認證以後,用戶的全部信息都存儲在AD Server中。終端用戶在須要使用公司內部服務的時候,都須要經過AD服務器的認證。

  那麼程序中是如何訪問的呢? 咱們以PHP腳本做爲例子:

$ldapconn = ldap_connect(「10.1.8.78")
$ldapbind = ldap_bind($ldapconn, 'username', $ldappass);
$searchRows= ldap_search($ldapconn, $basedn, "(cn=*)");
$searchResult = ldap_get_entries($ldapconn, $searchRows);
ldap_close($ldapconn);

1. 鏈接到LDAP服務器;

2. 綁定到LDAP服務器;

3. 在LDAP服務器上執行所需的任何操做;

4. 釋放LDAP服務器的鏈接;

相關文章
相關標籤/搜索