◆趙菁
LDAP協(xié)議在統(tǒng)一身份認(rèn)證系統(tǒng)中的應(yīng)用
◆趙菁
(北京信息職業(yè)技術(shù)學(xué)院 北京 100018)
企業(yè)通過門戶技術(shù)可以實(shí)現(xiàn)將各分立的系統(tǒng)統(tǒng)一起來。在項(xiàng)目中包括的一個(gè)重要部分就是將企業(yè)中各應(yīng)用系統(tǒng)的賬號、口令、權(quán)限信息集中統(tǒng)一管理。本文通過設(shè)計(jì)LDAP數(shù)據(jù)結(jié)構(gòu)、用戶數(shù)據(jù)接口和目錄服務(wù)接口,實(shí)現(xiàn)了使用LDAP存儲管理用戶,同時(shí)提高了系統(tǒng)的安全性。
LDAP協(xié)議;統(tǒng)一身份認(rèn)證;系統(tǒng)安全性
統(tǒng)一的人員組織、權(quán)限管理,實(shí)現(xiàn)統(tǒng)一認(rèn)證和訪問控制;實(shí)現(xiàn)應(yīng)用單一的登錄,使用戶在初始進(jìn)行一次登錄和身份認(rèn)證后,就可以訪問其具有訪問權(quán)限的任何系統(tǒng),而不需要再次登錄,后續(xù)系統(tǒng)會自動獲取用戶信息,從而識別出該用戶具有訪問權(quán)限,是統(tǒng)一身份認(rèn)證系統(tǒng)的目標(biāo)。而LDAP目錄作為系統(tǒng)集成中的一個(gè)重要環(huán)節(jié),提供了企業(yè)級的統(tǒng)一用戶信息管理,是實(shí)現(xiàn)統(tǒng)一認(rèn)證和訪問控制的必要前提。
LDAP(Lightweight Directory Access Protocol)即輕量級目錄訪問協(xié)議,此協(xié)議基于X.500標(biāo)準(zhǔn),TCP/IP協(xié)議作為其基礎(chǔ)。目錄訪問協(xié)議和數(shù)據(jù)庫很類似,但存在很大的不同。數(shù)據(jù)庫設(shè)計(jì)著重于方便數(shù)據(jù)的讀寫,而目錄訪問協(xié)議對讀優(yōu)化進(jìn)行了專門的設(shè)計(jì),不適用于對寫操作頻繁的數(shù)據(jù)存儲。目錄服務(wù)用于通過鍵-值類型格式存儲、整理及表達(dá)數(shù)據(jù)。一般來講,目錄會面向查找、搜索以及讀取操作做出優(yōu)化,因此適用于經(jīng)常引用但卻較少變更的數(shù)據(jù)。
信息模型是對LDAP中信息的表示方式進(jìn)行描述。信息模型中涉及的概念包括schema、objectClass、Attribute和Entry。
在目錄信息樹里創(chuàng)建一個(gè)條目(entry)時(shí),條目的信息存儲在屬性(attribute)里,屬性又被組合成對象類(objectClass),對象類進(jìn)一步組成了架構(gòu)(schema)。
(1)架構(gòu)(schema)
Schema 就是一個(gè)集合。所有的 objectClass 和 attribute 都定義在 Schema 里。每一個(gè) attribute 和 objectClass,包括其父級 attribute 和 objectClass 都必須定義在一個(gè) Schema 里,且該 Schema 必須能夠被 LDAP 服務(wù)器識別。Schema、objectClass和attribute的關(guān)系如圖1所示。
圖1 Schema、objectClass和attribute的關(guān)系
定義在一個(gè) Schema 里的 attribute 可以被另一個(gè) Schema 里的 objectClass 使用。
(2)對象類(objectClass)
objectClass 是 attribute 的集合。對象類由對象標(biāo)識(OID)、唯一名稱、父對象(SUP)、任何需要的屬性(MUST)和允許的屬性列表(MAY)5個(gè)組件組成。
在LDAP中objectClass分為三種:Abstract,Structural,AUXIALIARY。要定義一個(gè)Entry必須包含一個(gè)Structural類型的ObjectClass,其他兩個(gè)類型可包括0或多個(gè)。其中Top是一個(gè)頂級ObjectClass,里面定義了一個(gè)MUST Attribute:ObjectClass,于是也就決定了必須有一個(gè)其他的Structural ObjectClass才能定義一個(gè)Entry.其中ObjectClass又可以存在繼承關(guān)系,子ObjectClass會繼承父ObjectClass中的全部Attribute。該繼承關(guān)系于Java中有點(diǎn)相似。
(3)屬性(Attribute)
attribute 定義在 Schema里。Attribute類同于編程語言中的變量,它可以被賦值,就像是可以存放一個(gè)單一類型信息的容器。官方聲明了許多常用的 Attribute,也可以自定義,但要避免重名。objectClass是一種特殊的Attribute,它包含其他用到的 Attribute以及它自身。
(4)條目(Entry):
條目是目錄信息樹里 objectClass 的集合。entry 有且只能有一個(gè) STRUCTURAL objectClass。一個(gè) STRUCTURAL objectClass可能有一個(gè)同為 STRUCTURAL 類型的父級。entry 可以包含任意數(shù)目的 AUXILIARY objectClass。entry 可以有子 entry(child entry),父 entry(parent entry),同級 entry(sibling entry)。entry 有三種類型:
object entry - 最常見的一種,包含位于 objectClass 屬性(attributes)里的用戶數(shù)據(jù)
alias entry - 帶有單一屬性 aliasedObjectName 的 objectClass 別名
subentry - 用于存儲與父 entry 相關(guān)的管理或者操作數(shù)據(jù)
LDIF(即LDAP數(shù)據(jù)交換格式)內(nèi)的條目示例如下:
dn:sn=Ellingwood,ou=people,dc=digitalocean,dc=com
objectclass:person
sn:Ellingwood
cn:Justin Ellingwood
以上即為LDAP系統(tǒng)中的一條有效條目。
命名模型是對LDAP中數(shù)據(jù)的組織方式進(jìn)行描述。LDAP中的數(shù)據(jù)是以樹的形式進(jìn)行組織,被稱為目錄信息樹(Directory Information Tree,DIT)。目錄樹的根位于最頂部,即基準(zhǔn)DN。假設(shè)某個(gè)用戶Jack,他是abc公司銷售部門(sales)的一名員工,該公司的域名為abc.com。該用戶的表示方法為:CN=Jack OU=Sales DC=abc DC=com。LDAP的目錄信息樹如圖2所示。
圖2 LDAP的樹形結(jié)構(gòu)
功能模型是對LDAP中數(shù)據(jù)的獲取或者修改條目的操作進(jìn)行描述。包括查詢、更新、認(rèn)證和其他操作共四大類操作。
安全模型是對LDAP中的安全機(jī)制進(jìn)行描述。通過身份認(rèn)證、安全通道和訪問控制實(shí)現(xiàn)。
基于LDAP對讀取密集型用戶數(shù)據(jù)的卓越性能,在企業(yè)統(tǒng)一身份認(rèn)證系統(tǒng)中,用戶或應(yīng)用系統(tǒng)信息的存儲和管理即可采用LDAP技術(shù)。它們的特點(diǎn)是具有層次結(jié)構(gòu)、面向?qū)ο蟮姆绞酱鎯Φ臄?shù)據(jù)庫、數(shù)據(jù)能夠保持一致性和完整性,企業(yè)中的各類應(yīng)用系統(tǒng)都可以使用存儲和管理其中的共享信息,
如圖3所示,為企業(yè)的統(tǒng)一身份認(rèn)證系統(tǒng)目錄樹設(shè)計(jì)。DN為:O=abc.com。目錄樹中的信息由三部分組成:“Ou=北京”、Cn=users、Cn=groups。
圖3 目錄樹結(jié)構(gòu)
應(yīng)用系統(tǒng)集成DIT如圖4所示。目錄屬性列表如表1所示。
圖4 應(yīng)用系統(tǒng)集成DIT
表1 目錄屬性列表
包括用戶數(shù)據(jù)接口和目錄服務(wù)接口。集成應(yīng)用系統(tǒng)將通過用戶數(shù)據(jù)接口獲得用戶的身份信息。而通過目錄服務(wù)接口進(jìn)行目錄信息的存取操作。
本文結(jié)合某銀行現(xiàn)有應(yīng)用系統(tǒng)的情況,提出了使用LDAP存儲管理用戶,把相關(guān)的用戶信息存儲在LDAP服務(wù)器中,提供企業(yè)級的統(tǒng)一用戶信息管理。是進(jìn)一步實(shí)現(xiàn)統(tǒng)一認(rèn)證和訪問控制的必要前提,同時(shí)還提高了系統(tǒng)的安全性。
[1]華建祥,瞿霞. 基于 LDAP 協(xié)議的統(tǒng)一身份認(rèn)證系統(tǒng)研究[J].智能計(jì)算機(jī)與應(yīng)用,2019.
[2]吳科樺,張藝夕. 基于 LDAP 協(xié)議的 Solr 用戶認(rèn)證設(shè)計(jì)與實(shí)現(xiàn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2020.