1. 程式人生 > >LDAP & Implementation

LDAP & Implementation

開源社區 bin ron 例子 arch 開源 password 訪問協議 程序

一、什麽是LDAP?

(一)在介紹什麽是LDAP之前,我們先來復習一個東西:“什麽是目錄服務?

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

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

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

(二)了解完目錄服務後,我們再來看看LDAP的介紹:

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

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

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

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

(三)為什麽要使用

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"
   }
}
技術分享圖片

技術分享圖片

是不是很方便呢?

二、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服務器的連接;

LDAP & Implementation