武鵬 李文倚 王文興



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