專利名稱:一種基于構(gòu)件的分布式系統(tǒng)訪問控制方法及訪問控制系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種分布式系統(tǒng)訪問控制方法及訪問控制系統(tǒng),更具體地說,本發(fā)明涉及 一種利用構(gòu)件化的設(shè)計思想和方法進(jìn)行設(shè)計、開發(fā)與部署使用的基于Web Service技術(shù)的 訪問控制方法及訪問控制中間件系統(tǒng),屬于計算機(jī)軟件技術(shù)領(lǐng)域。
背景技術(shù):
隨著計算機(jī)和國際互聯(lián)網(wǎng)使用的普及,計算機(jī)之間的交互日益頻繁和多樣,訪問控制 問題受到了越來越多的關(guān)注。然而現(xiàn)今的訪問控制系統(tǒng)絕大多數(shù)都是與應(yīng)用密切相關(guān)的, 缺乏對訪問控制模型和訪問控制過程實施的抽象。如何保證這些與底層應(yīng)用強(qiáng)相關(guān)的訪問 控制系統(tǒng)的正確性、可靠性與易用性,已經(jīng)成為當(dāng)前信息安全技術(shù)領(lǐng)域較為棘手的問題之同時,伴隨著計算環(huán)境和資源共享模式的發(fā)展變化,系統(tǒng)對訪問控制模型和機(jī)制也提 出了許多新的需求,由于這些新的要求的出現(xiàn),傳統(tǒng)訪問控制模型日益暴露出自身的一些缺陷和不足。主要問題有1. 訪問控制粒度不夠細(xì)致。傳統(tǒng)訪問控制模型在授權(quán)時大都僅僅考慮用戶的某一種 特定屬性,而忽略其它屬性,并且具有相同屬性值的用戶訪問權(quán)限相同。2. 實施多策略支持的代價太高。傳統(tǒng)訪問控制模型都定義自己特定的屬性、函數(shù)和 配置方法,使用自己專有實施機(jī)制。多策略系統(tǒng)需要實現(xiàn)每種策略對應(yīng)的訪問控制機(jī)制。3. 延展性較差。當(dāng)用戶的數(shù)量巨大或者授權(quán)過程中需要考慮較多的用戶屬性時,傳統(tǒng)訪問控制模型的管理代價通常會急劇提高。4. 將授權(quán)與訪問控制過程混為一體。在早期小規(guī)模系統(tǒng)中,管理員直接登錄到系統(tǒng) 中手工修改授權(quán)信息,授權(quán)管理很少受到重視;隨著組織和系統(tǒng)規(guī)模的擴(kuò)大,授權(quán)信息和 策略的管理成為了一項繁瑣而又艱巨的任務(wù),傳統(tǒng)的混合式管理難以滿足要求。因此,必 須將授權(quán)管理與訪問控制進(jìn)行明確的區(qū)分。5. 難以滿足分布式系統(tǒng)的訪問控制需求。分布式系統(tǒng)是由一個個孤立的安全域通過 網(wǎng)絡(luò)互聯(lián)而形成的系統(tǒng),每個安全域都管理著本地的資源和用戶。通常每個域都有各自本 地管理的資源和本地用戶身份認(rèn)證,當(dāng)需要跨安全域進(jìn)行資源訪問控制時,來自外域的用 戶要訪問本域的資源,外域的用戶身份標(biāo)識對本域而言往往是不可理解的;不同域的訪問 控制策略也通常是異質(zhì)的,外域中用戶的安全屬性難以直接用于本域的訪問控制決策。因 此必須提供一種統(tǒng)一的訪問控制框架,以滿足分布式系統(tǒng)中跨域資源訪問控制的需求。近來,跨機(jī)構(gòu)的通用的訪問控制中間件技術(shù)在國際上得到廣泛的重視,涌現(xiàn)了一大批 相關(guān)的技術(shù)規(guī)范和開源項目,如Cardea, Shibboleth, EU資助下的PERMIS項目等。但是, 值得注意的是,所有這些項目還沒有提供一整套獨立的訪問控制中間件架構(gòu)為異構(gòu)平臺下 的Web應(yīng)用系統(tǒng)提供集中的訪問控制決策服務(wù)。Shibboleth是Internet2/M ACE (Middleware Architecture Committee for Education )禾卩IBM合作開發(fā)的一個項目。該項目的目的是提供多個組織(主要是大學(xué)和科研機(jī)構(gòu))之間Web 服務(wù)共享和訪問控制的技術(shù)。該項目重在分析提供這種跨組織的服務(wù)時系統(tǒng)需要滿足的結(jié) 構(gòu)性要求。Shibboleth采用了 SAML (Security Assertion Markup Language,安全斷言標(biāo)記 語言)作為系統(tǒng)組件之間消息交互的格式。Shibboleth主要關(guān)注三大問題跨組織的單點 登錄,聯(lián)合(Federation)和隱私保護(hù)。由于Shibboleth主要關(guān)注跨域認(rèn)證功能,只提供了 較為簡單的跨域訪問控制機(jī)制,不但功能較弱,且策略制定采用的是專有機(jī)制,僅針對單 一場景,缺乏對多種應(yīng)用場景的普遍的支持,無法實現(xiàn)通用的訪問控制接口。PERMIS (Privilege and Role Management Infrastructure)是英國Kent大學(xué)的一個PMI 項目,該項目采用RBAC作為底層的訪問控制機(jī)制。PEMIS的主要思想是用戶訪問組織 的資源時的訪問權(quán)限取決于該組織或者該組織信任的第三方屬性權(quán)威給該用戶授予的角 色。PERMIS項目的一個重要特色是它充分考慮了分布式環(huán)境下用戶屬性(主要是角色屬 性)的可信發(fā)布問題,采用了RFC2459定義的屬性證書來可靠地發(fā)布用戶的屬性信息。但 同時PERMIS也有一些缺點如PERMIS將授權(quán)管理和訪問策略管理集成在一起,管理機(jī) 制缺乏松耦合性,不符合構(gòu)件化的系統(tǒng)開發(fā)模式;同時策略制定采用的是專有機(jī)制,缺乏 對多種應(yīng)用場景的廣泛的支持,難以提供通用的訪問控制接口。此外,PERMIS的體系結(jié) 構(gòu)和軟件組成不支持Web Service等遠(yuǎn)程調(diào)用封裝機(jī)制,沒有很好地實現(xiàn)構(gòu)件化和模塊化, 代碼復(fù)用性較差造成了必須對系統(tǒng)進(jìn)行過多的限制,缺乏即插即用的易用性。Cardea是美國NASA(國家航空和宇宙航行局)開發(fā)的一個項目,基于JAVA實現(xiàn)。 Cardea的目標(biāo)是為跨管理域的動態(tài)資源訪問提供一個安全的分布式環(huán)境,允許用戶正確地
訪問一個沒有維護(hù)他的標(biāo)識信息的域的資源。值得注意的是,Cardea項目也存在一些問題 需要改進(jìn),由于Cardea的目標(biāo)僅僅是為跨管理域的動態(tài)資源訪問提供一個安全的分布式環(huán) 境,缺乏與其他各種系統(tǒng)進(jìn)行有效結(jié)合的接口和標(biāo)準(zhǔn),這就會造成在以后功能擴(kuò)展時,缺 乏對外圍部件自由替換或自由裁剪的支持,而這在大型的分布式系統(tǒng)中是尤為重要的。發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的問題,提供一種用于分布式環(huán)境下的構(gòu)件化的 訪問控制方法和訪問控制中間件系統(tǒng)。本發(fā)明基于構(gòu)件的分布式系統(tǒng)訪問控制方法,包括下列步驟a) 用戶發(fā)起訪問請求;b) 標(biāo)準(zhǔn)授權(quán)決策接口獲得該訪問請求中的用戶屬性信息(優(yōu)選符合SAML規(guī)范) 并將其重組為策略決策請求(優(yōu)選符合XACML規(guī)范)后提交給策略決策服務(wù);其中用戶屬性信息的組合方式可以包括主體-資源-行為-環(huán)境、主體-資源-行為、匿 名ID、匿名ID-主體、或匿名ID-屬性査詢;c) 策略決策服務(wù)根據(jù)該策略決策請求檢索已有策略(優(yōu)選符合XACML規(guī)范)并 獲得和該策略決策請求相匹配的策略;d) 若策略決策請求缺少所述相匹配的策略所需的用戶屬性信息,則策略決策服務(wù) 調(diào)用屬性檢索模塊檢索所需的用戶屬性信息并更新策略決策請求;e) 策略決策服務(wù)根據(jù)更新后的策略決策請求和匹配的策略作出決策;f) 標(biāo)準(zhǔn)授權(quán)決策接口根據(jù)該決策授權(quán)或忽略用戶的訪問請求。本發(fā)明基于構(gòu)件的分布式系統(tǒng)訪問控制系統(tǒng)包括下列組件標(biāo)準(zhǔn)授權(quán)決策接口,策略 決策服務(wù),策略管理服務(wù)和屬性檢索模塊,所述各個組件均具有統(tǒng)一的接口標(biāo)準(zhǔn),以便各 個組件之間可以協(xié)同工作,比如,各組件之間可以順利接收或識別來自其他構(gòu)件的信息, 即使不同的組件由不同的開發(fā)者所開發(fā);所述標(biāo)準(zhǔn)授權(quán)決策接口獲得用戶訪問請求,并將其中的用戶屬性信息重組為策略決策 請求后提交給策略決策服務(wù);所述策略決策服務(wù)根據(jù)策略決策請求檢索策略發(fā)布點上儲存的已有策略并獲得和該策 略決策請求相匹配的策略,同時在需要的時候調(diào)用屬性檢索模塊檢索策略決策請求中不包 含但所述匹配的策略需要的用戶屬性;
所述策略管理服務(wù)用于對外提供策略管理的服務(wù)接口以供策略編寫和維護(hù)工具調(diào)用; 所述屬性檢索模塊用于檢索用戶屬性,支持跨域檢索。本發(fā)明訪問控制系統(tǒng)還可包括屬性發(fā)布點,用于儲存用戶屬性憑證,所述屬性發(fā)布點 和屬性檢索模塊數(shù)據(jù)連接。通過上述技術(shù)方案內(nèi)容的描述可見,本發(fā)明將訪問控制中的決策部分抽取出來,通過 對訪問控制請求的組裝、訪問控制策略的制訂和匹配、訪問控制結(jié)果的判斷,使得對于應(yīng) 用業(yè)務(wù)端則只需要插入一個過濾插件,從而實現(xiàn)與應(yīng)用無關(guān)。本發(fā)明的訪問控制中間件系統(tǒng)通過加入支持跨域的屬性檢索模塊支持跨域的訪問控 制,可通過采用基于屬性的策略管理服務(wù)支持多屬性描述的XACML策略語言,提供動態(tài) 和細(xì)粒度的訪問控制功能。也可通過SAML屬性服務(wù)把傳統(tǒng)屬性權(quán)威發(fā)布的屬性憑證(例 如屬性證書)轉(zhuǎn)換成符合SAML規(guī)范的格式,以保證整個中間件系統(tǒng)實現(xiàn)完整的SAML安 全消息傳輸機(jī)制,保證屬性的安全査詢和應(yīng)答以及訪問控制決策的安全與可靠。通過使用本發(fā)明的構(gòu)件化的技術(shù)方案,對于希望利用最新的技術(shù)和方案的用戶,可以 避免重復(fù)開發(fā)。本發(fā)明技術(shù)方案還能夠根據(jù)具體應(yīng)用場景的不同,支持某些外圍模塊在不 同的應(yīng)用場景中的自由替換或裁剪;能做到既支持大規(guī)模、分布式、多信任域、多應(yīng)用系 統(tǒng)的復(fù)雜網(wǎng)絡(luò)環(huán)境,也支持單信任域、少量應(yīng)用系統(tǒng)的簡單網(wǎng)絡(luò)環(huán)境。通過將訪問控制與 業(yè)務(wù)系統(tǒng)分離的思想,做到統(tǒng)一授權(quán),統(tǒng)一管理,減少單個系統(tǒng)的開發(fā)代價。此外,也可 通過本系統(tǒng)提供一種新的服務(wù)式應(yīng)用模式基于webservices的訪問控制服務(wù),支持面向 SOA的業(yè)務(wù)開發(fā)。基于本發(fā)明技術(shù)方案,用戶可將訪問控制系統(tǒng)的開發(fā)與使用按流程分為四個部分,即 訪問控制構(gòu)件服務(wù)開發(fā)、構(gòu)件服務(wù)發(fā)布、構(gòu)件服務(wù)組裝、系統(tǒng)級調(diào)試與部署。每個階段所 生成的結(jié)果與產(chǎn)品成為下一階段的輸入,整個流程完成后,構(gòu)建成一個完整的訪問控制系 統(tǒng),達(dá)到最終對受控資源進(jìn)行訪問控制的目的。在第一部分的構(gòu)件服務(wù)開發(fā)階段中,本發(fā)明己對分布式環(huán)境下的訪問控制判定過程進(jìn) 行抽象,將其劃分為以下四大構(gòu)件服務(wù)模塊,并按各自功能進(jìn)行開發(fā),這四大構(gòu)件服務(wù)模塊如下1.標(biāo)準(zhǔn)授權(quán)決策接口 (LOISADI)LOISADI接口主要作用是提供一組接口服務(wù),它負(fù)責(zé)收集主體屬性、訪問資源屬性、 動作屬性、環(huán)境屬性和訪問決策請求等訪問控制信息,構(gòu)造XACML規(guī)范定義的標(biāo)準(zhǔn)化格式的策略決策請求,提交給策略決策服務(wù)。由于某些接口標(biāo)準(zhǔn)無法與XACML描述的格式 完全兼容,可在實現(xiàn)的過程中擴(kuò)展和修改某些數(shù)據(jù)結(jié)構(gòu)和服務(wù)的定義,以便能夠與XACML 規(guī)范協(xié)同工作并維持XACML的表達(dá)能力。2. 策略決策服務(wù)策略決策服務(wù)負(fù)責(zé)從標(biāo)準(zhǔn)授權(quán)決策接口接受決策請求,查找適用策略并對策略進(jìn)行評 估,產(chǎn)生一個決策結(jié)果,然后將這個結(jié)果返回給標(biāo)準(zhǔn)授權(quán)決策接口 (LOISADI)。策略決 策服務(wù)包括三個子模塊XACML策略引擎、屬性檢索器和策略檢索器。XACML策略引擎 負(fù)責(zé)接收策略決策請求,利用策略檢索器檢索適用策略,然后對找到的策略進(jìn)行評估,在 評估過程中如果發(fā)現(xiàn)策略決策請求中的主體屬性不充分,則調(diào)用屬性檢索器通過屬性檢索 模塊檢索主體屬性。3. 策略管理服務(wù)策略管理服務(wù)負(fù)責(zé)策略管理的服務(wù)接口以供圖形化的XACML策略編寫和維護(hù)工具調(diào) 用,可包括兩個部分策略管理模塊和策略發(fā)布點。策略管理模塊實現(xiàn)對XACML策略的 定義和維護(hù)提供服務(wù)接口的功能,并提供服務(wù)將定義好的策略發(fā)布到策略發(fā)布點上。策略 發(fā)布點是一個策略存儲數(shù)據(jù)庫,供策略檢索器進(jìn)行適用策略檢索。然而,作為對系統(tǒng)的一 種合理的簡化,可以不設(shè)置策略管理模塊,比如,采用商用的策略庫以降低單獨的策略開 發(fā)成本,縮短系統(tǒng)構(gòu)建的時間耗費(fèi)。4. SAML屬性服務(wù)SAML屬性服務(wù)有機(jī)結(jié)合現(xiàn)有授權(quán)基礎(chǔ)設(shè)施和SAML安全信息傳輸機(jī)制,實現(xiàn)對安全 屬性驗證過程的有效封裝,構(gòu)造了一種從屬性憑證到SAML安全屬性斷言的轉(zhuǎn)換機(jī)制,即 SAML安全屬性査詢服務(wù)。本部分主要包含兩個模塊SAML屬性檢索模塊和和LDAP(Lightweight Directory Access Protocol,輕量級目錄訪問協(xié)議)屬性發(fā)布點。屬性發(fā)布點 存放授權(quán)管理基礎(chǔ)設(shè)施或其它屬性管理系統(tǒng)給機(jī)構(gòu)內(nèi)用戶頒發(fā)的安全屬性憑證,然而,作 為對系統(tǒng)的合理簡化,可以不設(shè)置屬性發(fā)布點,以降低對屬性發(fā)布點的維護(hù)成本。SAML 屬性檢索模塊根據(jù)接收到的SAML安全屬性查詢請求在LDAP屬性發(fā)布點中査找對應(yīng)的屬 性憑證,通過建立憑證鏈確定屬性的可信性,產(chǎn)生簽名的SAML安全屬性應(yīng)答消息。對于 用戶非本域內(nèi)的屬性信息則通過調(diào)用外域SAML屬性服務(wù)以獲得用戶在外域中所具有的屬 性。在對以上四大構(gòu)件服務(wù)模塊的開發(fā)過程中,本發(fā)明為每個構(gòu)件服務(wù)定義了統(tǒng)一的接口 標(biāo)準(zhǔn),以支持各模塊在不同的應(yīng)用中的自由替換和互操作。通過統(tǒng)一接口標(biāo)準(zhǔn),確保每個 符合標(biāo)準(zhǔn)的服務(wù)調(diào)用者在進(jìn)行調(diào)用時得到相同的正確返回。 一個典型的例子就是對于標(biāo)準(zhǔn) 授權(quán)決策接口 (LOISADI)所調(diào)用的策略決策服務(wù),任意符合接口標(biāo)準(zhǔn)的決策請求都是合 法和正確的,而不論該請求是否來自特定的開發(fā)者開發(fā)的LOISADI。換言之,用戶可以根 據(jù)應(yīng)用的要求自己開發(fā)符合標(biāo)準(zhǔn)的模塊來調(diào)用策略決策服務(wù),從而實現(xiàn)采用構(gòu)件化的設(shè)計 思想根據(jù)具體應(yīng)用的不同,進(jìn)行模塊間的自由替換和自由組織。此外,各服務(wù)/構(gòu)件在對外提供基本服務(wù)的同時,還通過配置管理的形式,可選擇的支 持某些增強(qiáng)功能。 一個典型的例子就是對于SAML屬性服務(wù),除了可以提供對本域?qū)傩缘?查詢服務(wù),通過配置管理的形式,還可以通過調(diào)用對應(yīng)的外域SAML屬性服務(wù)以獲得用戶 在外域中所具有的屬性,并通過建立憑證鏈確定屬性的可信性,產(chǎn)生簽名的SAML安全屬 性應(yīng)答消息。以保證來自外域的用戶屬性的安全性和可信性。在第一部分的構(gòu)件服務(wù)開發(fā)階段完成以后,所得到的輸出結(jié)果產(chǎn)品是以上四大構(gòu)件服 務(wù)模塊。而該階段的輸出結(jié)果產(chǎn)品作為輸入在下一階段進(jìn)行使用。在第二部分的構(gòu)件服務(wù)發(fā)布階段中,對第一階段開發(fā)完成的四大構(gòu)件服務(wù)模塊進(jìn)行發(fā) 布。在發(fā)布過程中,為了保證以上四大模塊的獨立性和低耦合,需要對其進(jìn)行獨立發(fā)布, 以保證客戶可自由選擇使用的服務(wù)模塊,并支持各模塊在不同的應(yīng)用中的自由替換和互操 作。服務(wù)發(fā)布階段主要任務(wù)是將第一階段所完成的四大構(gòu)件服務(wù)模塊的接口服務(wù)發(fā)布到 Public UDDI Registry(公共UDDI注冊中心)。大致分為以下幾個步驟1. 添加或更新發(fā)布者信息(savejublisher):用于注冊一個新的發(fā)布者,或更新該發(fā)布 者的詳細(xì)信息。2. 添加或更新商業(yè)信息(save—business):包括發(fā)布者的認(rèn)證信息,商業(yè)UUID, 實體名,實體描述,實體聯(lián)系方法(包括聯(lián)系類型,聯(lián)系人名字,電話,e-mail等)。3. 添加或更新服務(wù)信息(save—service):包括輸入認(rèn)證信息,商業(yè)UUID,服務(wù) UUID,服務(wù)名,服務(wù)描述,服務(wù)的綁定模板(一個服務(wù)可能對應(yīng)多個綁定模板)。服務(wù)的 綁定模板中包括綁定UUID,訪問點URL, tmodel細(xì)節(jié)。tmodel細(xì)節(jié)則包括tmodelUUID, tmodel概述文檔URL。其中,tmodel被用于定義服務(wù)的技術(shù)規(guī)范。4. 添加或更新綁定信息(save_bindirig):輸入服務(wù)的綁定模板中所包括的信息,如 認(rèn)證信息,月艮務(wù)UUID,綁定UUID,綁定描述,訪問點URL。5. 添加或更新tmodel信息(save—tModel):輸入被用于定義服務(wù)的技術(shù)規(guī)范,如tmodd UUID,名字,描述,概述文檔的描述及其URL,標(biāo)識符包,類別包(包括工業(yè)代碼、產(chǎn)品、
地理等)。6. 添加發(fā)布者聲明到本發(fā)布者的聲明集合中(add_publisherAssertions):輸入發(fā)布 者的認(rèn)證信息,發(fā)布者聲明。發(fā)布者聲明中包括所關(guān)聯(lián)兩實體的UUID,UUID參考信息。通過以上步驟即可將接口服務(wù)發(fā)布到公共UDDI注冊中心,服務(wù)組裝用戶即可通過查找 商業(yè)信息和服務(wù),査詢到以上接口服務(wù),以便在第三階段進(jìn)行構(gòu)件服務(wù)組裝。在第三部分的構(gòu)件服務(wù)組裝階段中,由服務(wù)組裝用戶根據(jù)所要搭建的訪問控制系統(tǒng)的 系統(tǒng)需求和所要實現(xiàn)的基本功能,對第二階段所發(fā)布的四大構(gòu)件服務(wù)模塊中所需要的服務(wù) 接口進(jìn)行組裝。在本階段中,服務(wù)組裝用戶并不需要對第一階段所開發(fā)的四大構(gòu)件服務(wù)模 塊其中的具體實現(xiàn)細(xì)節(jié)有充分詳盡的了解,只需要知道該服務(wù)模塊所能實現(xiàn)的功能,以及 它所提供的接口即可。服務(wù)組裝用戶根據(jù)訪問控制系統(tǒng)對受控保護(hù)資源的保護(hù)需求以及最 終用戶的業(yè)務(wù)使用需求,選擇適合自己的服務(wù)接口進(jìn)行組裝,并可根據(jù)自己的意愿對其中 某些模塊進(jìn)行替換或通過配置的形式可選擇的支持某些增強(qiáng)功能。一個簡單的例子是,某公司需要搭建一個文檔管理系統(tǒng),由于是只限于在本公司內(nèi)部 進(jìn)行使用,因此不需要跨域的SAML安全屬性査詢服務(wù)。此外,由于該公司希望自己管理 相應(yīng)的訪問控制策略,因此使用本公司自己的策略管理服務(wù)。在此需求下,服務(wù)組裝用戶 將只需要把LOISADI授權(quán)決策接口、策略決策服務(wù)和SAML屬性服務(wù)三大構(gòu)件服務(wù)模塊中 的服務(wù)接口進(jìn)行組裝即可。由于只是在本公司內(nèi)部使用,因此LOISADI授權(quán)接口只需要調(diào) 用本域授權(quán)接口; SAML屬性服務(wù)也不需要査詢用戶在外域中所具有的屬性,只需在配置 中設(shè)置為發(fā)布本域?qū)傩约纯?。在確定需要組裝的服務(wù)模塊以后,服務(wù)組裝用戶即可按照對 該訪問控制服務(wù)的設(shè)計進(jìn)行組裝。由于系統(tǒng)的設(shè)計、開發(fā)與部署均基于WebService技術(shù), 因此服務(wù)組裝階段支持現(xiàn)有流行的開發(fā)模型和開發(fā)工具,如BPMN建模、BPEL語言等。在第三部分的構(gòu)件服務(wù)組裝階段完成以后,所得到的輸出結(jié)果產(chǎn)品是由基本的構(gòu)件服 務(wù)模塊所組裝而成的一個符合系統(tǒng)需求的訪問控制系統(tǒng)。該系統(tǒng)可以有自己定制的界面或 訪問控制實施點,也可以采用某些廠商所開發(fā)的模塊進(jìn)行必要的功能替換,但在符合本發(fā) 明接口的前提下,該系統(tǒng)是一個由基本的訪問控制構(gòu)件服務(wù)模塊組裝而成的分布式訪問控 制系統(tǒng)。在第四部分的系統(tǒng)級調(diào)試與部署階段中,由實施人員對第三階段組裝生成的訪問控制 系統(tǒng)進(jìn)行調(diào)試與部署實施。在本階段中,實施人員需要進(jìn)行的工作包括對訪問控制系統(tǒng) 添加相應(yīng)的策略;為系統(tǒng)用戶頒發(fā)相應(yīng)的屬性憑證并保證屬性憑證鏈的可追溯性;對跨域 的屬性査詢,需要與外域所屬機(jī)構(gòu)進(jìn)行協(xié)調(diào),保證外域?qū)傩园l(fā)布點的可用性;對系統(tǒng)進(jìn)行 整體調(diào)試,確保訪問控制策略的正確實施。在完成以上工作以后,實施人員可將最終的訪 問控制系統(tǒng)交由系統(tǒng)管理員與最終用戶使用。和現(xiàn)有技術(shù)相比,本發(fā)明具有下述優(yōu)勢1. 基于本發(fā)明技術(shù)方案提供的組裝式開發(fā)與使用模式,用戶可保證應(yīng)用的訪問控制 流程安全與可靠,保證決策整體流程的可追蹤、可核查與可控制。2. 利用構(gòu)件化的設(shè)計思想和方法對訪問控制流程進(jìn)行特征提取,并通過為核心構(gòu)件 提供相關(guān)的功能擴(kuò)展,實現(xiàn)獨立靈活延展性好的中間件架構(gòu),保證新構(gòu)件添加過程的易配 置、可插拔、無沖突。3. 通過統(tǒng)一的、可擴(kuò)展的策略管理服務(wù),實現(xiàn)對訪問控制系統(tǒng)的多策略支持。改進(jìn) 了以往對每種策略定義特定屬性、特定函數(shù)、特定配置方法,使用專有實施機(jī)制的缺陷。4. 通過引入統(tǒng)一的SAML屬性服務(wù)克服了傳統(tǒng)訪問控制模型在授權(quán)時大都僅僅考慮 用戶的某一種特定屬性的缺陷,并用統(tǒng)一的SAML安全屬性應(yīng)答機(jī)制解決了外域用戶身份 對本域不可理解、不同域間訪問控制策略異質(zhì)的問題,實現(xiàn)了外域用戶的安全屬性直接用 于本域的訪問控制決策。
圖1為本發(fā)明實施例系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖。 圖2為本發(fā)明實施例系統(tǒng)的策略決策服務(wù)的運(yùn)行流程圖。 圖3為本發(fā)明實施例系統(tǒng)的策略管理模塊的運(yùn)行流程圖。 圖4為本發(fā)明實施例系統(tǒng)的SAML屬性服務(wù)的運(yùn)行流程圖。
具體實施方式
下面通過具體實施例和附圖對本發(fā)明作進(jìn)一步的描述。本實施例系統(tǒng)包括標(biāo)準(zhǔn)授權(quán)決策接口 (LOISADI),策略決策服務(wù),策略管理服務(wù), 以及SAML屬性服務(wù)四大構(gòu)件,如圖l所示。本實施例系統(tǒng)分別提供了跨域或單域訪問過 程中需要的訪問控制信息收集、策略決策、策略管理、用戶屬性査詢等功能,能夠提供一 套完整的訪問控制流程所需的各種功能。此外,通過利用以上四大構(gòu)件所提供的已獨立實 現(xiàn)的功能,服務(wù)組裝用戶可以快速的按訪問控制系統(tǒng)需求進(jìn)行組裝,并可以根據(jù)具體應(yīng)用
場景的不同,實現(xiàn)功能組件的自由替換,避免重復(fù)開發(fā)。 本實施例系統(tǒng)完整的訪問控制流程包括下列步驟1. 安全策略管理員通過策略管理模塊定義XACML策略,然后將定義好的策略存儲 到策略發(fā)布點上。2. 用戶發(fā)起訪問請求,該訪問請求被應(yīng)用服務(wù)器攔截。應(yīng)用服務(wù)器收集訪問控制信 息,并提交給標(biāo)準(zhǔn)授權(quán)決策接口 (LOISADI)。3. 標(biāo)準(zhǔn)授權(quán)決策接口 (LOISADI)將訪問控制信息轉(zhuǎn)換為符合XACML規(guī)范的策略 決策請求并提交給策略決策服務(wù)。4. 策略決策服務(wù)以策略決策請求為參數(shù)調(diào)用策略檢索器從策略發(fā)布點檢索適用策 略,并對策略進(jìn)行評估。5. 在評估過程中如果發(fā)現(xiàn)策略決策請求中的屬性是不充分的,則調(diào)用屬性檢索器向 用戶所屬域的屬性檢索模塊發(fā)出SAML屬性査詢請求。6. 屬性檢索模塊通過屬性發(fā)布點上的屬性憑證或發(fā)起檢索從而獲得屬性憑證,并驗 證憑證,對解析出的屬性進(jìn)行SAML格式轉(zhuǎn)換。如果所査詢的屬性是外域中的屬性,則調(diào) 用對應(yīng)的外域?qū)傩詸z索模塊以獲得用戶在外域中所具有的屬性,并通過建立憑證鏈確定屬 性的可信性,產(chǎn)生簽名的SAML安全屬性應(yīng)答消息。7. 屬性檢索模塊向策略決策服務(wù)發(fā)送SAML屬性應(yīng)答。8. 策略決策服務(wù)完成策略評估,返回最終決策結(jié)果。在策略評估過程,如果當(dāng)前檢 索策略中包含引用策略,策略管理服務(wù)以被引用的策略ID調(diào)用策略檢索器獲取被引用的 策略。9. 應(yīng)用服務(wù)器根據(jù)返回的決策結(jié)果拒絕或允許用戶訪問。 下面描述各構(gòu)件服務(wù)模塊的
具體實施例方式一、標(biāo)準(zhǔn)授權(quán)決策接口 (LOISADI)實現(xiàn)了一種支持多種信息格式的通用授權(quán)接口, 應(yīng)用服務(wù)器可以通過這個接口的調(diào)用請求訪問控制服務(wù)。標(biāo)準(zhǔn)授權(quán)決策接口的另一功能是 將訪問控制信息轉(zhuǎn)換為符合XACML規(guī)范的決策請求格式并提交給策略決策服務(wù)。由于某 些接口無法與XACML描述的格式完全兼容,可在實現(xiàn)的過程中擴(kuò)展和修改了某些數(shù)據(jù)結(jié) 構(gòu)和服務(wù)的定義,以便能夠與XACML規(guī)范協(xié)同工作并維持XACML的表達(dá)能力。LOIS ADI中的授權(quán)決策接口主要包括如下幾類1.主體-資源-行為-環(huán)境類應(yīng)用通過指明訪問過程中的主體信息、資源信息、行為 和當(dāng)前的環(huán)境信息,對接口進(jìn)行調(diào)用。此類接口的優(yōu)點是信息分類明確,關(guān)系對應(yīng)清晰。
缺點是輸入信息條目過多,參數(shù)獲得與構(gòu)造過程復(fù)雜,不適于簡單應(yīng)用。2. 主體-資源-行為類應(yīng)用通過指明訪問過程中的主體信息、資源信息、行為,對 接口進(jìn)行調(diào)用。訪問過程中的環(huán)境信息在應(yīng)用服務(wù)器進(jìn)行接口調(diào)用時默認(rèn)為統(tǒng)一方式,或 指定環(huán)境信息查詢服務(wù)的地址,由LOISADI協(xié)助收集環(huán)境信息,并進(jìn)行組裝。3. 匿名ID類應(yīng)用在對接口進(jìn)行調(diào)用時,并不指明主體的真實ID,而只是傳遞一個 匿名ID作為主體的代號,當(dāng)策略決策服務(wù)需要知道主體的真實身份時,再通過指定的真 假名轉(zhuǎn)換服務(wù)進(jìn)行轉(zhuǎn)換,此類接口可有效支持匿名保護(hù)機(jī)制。4. 匿名ID-主體屬性類應(yīng)用在對接口進(jìn)行調(diào)用時,并不指明主體的真實ID,而只 是傳遞一個匿名ID作為主體的代號,但卻在主體信息中攜帶該主體所有的主體屬性信息。 在絕大部分基于屬性的訪問控制中,策略只是針對主體的屬性做了詳細(xì)的描述,而對主體 的ID卻并不關(guān)心(如某資源只對具有項目經(jīng)理屬性的主體開放,但并不關(guān)心是哪一位項 目經(jīng)理),采用此類接口,即可以有效避免在査詢匿名ID所具有的屬性時進(jìn)行頻繁的真 假名轉(zhuǎn)換操作。5. 匿名ID-屬性查詢類應(yīng)用在對接口進(jìn)行調(diào)用時,只傳遞一個匿名ID作為主體的 代號,當(dāng)策略決策服務(wù)需要知道主體的屬性時,通過指定的屬性査詢服務(wù)進(jìn)行査詢,獲得 主體所具有的屬性;而當(dāng)策略決策服務(wù)需要知道主體的真實身份時,再通過指定的真假名 轉(zhuǎn)換服務(wù)進(jìn)行轉(zhuǎn)換。采用此類接口,應(yīng)用不需要將主體的所有屬性信息收集完全,這一方 面是不必要的,另一方面也會泄露主體的某些隱私。在策略決策服務(wù)進(jìn)行決策判定時,再 根據(jù)所缺少的屬性信息通過指定的屬性查詢服務(wù)進(jìn)行查詢,可有效地支持隱私保護(hù)機(jī)制。二、策略決策服務(wù)的主要功能是根據(jù)接收到的XACML訪問控制策略決策請求,檢索 適用的策略和必要的屬性(需要的話),對策略進(jìn)行評估,獲得并返回策略決策請求的決 策結(jié)果。其中策略檢索通過調(diào)用策略檢索器完成,屬性檢索通過調(diào)用屬性檢索器完成。簡 要流程如圖2所示,具體內(nèi)容如下1. 策略決策服務(wù)接收訪問控制策略決策請求。2. 解析當(dāng)前請求,并利用策略檢索器檢索適用策略。3. 如果請求中缺少屬性信息,則利用屬性檢索器檢索屬性信息。如果不缺少,則繼 續(xù)進(jìn)行下一步。4. 開始對策略進(jìn)行評估。5. 如果發(fā)現(xiàn)當(dāng)前策略引用了別的策略,則轉(zhuǎn)到2,再次利用策略檢索器檢索被引用的 策略。如果沒有引用其它策略,則繼續(xù)進(jìn)行下一步。 6. 產(chǎn)生評估結(jié)果。7. 返回給請求發(fā)起方。三、 策略管理服務(wù)的主要功能是進(jìn)行訪問控制策略的維護(hù)、定義、修改、刪除。 XACML策略是以文檔為中心的,每次都是整個文檔作為一個整體使用,本實施例采取了 文件的存儲方式,以目錄的形式進(jìn)行組織,每個策略作為一個單獨的文件。策略管理服務(wù) 就是對這樣的一個存儲目錄進(jìn)行操作,能夠給管理員提供一個整體的策略視圖,以便管理 員能夠掌握系統(tǒng)中包括的每個策略的作用和策略之間的引用關(guān)系。盡管每個策略都包含了 作用描述和策略引用,但是通過解析每個XML文件來提取這些信息的方法太復(fù)雜和耗時, 因此這些信息必須獨立保存。對每一個策略,都要獨立的維護(hù)該策略的類型,策略的ID, 策略的簡要描述,策略引用的其它策略。這些信息用一個獨立的XML文件來保存,該文 件稱為系統(tǒng)信息文件,該文件對用戶是不可見的。此外我們還要維護(hù)一些全局的系統(tǒng)信息, 包括策略目錄,策略schema文件等。策略管理服務(wù)的運(yùn)行流程如圖3所示,具體內(nèi)容如 下1. 策略管理服務(wù)檢測系統(tǒng)信息文件是否已經(jīng)存在。如果存在則讀取系統(tǒng)信息文件; 如果尚不存在,則生成該系統(tǒng)信息文件。2. 調(diào)用系統(tǒng)信息文件,對策略ID、類型、策略引用等進(jìn)行維護(hù)。3. 接收用戶當(dāng)前的操作,根據(jù)操作類型確定要進(jìn)行的流程 如果用戶要刪除策略,則服務(wù)刪除指定的策略,并更新系統(tǒng)信息文件;如果用戶要創(chuàng)建策略,則服務(wù)創(chuàng)建策略文件,并啟動策略編輯接口進(jìn)行編輯。編輯完成后,服務(wù)檢査策略有效性,保存策略文件并更新系統(tǒng)信息文件; 如果用戶要修改策略,則服務(wù)啟動策略編輯接口編輯選定的策略。編輯完成后, 服務(wù)檢查策略有效性,保存策略文件并更新系統(tǒng)信息文件;4. 完成操作后,轉(zhuǎn)到2.四、 SAML屬性服務(wù)主要是為了向策略決策服務(wù)中的屬性檢索器提供一種基于SAML 的安全屬性査詢服務(wù),這種服務(wù)是通過構(gòu)造一種從屬性憑證到SAML安全屬性斷言的轉(zhuǎn)換 機(jī)制實現(xiàn)的。授權(quán)管理基礎(chǔ)設(shè)施(PMI)等給機(jī)構(gòu)內(nèi)用戶頒發(fā)的安全屬性憑證存放在LDAP 屬性數(shù)據(jù)庫中。SAML屬性査詢服務(wù)器根據(jù)接收到的SAML安全屬性査詢請求和機(jī)構(gòu)隱私 策略判斷是否允許請求者查詢該安全屬性,在LDAP屬性數(shù)據(jù)庫中查找對應(yīng)的屬性憑證, 通過建立憑證鏈確定屬性的可信性,產(chǎn)生簽名的SAML安全屬性應(yīng)答消息。如果請求中包 含有對外域?qū)傩缘牟樵儯瑒t會通過調(diào)用外域SAML屬性服務(wù)以獲得用戶在外域中所具有的
屬性。其査詢過程與本域?qū)傩缘牟樵冞^程一致。SAML屬性服務(wù)的運(yùn)行流程如圖4所示,具體內(nèi)容如下1. SAML屬性服務(wù)監(jiān)聽SAML屬性查詢請求,獲得査詢請求后創(chuàng)建服務(wù)子線程。2. 檢査接收到的SAML安全屬性査詢請求的有效性和合法性發(fā)送給屬性服務(wù)的屬 性査詢請求必須是經(jīng)過簽名的,且SAML屬性服務(wù)只能為所屬機(jī)構(gòu)或者外部的可信機(jī)構(gòu)的 策略決策服務(wù)提供屬性査詢服務(wù)。3. 根據(jù)隱私策略判斷是否允許請求者査詢該安全屬性,允許則進(jìn)行下一步,不允許 則返回出錯信息。4. 在屬性緩存中査找該屬性SAML斷言消息,存在則直接轉(zhuǎn)到8,不存在則進(jìn)行下一步。5. 在LDAP屬性數(shù)據(jù)庫中査找對應(yīng)的屬性憑證,存在則進(jìn)行下一步,不存在則返回 出錯信息。6. 通過建立憑證鏈確定屬性的可信性。7. 產(chǎn)生簽名的SAML安全屬性應(yīng)答消息并寫入屬性緩存8. 返回屬性斷言。
權(quán)利要求
1. 一種基于構(gòu)件的分布式系統(tǒng)訪問控制方法,包括下列步驟a)用戶發(fā)起訪問請求;b)標(biāo)準(zhǔn)授權(quán)決策接口獲得該訪問請求中的用戶屬性信息并將其重組為策略決策請求后提交給策略決策服務(wù);c)策略決策服務(wù)根據(jù)該策略決策請求檢索已有策略并獲得和該策略決策請求相匹配的策略;d)若策略決策請求缺少所述相匹配的策略所需的用戶屬性信息,則策略決策服務(wù)調(diào)用屬性檢索模塊檢索所需的用戶屬性信息并更新策略決策請求;e)策略決策服務(wù)根據(jù)更新后的策略決策請求和匹配的策略作出決策;f)標(biāo)準(zhǔn)授權(quán)決策接口根據(jù)該決策授權(quán)或忽略用戶的訪問請求。
2. 如權(quán)利要求1所述的基于構(gòu)件的分布式系統(tǒng)訪問控制方法,其特征在于,步驟b)所述 策略決策請求和策略均符合XACML規(guī)范。
3. 如權(quán)利要求1所述的基于構(gòu)件的分布式系統(tǒng)訪問控制方法,其特征在于,步驟b)所述 將用戶屬性信息重組為策略決策請求過程中,用戶屬性信息的組合方式包括主體-資源-行為-環(huán)境、主體-資源-行為、匿名ID、匿名ID-主體、或匿名ID-屬性查詢。
4. 如權(quán)利要求1所述的基于構(gòu)件的分布式系統(tǒng)訪問控制方法,其特征在于,所述用戶屬 性信息符合SAML規(guī)范。
5. —種基于構(gòu)件的分布式系統(tǒng)訪問控制系統(tǒng),其特征在于,包括下列組件標(biāo)準(zhǔn)授權(quán)決 策接口,策略決策服務(wù),策略管理服務(wù)和屬性檢索模塊,所述各個組件均具有統(tǒng)一的接口 標(biāo)準(zhǔn);所述標(biāo)準(zhǔn)授權(quán)決策接口獲得用戶訪問請求,并將其中的用戶屬性信息重組為策略決策 請求后提交給策略決策服務(wù);所述策略決策服務(wù)根據(jù)策略決策請求檢索策略發(fā)布點上儲存的已有策略并獲得和該策 略決策請求相匹配的策略,同時在需要的時候調(diào)用屬性檢索模塊檢索策略決策請求中不包 含但所述匹配的策略需要的用戶屬性;所述策略管理服務(wù)用于對外提供策略管理的服務(wù)接口以供策略編寫和維護(hù)工具調(diào)用;所述屬性檢索模塊用于檢索用戶屬性,支持跨域檢索。
6. 如權(quán)利要求5所述的基于構(gòu)件的分布式系統(tǒng)訪問控制系統(tǒng),其特征在于,所述策略管 理服務(wù)儲存系統(tǒng)信息文件,所述系統(tǒng)信息文件為每一個策略均獨立地維護(hù)包括策略類型、 策略ID、策略簡要描述以及策略引用的其它策略的策略信息。
7. 如權(quán)利要求5所述的基于構(gòu)件的分布式系統(tǒng)訪問控制系統(tǒng),其特征在于,還包括屬性 發(fā)布點,用于儲存用戶屬性憑證,所述屬性發(fā)布點和屬性檢索模塊數(shù)據(jù)連接。
全文摘要
本發(fā)明公開了一種基于構(gòu)件的分布式系統(tǒng)訪問控制方法,屬于計算機(jī)軟件技術(shù)領(lǐng)域。本發(fā)明方法包括下列步驟a)用戶發(fā)起訪問請求;b)標(biāo)準(zhǔn)授權(quán)決策接口獲得該訪問請求中的用戶屬性信息并將其重組為策略決策請求后提交給策略決策服務(wù);c)策略決策服務(wù)根據(jù)該策略決策請求檢索已有策略并獲得和該策略決策請求相匹配的策略;d)若策略決策請求缺少所述相匹配的策略所需的用戶屬性信息,則策略決策服務(wù)調(diào)用屬性檢索模塊檢索所需的用戶屬性信息并更新策略決策請求;e)策略決策服務(wù)根據(jù)更新后的策略決策請求和匹配的策略作出決策;f)標(biāo)準(zhǔn)授權(quán)決策接口根據(jù)該決策授權(quán)或忽略用戶的訪問請求。本發(fā)明可用于分布式系統(tǒng)的訪問控制。
文檔編號G06F9/46GK101398771SQ20081022684
公開日2009年4月1日 申請日期2008年11月18日 優(yōu)先權(quán)日2008年11月18日
發(fā)明者馮登國, 檳 吳, 張立武, 王雅哲 申請人:中國科學(xué)院軟件研究所