武鵬 李文倚 王文興
【 摘 要 】 針對(duì)企業(yè)門(mén)戶系統(tǒng)升級(jí)過(guò)程中各應(yīng)用系統(tǒng)訪問(wèn)控制與身份認(rèn)證方式差異導(dǎo)致的難以進(jìn)行統(tǒng)一認(rèn)證與系統(tǒng)集成的問(wèn)題,提出了一種跨域統(tǒng)一認(rèn)證與系統(tǒng)集成方案。方案基于共享庫(kù),結(jié)合AD域與LDAP目錄實(shí)現(xiàn)了跨域統(tǒng)一認(rèn)證和訪問(wèn)控制,并結(jié)合企業(yè)應(yīng)用進(jìn)行了實(shí)踐,解決了系統(tǒng)集成過(guò)程中多種訪問(wèn)控制方式難以進(jìn)行統(tǒng)一認(rèn)證和單點(diǎn)登錄的問(wèn)題。
【 關(guān)鍵詞 】 跨域;統(tǒng)一認(rèn)證;訪問(wèn)控制;系統(tǒng)集成
【 中圖分類號(hào) 】 TP301 【 文獻(xiàn)標(biāo)識(shí)碼 】 A
【 Abstract 】 In the process of enterprise portal system upgrading, application system access control and identity authentication mode is differences lead to difficult to carry out unified authentication and system integration. In this paper a cross domain authentication and system integration solution scheme is proposed. This solution scheme based on shared library, combined with AD domain and LDAP directory to achieve cross domain authentication and access control.It has been applied in the enterprise application and resolved the issues that multiple access control is hard to implement unified authentication and single sign on in the process of system integration.
【 Keywords 】 across-domain;unified authentication;access control;system integration
1 引言
隨著企業(yè)信息系統(tǒng)的快速發(fā)展,企業(yè)內(nèi)部廣泛存在不同架構(gòu)、不同認(rèn)證與訪問(wèn)控制策略與實(shí)現(xiàn)方式、基于域控和沒(méi)基于域控等不同形式下的各類信息系統(tǒng),表現(xiàn)出體系結(jié)構(gòu)上的分布式、域內(nèi)自治、域間協(xié)作等復(fù)雜應(yīng)用系統(tǒng)的特征?;谶@些特征的信息系統(tǒng)面臨著無(wú)法進(jìn)行統(tǒng)一認(rèn)證和訪問(wèn)控制、跨系統(tǒng)協(xié)同和系統(tǒng)集成困難的新問(wèn)題和新挑戰(zhàn),具體表現(xiàn):(1)申請(qǐng)?jiān)L問(wèn)各系統(tǒng)的主體來(lái)源不同,甚至具有臨時(shí)性,往往是現(xiàn)有統(tǒng)一認(rèn)證系統(tǒng)不認(rèn)知和不能識(shí)別的;(2)各個(gè)信息系統(tǒng)本身的訪問(wèn)控制策略和安全機(jī)制存在差異,表現(xiàn)在訪問(wèn)控制模型的異構(gòu)性;(3)已有信息系統(tǒng)的統(tǒng)一認(rèn)證與訪問(wèn)控制存儲(chǔ)方式多樣化,關(guān)系型數(shù)據(jù)庫(kù)、LDAP目錄樹(shù)、Microsoft Active Directory(AD)等共存。與此相關(guān)的研究主要集中在基于活動(dòng)目錄的認(rèn)證系統(tǒng)等方面,較少關(guān)注跨域統(tǒng)一認(rèn)證與系統(tǒng)集成方面的應(yīng)用。
本文給出了跨域統(tǒng)一認(rèn)證與系統(tǒng)集成應(yīng)用場(chǎng)景,提出了一種跨域統(tǒng)一認(rèn)證與系統(tǒng)集成方案,并結(jié)合企業(yè)應(yīng)用進(jìn)行了實(shí)踐,解決了企業(yè)門(mén)戶系統(tǒng)升級(jí)過(guò)程中的統(tǒng)一認(rèn)證與系統(tǒng)集成問(wèn)題。
2 跨域統(tǒng)一認(rèn)證與訪問(wèn)控制體系結(jié)構(gòu)
本文通過(guò)創(chuàng)建共享庫(kù),以共享庫(kù)為基礎(chǔ)在共享庫(kù)、Microsoft Active Directory(AD)、IBM Tivoli Directory Server LDAP目錄服務(wù)之上搭建了跨域統(tǒng)一認(rèn)證器,設(shè)計(jì)了一套認(rèn)證流程,實(shí)現(xiàn)跨域統(tǒng)一認(rèn)證,并在此基礎(chǔ)上建立基于RBAC的訪問(wèn)控制策略,實(shí)現(xiàn)不同信息系統(tǒng)的統(tǒng)一認(rèn)證與單點(diǎn)登錄。圖1給出了跨域統(tǒng)一認(rèn)證與訪問(wèn)控制體系結(jié)構(gòu)圖,箭頭指明了跨域統(tǒng)一認(rèn)證與訪問(wèn)控制過(guò)程??缬蚪y(tǒng)一認(rèn)證與訪問(wèn)控制體系結(jié)構(gòu)主要包含五個(gè)構(gòu)件:(1)用戶/角色管理器:對(duì)用戶和角色進(jìn)行管理,定義用戶與角色的映射;(2)資源/操作管理器:對(duì)資源和操作進(jìn)行管理,定義資源與角色的映射;(3)跨域認(rèn)證器:依據(jù)不同用戶來(lái)源,依據(jù)相應(yīng)認(rèn)證流程對(duì)訪問(wèn)主體進(jìn)行身份驗(yàn)證;(4)安全控制器:對(duì)共享庫(kù)、AD服務(wù)器及統(tǒng)一認(rèn)證器進(jìn)行監(jiān)控及預(yù)警;(5)跨域同步/映射器:對(duì)域間用戶/用戶組/角色進(jìn)行數(shù)據(jù)同步或進(jìn)行不同層次和粒度的映射。
當(dāng)某用戶需要訪問(wèn)某項(xiàng)資源進(jìn)行相關(guān)操作時(shí),生成一個(gè)訪問(wèn)請(qǐng)求,事實(shí)上將進(jìn)入跨域統(tǒng)一認(rèn)證器進(jìn)行驗(yàn)證。
3 跨域統(tǒng)一認(rèn)證與訪問(wèn)控制策略
3.1 跨域認(rèn)證機(jī)制
跨域統(tǒng)一認(rèn)證與訪問(wèn)控制的核心是跨域認(rèn)證機(jī)制,下文結(jié)合統(tǒng)一認(rèn)證過(guò)程對(duì)涉及到的共享庫(kù)和跨域認(rèn)證機(jī)制進(jìn)行闡述。
3.1.1共享庫(kù)
共享庫(kù)是對(duì)各個(gè)信息系統(tǒng)以數(shù)據(jù)庫(kù)形式管理的用戶/角色的抽象,定義為所有非基于AD域驗(yàn)證的信息系統(tǒng)的用戶/角色,既非域控用戶/角色的集合。它統(tǒng)一存儲(chǔ)所有信息系統(tǒng)的用戶信息,信息系統(tǒng)對(duì)用戶信息的存儲(chǔ)和管理全部通過(guò)共享庫(kù)完成,而授權(quán)則由各信息系統(tǒng)完成,即統(tǒng)一存儲(chǔ)、分布授權(quán)。共享庫(kù)具備幾項(xiàng)基本功能:(1)用戶信息規(guī)范命名、統(tǒng)一存儲(chǔ),用戶ID全局惟一,用戶ID猶如身份證,區(qū)分和標(biāo)識(shí)了唯一的不同訪問(wèn)個(gè)體;(2)向各信息系統(tǒng)提供用戶屬性列表,如姓名、電話、地址和郵箱等屬性,各信息系統(tǒng)可以選擇本系統(tǒng)所需要的部分或全部屬性;(3)信息系統(tǒng)對(duì)用戶基本信息的增加、修改、刪除和查詢等請(qǐng)求由它處理;(4)各信息系統(tǒng)保留用戶管理功能,如用戶分組、用戶授權(quán)等功能;(5)具有完善的日志功能,詳細(xì)記錄各信息系統(tǒng)對(duì)它的操作。共享庫(kù)的主要用途是使非基于AD域驗(yàn)證的信息系統(tǒng)能夠共享同一套用戶/角色,實(shí)現(xiàn)訪問(wèn)主體的統(tǒng)一管理。
3.1.2跨域認(rèn)證機(jī)制
跨域認(rèn)證有三種基本情況:一是某非域控用戶(沒(méi)有登入AD域的用戶)請(qǐng)求訪問(wèn)非基于AD的域外資源(例如非基于域控的信息系統(tǒng));二是非域控用戶請(qǐng)求訪問(wèn)域內(nèi)資源(例如基于域控的信息系統(tǒng));三是域控用戶請(qǐng)求訪問(wèn)域外資源(例如非基于域控的信息系統(tǒng))。第一種情況的難點(diǎn)在于域之間的用戶信任問(wèn)題;第二種情況的難點(diǎn)在于非域控用戶無(wú)法得到域內(nèi)資源的信任;第三種情況的難點(diǎn)在于域控用戶無(wú)法得到非基于域控的資源的信任。第一種情況可以使用單點(diǎn)登錄技術(shù)。單點(diǎn)登錄(SSO,Single Sign-on)是一種方便用戶訪問(wèn)多個(gè)系統(tǒng)的技術(shù),實(shí)質(zhì)是安全上下文(Security Context)或憑證(Credential)在多個(gè)應(yīng)用系統(tǒng)之間的傳遞或共享。目前業(yè)界已有很多產(chǎn)品支持SSO,如IBM的WebSphere和BEA的WebLogic,但各家SSO產(chǎn)品的實(shí)現(xiàn)方式也不盡相同。WebSphere通過(guò)Cookie記錄認(rèn)證信息,WebLogic則是通過(guò)Session共享認(rèn)證信息。Cookie方式可實(shí)現(xiàn)SSO,但域名必須相同;Session是一種服務(wù)器端機(jī)制,當(dāng)客戶端訪問(wèn)服務(wù)器時(shí),服務(wù)器為客戶端創(chuàng)建一個(gè)惟一的SessionID,以使在整個(gè)交互過(guò)程中始終保持狀態(tài),而交互的信息則可由應(yīng)用自行指定,因此用Session方式實(shí)現(xiàn)SSO,不能在多個(gè)瀏覽器之間實(shí)現(xiàn)單點(diǎn)登錄,但卻可以跨域。同時(shí),OASIS(結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織)提出了SAML解決方案。
上述方案都能很好地解決跨域認(rèn)證的第一種情況并實(shí)現(xiàn)統(tǒng)一認(rèn)證和訪問(wèn)控制。但由于企業(yè)應(yīng)用的多樣性與復(fù)雜性,往往會(huì)出現(xiàn)前述的第二和第三種情況。如圖2所示。
當(dāng)非域控用戶要訪問(wèn)域內(nèi)資源時(shí),域內(nèi)資源要求提供相應(yīng)域控用戶賬戶和域口令進(jìn)行驗(yàn)證,這時(shí)使用經(jīng)跨域同步/映射器映射后的域控用戶賬戶并搭配域口令去域服務(wù)器進(jìn)行驗(yàn)證。當(dāng)域控用戶請(qǐng)求訪問(wèn)域外資源(例如信息系統(tǒng))時(shí),這時(shí)使用經(jīng)跨域同步/映射器映射后的共享庫(kù)用戶賬戶并搭配相應(yīng)口令去共享庫(kù)服務(wù)器進(jìn)行驗(yàn)證。這樣通過(guò)跨域同步/映射器已完成域控用戶與非域控用戶的相互轉(zhuǎn)換,實(shí)現(xiàn)跨域統(tǒng)一認(rèn)證和訪問(wèn)控制。
3.2 跨域同步/映射機(jī)制
跨域統(tǒng)一認(rèn)證與訪問(wèn)控制依賴于跨域同步/映射機(jī)制,跨域同步/映射機(jī)制是實(shí)現(xiàn)統(tǒng)一認(rèn)證與訪問(wèn)控制前提,下文結(jié)合統(tǒng)一認(rèn)證過(guò)程對(duì)跨域同步/映射機(jī)制進(jìn)行闡述。
3.2.1用戶同步
新用戶注冊(cè)到共享庫(kù)之后會(huì)自動(dòng)同步到跨域統(tǒng)一認(rèn)證器中,始終保持用戶的一致。如果域控用戶是共享庫(kù)用戶的子集,域控用戶訪問(wèn)域外資源將無(wú)需使用映射機(jī)制,如果共享庫(kù)用戶是域控用戶的子集,共享庫(kù)用戶訪問(wèn)域內(nèi)資源也無(wú)需使用映射機(jī)制,自然維護(hù)一對(duì)一映射關(guān)系。通常情況下對(duì)于企業(yè)內(nèi)應(yīng)用,完全可以以共享庫(kù)為基礎(chǔ),而域控用戶維護(hù)為共享庫(kù)用戶的子集,這樣當(dāng)共享庫(kù)用戶訪問(wèn)域內(nèi)資源時(shí),此共享庫(kù)用戶在域服務(wù)器中不存在時(shí)使用映射機(jī)制。
3.2.2域控用戶與非域控用戶映射粒度
AD域訪問(wèn)主體DU對(duì)非域內(nèi)資源進(jìn)行訪問(wèn)時(shí)通過(guò)跨域同步/映射器完成DU(域控用戶)到非域內(nèi)資源中訪問(wèn)主體SU(共享庫(kù)用戶)不同粒度的映射,包括AD域控用戶組/角色到共享庫(kù)角色(包括用戶組/角色的用戶直接到角色)的映射,對(duì)AD域訪問(wèn)主體聚類后再到共享庫(kù)中角色的映射兩種不同的映射粒度。兩種具體映射又設(shè)計(jì)了三種不同的方式:一對(duì)一、一對(duì)多、多對(duì)多。這樣就實(shí)現(xiàn)了AD域訪問(wèn)主體對(duì)共享庫(kù)訪問(wèn)主體間映射的靈活多樣,滿足各種需求。
非域訪問(wèn)主體SU對(duì)域內(nèi)資源進(jìn)行訪問(wèn)時(shí)通過(guò)跨域同步/映射器完成AD域外非域訪問(wèn)主體SU(共享庫(kù)用戶,非域控用戶)到AD域訪問(wèn)主體DU(域控用戶)不同粒度的映射,包括共享庫(kù)用戶組/角色到域控用戶(包括用戶組/角色的用戶直接到角色)的映射,對(duì)共享庫(kù)訪問(wèn)主體聚類后再到AD域中角色的映射,特殊的臨時(shí)映射三種不同的映射粒度。三種具體映射又設(shè)計(jì)了三種不同的方式:一對(duì)一、一對(duì)多、多對(duì)多。這樣就實(shí)現(xiàn)了共享庫(kù)訪問(wèn)主體對(duì)AD域訪問(wèn)主體間映射的靈活多樣,滿足各種需求。
設(shè)計(jì)保持具體映射唯一性(同時(shí)同地只能激活一種粒度下的一種具體映射方式)以避免映射主體之間權(quán)限的重疊與互斥。
3.3 跨域統(tǒng)一認(rèn)證與訪問(wèn)控制過(guò)程
本文提出的跨域統(tǒng)一認(rèn)證與訪問(wèn)控制方案的主要特點(diǎn)是實(shí)現(xiàn)了域內(nèi)外訪問(wèn)控制實(shí)現(xiàn)方式的統(tǒng)一,跨域認(rèn)證過(guò)程中,消除了域內(nèi)與域外的差別,使已有的各信息系統(tǒng)獨(dú)立的認(rèn)證與訪問(wèn)控制過(guò)程基于共享庫(kù)實(shí)現(xiàn)統(tǒng)一認(rèn)證,同時(shí)又可以集成基于AD域的信息系統(tǒng)實(shí)現(xiàn)統(tǒng)一認(rèn)證,便于將各類信息系統(tǒng)進(jìn)行集成并實(shí)現(xiàn)單點(diǎn)登錄。圖3給出了當(dāng)用戶需要訪問(wèn)某信息系統(tǒng)進(jìn)行某種操作時(shí)的統(tǒng)一認(rèn)證具體過(guò)程,首先提交用戶認(rèn)證信息給安全控制器預(yù)判涉及到的共享庫(kù)和AD服務(wù)器是否正常,然后預(yù)判正常情況下將用戶信息進(jìn)一步提交跨域同步/映射器,跨域同步/映射器將依據(jù)用戶信息判斷是否需要映射并完成相應(yīng)映射后提交給具體的驗(yàn)證服務(wù),驗(yàn)證服務(wù)完成驗(yàn)證后將驗(yàn)證結(jié)果提交給將要訪問(wèn)的信息系統(tǒng),信息系統(tǒng)根據(jù)用戶即時(shí)授權(quán),完成對(duì)相應(yīng)操作或資源的訪問(wèn)。
4 應(yīng)用案例
企業(yè)內(nèi)實(shí)施了門(mén)戶系統(tǒng),整合了大量信息和企業(yè)內(nèi)部信息系統(tǒng),基本實(shí)現(xiàn)了信息系統(tǒng)單點(diǎn)登錄和用戶統(tǒng)一管理。隨著門(mén)戶的深化應(yīng)用,需要掛接和集成在門(mén)戶上的信息系統(tǒng)類型和數(shù)量日益增加,其中門(mén)戶系統(tǒng)上已有的信息系統(tǒng)采用基于數(shù)據(jù)庫(kù)的統(tǒng)一用戶管理系統(tǒng)實(shí)現(xiàn)了統(tǒng)一認(rèn)證和單點(diǎn)登錄,但是逐漸出現(xiàn)了基于AD域的信息系統(tǒng)需要掛接和集成在現(xiàn)有門(mén)戶上,同時(shí)企業(yè)內(nèi)客戶端有可能使用域控用戶登入域也有可能不登入域,不同類應(yīng)用系統(tǒng)認(rèn)證方式、訪問(wèn)控制策略和面向用戶的差異,以及用戶客戶端的多樣化對(duì)系統(tǒng)集成和單點(diǎn)登錄帶來(lái)了困難和挑戰(zhàn)。如果非域控用戶SU(共享庫(kù)用戶)試圖登錄基于域驗(yàn)證的信息系統(tǒng)A,該用戶只需要登錄門(mén)戶系統(tǒng),門(mén)戶系統(tǒng)實(shí)現(xiàn)了跨域統(tǒng)一認(rèn)證與訪問(wèn)控制,該用戶登錄門(mén)戶系統(tǒng)即通過(guò)跨域同步/映射映射為相應(yīng)域控用戶DU,并提交DU給域服務(wù)器進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),則提交DU給相應(yīng)信息系統(tǒng)進(jìn)行授權(quán),如果成功授權(quán),則SU可以對(duì)該信息系統(tǒng)進(jìn)行相應(yīng)操作,否則拒絕訪問(wèn)。如果域控用戶DU試圖登錄某非基于域的信息系統(tǒng)B,該用戶也只需要登錄門(mén)戶系統(tǒng),該用戶登錄門(mén)戶系統(tǒng)即通過(guò)跨域同步/映射器映射為相應(yīng)共享庫(kù)用戶SU,并提交SU給共享庫(kù)服務(wù)器進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),則提交SU給相應(yīng)信息系統(tǒng)進(jìn)行授權(quán),如果成功授權(quán),則DU可以對(duì)該信息系統(tǒng)進(jìn)行相應(yīng)操作,否則拒絕訪問(wèn)。
5 結(jié)束語(yǔ)
本文通過(guò)引入共享庫(kù)和跨域映射機(jī)制,實(shí)現(xiàn)跨域統(tǒng)一認(rèn)證和訪問(wèn)控制來(lái)解決企業(yè)內(nèi)不同類信息系統(tǒng)認(rèn)證方式、訪問(wèn)控制策略和面向用戶差異及用戶客戶端多樣化對(duì)系統(tǒng)集成和單點(diǎn)登錄帶來(lái)的問(wèn)題,提出了可行的方案并進(jìn)行了實(shí)現(xiàn)。在今后的工作中,會(huì)更加深入的考慮通用性以擴(kuò)展方案。
參考文獻(xiàn)
[1] 張冠東,王緒本.基于活動(dòng)目錄的域用戶認(rèn)證系統(tǒng)的研究和設(shè)計(jì)[J].微型電腦應(yīng)用,2005,21(5):5-6.
[2] 李志民.基于活動(dòng)目錄的訪問(wèn)控制系統(tǒng)設(shè)計(jì)[J].中原工學(xué)院學(xué)報(bào),2004,15(2):33-35.
[3] 于劍,張輝,趙紅梅.LDAP目錄服務(wù)在Web開(kāi)發(fā)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2003,23(10):82-83.
[4] 劉宏月,范九倫,馬建峰.訪問(wèn)控制技術(shù)研究進(jìn)展[J].小型微型計(jì)算機(jī)系統(tǒng),2004,25(1):56-59.
[5] 林滿山,郭荷清.單點(diǎn)登錄技術(shù)的現(xiàn)狀及發(fā)展[J].計(jì)算機(jī)應(yīng)用,2004,24(zl):248-250.
[6] 馬增紅.基于Saml的統(tǒng)一身份認(rèn)證和跨域單點(diǎn)登錄的設(shè)計(jì)與實(shí)現(xiàn)[D].四川:電子科技大學(xué),2008.
作者簡(jiǎn)介:
武鵬(1984-),男,碩士研究生,中海油研究總院,工程師;主要研究方向和關(guān)注領(lǐng)域:企業(yè)信息集成、信息安全、數(shù)據(jù)庫(kù)。
李文倚(1971-),男,本科,中海油研究總院,高級(jí)工程師;主要研究方向和關(guān)注領(lǐng)域:企業(yè)信息集成、信息安全、數(shù)據(jù)庫(kù)。
王文興(1985-),男,碩士研究生,中海油研究總院,工程師;主要研究方向和關(guān)注領(lǐng)域:企業(yè)信息集成、信息安全、數(shù)據(jù)庫(kù)。