專利名稱::一種基于ActiveDirectory的B/S結構的LDAP訪問控制方法
技術領域:
:本發(fā)明涉及一種LDAP訪問控制方法,尤其是涉及一種基于ActiveDirectory的B/S結構的LDAPi方問4空制方法。
背景技術:
:目前,大多數企業(yè)的經營都涉及到多種性質不同的業(yè)務,因此在企業(yè)內部的計算機網絡中,通常形成多個應用系統(tǒng)來分別滿足這些業(yè)務的需求。以廣電行業(yè)為例,電視臺內部根據業(yè)務范圍劃分為多個不同的業(yè)務板塊,不同的板塊根據其業(yè)務需求,往往要使用不同的應用系統(tǒng),例如總控收錄系統(tǒng)、新聞制播系統(tǒng)、綜合制作系統(tǒng)、演播室系統(tǒng)、媒資管理系統(tǒng)、播出系統(tǒng)等。各個應用系統(tǒng)都需要擁有一份統(tǒng)一的電視臺內部人員組成信息,電視臺需要為這些應用系統(tǒng)提供諸如部門人員結構、欄目組人員結構等信息,并且這些應用系統(tǒng)都需要提供一個登陸時驗證用戶名及密碼的功能。工作時,用戶經常需要在不同的板塊之間來回切換,需要重復多次登錄。因此單點登陸逐漸成為電視臺或類似企業(yè)網絡中必不可少的功能單元。鑒于很多單點登陸系統(tǒng)采用基于LDAP技術實現,而常見的LMP訪問控制功能往往通過C/S方式來實現,因此需要在每個客戶終端上安裝LDAP訪問控制軟件。對于客戶終端數量較大的局域網來說,每次安裝或者更新LDAP訪問控制軟件,需要花費很多的時間和精力,效率較低。
發(fā)明內容針對現有技術中存在的問題,本發(fā)明的目的是提供一種基于ActiveDirectory的B/S(瀏覽器〃良務器)結構的LDAP訪問控制方法,該方法能夠實現客戶端通過瀏覽器即可訪問和管理ActiveDirectory服務器。為了實現上述目的,本發(fā)明采用的技術方案是,一種基于ActiveDirectory的B/S結構的LDAP訪問控制方法,包括如下步驟(l)在ActiveDirectory服務器中配置節(jié)點和參數;(2)客戶端瀏覽器向ActiveDirectory服務器發(fā)送對步驟(1)中節(jié)點的操作請求,ActiveDirectory服務器對節(jié)點進行搡作后,將操作結果返回到客戶端瀏覽器;(3)客戶端瀏覽器將步驟(2)中返回的操作結果顯示在網頁上。如上所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,步驟(l)中所述的ActiveDirectory服務器配置的參數包括ActiveDirectory服務器名稱項、訪問ActiveDirectory月良務器的用戶謹和訪問ActiveDirectory服務器的密碼。如上所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,步驟(2)中客戶端瀏覽器向ActiveDirectory服務器發(fā)送對節(jié)點的操作請求是一個包含節(jié)點屬性信息的XML格式的字符串。如上所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,所述的包含節(jié)點屬性信息的XML格式的字符串通過一個可編輯表格生成,該表格中的屬性信息和一個XML文檔進行綁定,用戶對表格中的屬性信息的才喿作實時反映到XML文檔中。如上所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,步驟(2)中對節(jié)點的操作包括增加、刪除、修改和查詢。如上所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,步驟(2)中ActiveDirectory服務器對節(jié)點的操作過程為首先對客戶端瀏覽器發(fā)送的XML格式的字符串進行解析,提取節(jié)點的屬性信息,然后根據節(jié)點的屬性信息對該節(jié)點進行操作。如上所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,步驟(3)中所述的顯示返回結果采用樹形結構和屬性表相結合的方式。所述的屬性表包括主屬性和擴展屬性。在客戶端瀏覽器顯示樹型結構時,首先從ActiveDirectory服務器返回一個僅僅包含節(jié)點位置關系和節(jié)點主屬性的XML格式的字符串,當左側的樹型結構顯示完畢后,右側的主屬性表也顯示完畢;當選擇左側樹中的一個節(jié)點時,再從客戶端瀏覽器發(fā)送一個請求,隨后ActiveDirectory服務器返回被選中節(jié)點的XML格式的擴展屬性信息字符串,客戶端瀏覽器將該字符串進行解析后,顯示在擴展屬性表中。由于本發(fā)明所述的方法是基于B/S結構,因此只需要在AD服務器所在域范圍內的任意一臺機器上部署訪問控制系統(tǒng)即可,更新時也只需對該訪問控制系統(tǒng)的運行實例進行更新,客戶端可以通過瀏覽器訪問和管理AD服務器,從而為用戶對系統(tǒng)的操作和管理帶來了極大的方便。圖l是本發(fā)明所述的方法流程圖2是本發(fā)明具體實施方式中AD服務器的配置示意圖;圖3是本發(fā)明具體實施方式中所述的展示界面示意圖;圖4是本發(fā)明具體實施方式中所述的可編輯表格示意圖。具體實施例方式下面結合實施例和附圖對本發(fā)明的具體實施方式進^f亍詳細描述。本發(fā)明所述的方法主要應用于采用微軟公司的LDAP服務器產品ActiveDirectory作為存儲體的單點登陸系統(tǒng)中。如何通過客戶端瀏覽器對ActiveDirectory服務器存儲的節(jié)點進行操作便是本發(fā)明所要解決的問題。本實施方式是以在電視臺的單點登陸系統(tǒng)中的應用為例。如圖1所示,一種基于ActiveDirectory的B/S結構的LDAP訪問控制方法,包括以下步驟。(1)在ActiveDirectory服務器中配置節(jié)點和參數。ActiveDirectory(以下簡稱AD)是指Windows2000/2003網絡中的目錄服務。它有兩個作用,一是目錄服務功能。AD提供了一系列集中組織管理和訪問網絡資源的目錄服務功能。AD使網絡拓樸和協議對用戶變得透明,從而使網絡上的用戶可以訪問任何資源(例如打印機),而無需知道該資源的6位置以及它是如何連接到網絡的。AD被劃分成區(qū)域進行管理,這使其可以存儲大量的對象?;谶@種結構,AD可以隨著企業(yè)的成長而進行擴展。二是集中式管理。AD還可以集中管理對網絡資源的訪問,并允許用戶只登陸一次就能訪問在AD上的所有資源。本實施例中,在AD中添加三個根節(jié)點,分別為"部門結構"、"欄目結構"和"應用系統(tǒng)"。這三個組織單位節(jié)點需要用戶手工添加,分別代表電視臺內部的部門人員結構、欄目及其欄目成員和電視臺全臺網中需要實現單點登陸的應用系統(tǒng)。用戶可以在這三個^f艮節(jié)點下分別添加相應的隸屬節(jié)點。如在部門結構節(jié)點下添加電視臺、頻道、部門、人員等,在欄目結構節(jié)點下添加具體的欄目名以及在應用系統(tǒng)節(jié)點下添加具體的應用系統(tǒng)名,如圖2所示。然后配置三個根節(jié)點的DN(distinguishedname)屬性值,DN參數能夠唯一標識節(jié)點在AD目錄中的位置,如上述三個節(jié)點的DN屬性分別為"OU-部門結構,DC=zyf,DOcom"、"0U=欄目結構,DC=zyf,DOcom"、"0U-應用系統(tǒng),DOzyf,DC^om,,,其中,0U代表組織單位,前后兩個DC值分別表示LDAP服務器的域名及域擴展名。此外,還需要配置以下幾個參數AD服務器名稱項(可以填域控制器的IP地址,或者"域控制器名.域名.擴展名")、訪問AD服務器的用戶DN(如LDAP服務器中的一個名為zhangyf的用戶,其DN值可能為CN=zhangyf,CN=Users,DC=zyf,DC=com,其中Users是AcUveDirectory內置的一個節(jié)點,該節(jié)點下包含了多個用戶節(jié)點)、訪問AD服務器的密碼。(2)客戶端瀏覽器向AD服務器發(fā)送對步驟(l)中節(jié)點的操作請求,AD服務器對節(jié)點進行操作后,返回操作結果到LDAP客戶端。本實施例中,對節(jié)點的操作包括增加、刪除、修改和查詢等。①節(jié)點的添加首先,客戶端瀏覽器向AD服務器發(fā)送添加節(jié)點請求,傳到AD服務器的請求內容是一個XML格式的字符串,舉例如下<xmlversion="l.0"encoding="GB2312"><LDAPAUributes><Attributenarae="objectClass"value="top,person,organizationalPerson,user"type="noedit"/〉<Attributename="distinguishedName"value-"CN-zhangyf,OU-記者部,OU-科教頻道,DC-zyf,DC-com"type="noedit"/><Attribute<Attribute<Attribute<Attribute<Attribute<AUribute〈Attributename="userpassword"value="Op—Op—Op—"type-"edit"/>〈Attributename="type"value=',戶"type="noedit"/><!--oid為外部屬性,可填可不填一〉<Attributename="oid"value-'1"type="edit"/>〈Attributename-"mai"value=""type="edit"/〉<Attributename="st"value=""type-"edit"/〉<Attributename二"postalCode11value=""type-"edit"/〉<Attributename="company"value=""type="edit"/><Attributename="description"value=""type="edit"/><Attributenarae="initials"value='MItype="edit"/><Attributename="homePhone"value=""type="edit"/><Attributename="accountExpires11vaiue="9223372036854775807"type="noedit"/〉</LDAPAUributes>其中,每個Attribute元素表示節(jié)點的一個屬性,Attribute元素的name為屬性名,value為屬性值,type表示該屬性是否可以;故更改,該屬性項主要應用在節(jié)點修改時作為判斷的依據,在節(jié)點添加時沒有特殊意義。首先對客戶端瀏覽器傳送過來的XML格式的字符串進行分析,從中提取要添加節(jié)點的所有屬性信息。然后將節(jié)點添加到AD服務器中。具體的實現方法是通過調用java本身提供的相關API。8name="sn"value-"姓"type-"edit"/〉name="givenName"value-"名"type="e(Ht"/>name-'1displayName'1value=""type="noedit"/〉name-"name11value二"姓名"type="edit"/〉name="userPrincipalName"value=""type="edit"/>name=l1sAMAccountName"value=""type="noedit"/>節(jié)點的增加、刪除、修改、查詢等操作均通過調用相應的API實現,這些API主要位于Java,naming,directory.InitialDirContext類中。下表是該類中的相關API的說明(最后一個API不是InitialDirContext類中提供的方法,是javax.naming,directory.SearchResult類中的方法)API統(tǒng)覽<table>tableseeoriginaldocumentpage9</column></row><table>②節(jié)點的刪除刪除節(jié)點時,從客戶端瀏覽器傳送來的內容是一個與添加節(jié)點類似的XML格式的字符串,但是節(jié)點只包含一個Attribute元素,舉例如下<xmlversion="l.0"encoding="GB2312"〉〈LDAPAttributes〉<Attributename="distinguishedName"value="CN-zhangyf,OU-記者部,OU-科教頻道,DC=zyf,DC=com"type="noedit"/></U)APAttributes〉之所以如此,是因為用戶的DN屬性在AD服務器節(jié)點集中是可以作為節(jié)點標志,也就是說,每個節(jié)點都有一個唯一的、與眾不同的DN屬性,只要根據這個屬性便可以定位到節(jié)點,從而刪除之。③節(jié)點的修改修改節(jié)點時,客戶端瀏覽器傳過來的同樣是一個與添加節(jié)點類似的XML格式的字符串,舉例如下<xmlversion="l.0"encoding="GB2312">化DAPAUributes〉<Attributename="objectClass"value="top,person,organizationalPerson,user"type="noedit"/〉<Attributename="distinguishedName"value="CN=zhangyf,011=記者部,OU-科教頻道,DC=zyf,DC=com"type="noedit"/><Attributename=''name"value="zhangyunfeng"type="edit"/>〈Attributename-"userpassword"value="Op-password"type="edit"/>type="noedit"/></LDAPAttributes〉節(jié)點屬性的數量是不確定的,每個Attribute元素代表了該節(jié)點被更改的一項屬性。上面的示例表示將DN屬性為"CN-zhangyf,0U-記者部,011=科教頻道,DC=zyf,DC=com,,的節(jié)點名改為"zhangyunfeng",密碼改為"Op-password"。④節(jié)點的查詢節(jié)點查詢時,客戶端瀏覽器提交過來的XML格式的字符串與節(jié)點刪除時類4以,1!列^口<xmlversion="l.0"encoding:"GB2312"〉《DAPAttributes〉<Attributename="distinguishedName"valueJ'0lH科教步!道,DC=zyf,DC=com"type="noedit"/>該XML格式的字符串指示了要查詢的節(jié)點的DN。上面的示例表示查詢所有包含"0U-科教頻道,DC-zyf,DC^om"的節(jié)點信息。返回的結果類型為ArrayList〈Hashtable〉,其中每個節(jié)點的所有屬性集合存放在一個Hashtable中。本實施例中,AD服務器對節(jié)點進行上述操作后,首先將操作結果組織成一個XML格式的字符串,然后再返回。(3)客戶端瀏覽器將步驟(2)中返回的操作結果顯示在網頁上。本實施例中,在操作結果(即節(jié)點信息)的展示方面,采用樹型結構和屬性表相結合的展示方法,如圖3所示。左側的樹型目錄展示的是節(jié)點的結構,當用戶點擊選擇樹中的某個節(jié)點后,右側的表格中將會實時顯示被選擇節(jié)點的屬性。圖3展示的是節(jié)點"新奧特電視臺"的結構。將屬性表分為兩部分主屬性和擴展屬性。將節(jié)點中比較重要的節(jié)點屬性,如DN、name等作為主屬性,而其它一些不太重要的屬性作為擴展屬性。這樣做的原因是如果目錄中包含了大量節(jié)點,顯示樹型結構時,不得不一次性取出所有節(jié)點及其屬性,節(jié)點的屬性信息量比較大。一次性從AD服務返回大量數據將會對運行效率造成很大影響。所以首先從AD服務器返回一個僅僅包含節(jié)點位置關系和節(jié)點主屬性的XML格式的字符串,當左側的樹型結構顯示完畢后,右側的主屬性表也顯示完畢。當選擇左側樹中的一個節(jié)點時,再從客戶端瀏覽器發(fā)送一個請求,隨后服務器端返回被選中節(jié)點的XML格式的擴展屬性信息字符串,客戶端瀏覽器將該字符串進行解析后,顯示在擴展屬性表中。通過將一次取數據變?yōu)閮刹饺祿?,避免了一次性從AD服務器取大量數據造成的屬性顯示延遲。提高了顯示的速度。屬性表的具體實現方法,可以使用名為DataAttribute的JavaScript類來實現。本實施例中,為了實現在發(fā)送操作請求時對相關的節(jié)點參^:組織成XML格式字符串,設計了一個名為EditAUrTable的JavaScript類,該類的功能是創(chuàng)建并維護一個可編輯表格,表格的格式如圖4所示。表格中的數據和一個XML文檔進行綁定。用戶對表格的中屬性值的操作將實時反映到XML文檔中。用戶設置完屬性后,點擊頁面上的相關命令按鈕,即可將上述信息發(fā)送至AD服務器,由AD服務器負責處理后續(xù)工作,并將處理結果返回給客戶端瀏覽器。本發(fā)明所述的方法并不限于具體實施方式中所述的實施例,本領域技術人員根據本發(fā)明的技術方案得出其他的實施方式,同樣屬于本發(fā)明的技術創(chuàng)新范圍。權利要求1.一種基于ActiveDirectory的B/S結構的LDAP訪問控制方法,包括以下步驟(1)在ActiveDirectory服務器中配置節(jié)點和參數;(2)客戶端瀏覽器向ActiveDirectory服務器發(fā)送對步驟(1)中節(jié)點的操作請求,ActiveDirectory服務器對節(jié)點進行操作后,將操作結果返回到客戶端瀏覽器;(3)客戶端瀏覽器將步驟(2)中返回的操作結果顯示在網頁上。2.如權利要求1所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,其特征在于步驟(l)中所述的ActiveDirectory服務器配置的參數包括ActiveDirectory服務器名稱項、訪問ActiveDirectory服務器的用戶DN和訪問ActiveDirectory服務器的密碼。3.如權利要求1所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,其特征在于步驟(2)中客戶端瀏覽器向ActiveDirectory服務器發(fā)送對節(jié)點的操作請求是一個包含節(jié)點屬性信息的XML格式的字符串。4.如權利要求3所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,其特征在于所述的包含節(jié)點屬性信息的XML格式的字符串通過一個可編輯表格生成,該表格中的屬性信息和一個XML文檔進行綁定,用戶對表格中的屬性信息的操作實時反映到XML文檔中。5.如^又利要求1所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,其特征在于步驟(2)中對節(jié)點的操作包括增加、刪除、修改和查詢。6.如f又利要求1至5之一所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,其特征在于步驟(2)中ActiveDirectory服務器對節(jié)點的操作過程為首先對客戶端瀏覽器發(fā)送的XML格式的字符串進行解析,提取節(jié)點的屬性信息,然后沖艮據節(jié)點的屬性信息對該節(jié)點進4亍操作。7.如權利要求1至5之一所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,其特征在于步驟(3)中所述的顯示返回結果采用樹形結構和屬性表相結合的方式。8.如權利要求7所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,其特征在于所述的屬性表包括主屬性和擴展屬性。9.如權利要求8所述的基于ActiveDirectory的B/S結構的LDAP訪問控制方法,其特征在于在客戶端瀏覽器顯示樹型結構時,首先從ActiveDirectory服務器返回一個僅僅包含節(jié)點位置關系和節(jié)點主屬性的XML格式的字符串,當左側的樹型結構顯示完畢后,右側的主屬性表也顯示完畢;當選擇左側樹中的一個節(jié)點時,再乂人客戶端瀏覽器發(fā)送一個請求,隨后ActiveDirectoryl良務器返回被選中節(jié)點的XML格式的擴展屬性信息字符串,客戶端瀏覽器將該字符串進行解析后,顯示在擴展屬性表中。全文摘要本發(fā)明公開了一種LDAP訪問控制方法,尤其是公開了一種基于AD的B/S結構的LDAP訪問控制方法。在現有技術中,LDAP訪問控制功能是通過C/S方式來實現的,需要在每個客戶端上安裝LDAP訪問控制軟件,對于客戶端數量較大的局域網來說,每次安裝或者更新LDAP訪問控制軟件,需要花費大量的時間和精力,效率較低。本發(fā)明所述的方法采用B/S結構,首先在AD服務器中配置節(jié)點和參數;然后客戶端瀏覽器向AD服務器發(fā)送對節(jié)點的操作請求,AD服務器對節(jié)點進行操作后,將操作結果返回到客戶端瀏覽器;最后客戶端瀏覽器將返回的操作結果顯示在網頁上。采用本發(fā)明所述的方法,客戶端可以通過瀏覽器訪問和管理AD服務器。文檔編號H04L12/56GK101588354SQ20081011241公開日2009年11月25日申請日期2008年5月23日優(yōu)先權日2008年5月23日發(fā)明者偉孫,張云峰,王弋珵申請人:新奧特(北京)視頻技術有限公司