專利名稱:一種分布式雙重授權(quán)及訪問控制方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式網(wǎng)絡(luò)環(huán)境下用戶對分布式資源或服務(wù)的授權(quán)和訪問控 制技術(shù),特別是一種分布式分級分組雙重授權(quán)及訪問控制方法和系統(tǒng)。
背景技術(shù):
企業(yè)內(nèi)部的信息設(shè)施往往由異構(gòu)分布式應(yīng)用系統(tǒng)組成,實現(xiàn)這些應(yīng)用系統(tǒng) 的集成是未來的發(fā)展趨勢,不僅如此,大型應(yīng)用系統(tǒng)自身的構(gòu)成也出現(xiàn)了分布 式集成的特性,通過將不同的模塊整合達到某一應(yīng)用的目的。不同的信息系統(tǒng),尤其是Web應(yīng)用系統(tǒng),其集成需要實現(xiàn)對用戶的統(tǒng)一管理和認證,在此基礎(chǔ) 上,為進一步對信息系統(tǒng)和資源訪問進行控制,就需要實現(xiàn)針對用戶的資源或 服務(wù)的授權(quán)和訪問控制。授權(quán)和訪問控制所實現(xiàn)的功能是對訪問應(yīng)用系統(tǒng)中的資源或服務(wù)的權(quán)限 控制,它是網(wǎng)絡(luò)信息設(shè)施的一個重要組成部分,通過限制資源訪問,防止非法 用戶的侵入或合法用戶的不慎操作而造成的破壞,從而保證系統(tǒng)資源或服務(wù)的 合法使用。訪問控制的核心是授權(quán)策略和方法,即用于確定一個主體是否能對 客體擁有訪問能力的一套規(guī)則,在分布式的網(wǎng)絡(luò)環(huán)境下,主體是注冊用戶,客 體是分布系統(tǒng)中不同粒度和類別的資源或服務(wù)。傳統(tǒng)應(yīng)用系統(tǒng)的權(quán)限管理實質(zhì)是建立用戶、角色、資源、操作權(quán)限的映射 關(guān)系集合,滿足對資源控制的需求,例如,申請?zhí)枮?0129495.4的專利文獻 公開了一種企業(yè)間基于角色的授權(quán)的方法,基于角色的訪問控制雖然也有其優(yōu) 勢和適用的范圍,但現(xiàn)在企業(yè)內(nèi)部的信息系統(tǒng)多數(shù)是分布式的,其構(gòu)建也往往 采用開放的面向服務(wù)的架構(gòu)(Service Oriented Architecture, SOA),并多采用 Web服務(wù)進行松散的整合,XML技術(shù)成為其主要的技術(shù)方法。而且信息系統(tǒng) 的資源類型復雜,流程復雜,基于角色的訪問控制模型已無法滿足需求,成為 了制約信息流動的瓶頸之一。具體地,傳統(tǒng)的基于角色的權(quán)限控制模型的數(shù)據(jù) 訪問控制能力有限,缺乏靈活性。 一方面權(quán)限的過分集中而不能滿足需求,另一方面提高了授權(quán)邏輯的復雜度,并大大增加了系統(tǒng)管理員的工作量,對于授 權(quán)對象的粒度也往往比較少地考慮,因此針對分布式網(wǎng)絡(luò)環(huán)境下的權(quán)限控制需 要考慮不同的應(yīng)用需求,從各個不同的角度來實現(xiàn)。單純的用戶分級授權(quán)能解決一般資源的授權(quán)和訪問控制問題,但由于它屬 于一維的授權(quán)模式,對于復雜情況力不從心,當資源或服務(wù)存在于多個層面, 從而需要有多個限制因素的時候, 一維的授權(quán)方式也不能滿足要求,也就是說 如果把權(quán)限控制粒度只設(shè)定到某一類別或較粗粒度上的話,對于更細化的資源 或服務(wù)就無法控制。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題在于提供一種分布式雙重授權(quán)及訪問控制方 法和系統(tǒng)。為達到上述目的,本發(fā)明提供的分布式雙重授權(quán)及訪問控制方法,應(yīng)用于 包括一個通用認證授權(quán)服務(wù)器和多個不同類型應(yīng)用系統(tǒng)的控制系統(tǒng),其特征在 于,包括分級權(quán)限控制步驟,用于通過所述通用認證授權(quán)服務(wù)器設(shè)定用戶級別,并 傳遞用戶分級信息給所述應(yīng)用系統(tǒng),通過驗證用戶級別與應(yīng)用系統(tǒng)的資源或服 務(wù)的級別匹配關(guān)系決定用戶對粗粒度資源或服務(wù)的訪問權(quán)限;分組權(quán)限控制步驟,用于通過所述應(yīng)用系統(tǒng)對用戶和資源/服務(wù)分別進行 分組設(shè)定,通過驗證用戶分組與資源/服務(wù)分組之間的相交關(guān)系決定用戶對細 粒度資源或服務(wù)的訪問權(quán)限。上述分布式雙重授權(quán)及訪問控制方法,其特征在于,所述分級訪問控制步 驟進一步包括步驟S101,通過所述通用認證授權(quán)服務(wù)器設(shè)定用戶級別,并在用戶完成 統(tǒng)一登錄認證后,傳遞用戶分級信息給應(yīng)用系統(tǒng);步驟S102,所述應(yīng)用系統(tǒng)解析該用戶分級信息,獲取用戶名和用戶級別 <曰息;步驟S103,用戶訪問受限資源,本地應(yīng)用系統(tǒng)根據(jù)預(yù)先約定的資源或服 務(wù)的級別與該用戶的級別比對,決定用戶的訪問權(quán)限;當用戶級別高于或等于 數(shù)據(jù)資源的級別時,能訪問;否則拒絕訪問并發(fā)出相關(guān)的提示信息。上述分布式雙重授權(quán)及訪問控制方法,其特征在于,所述分組訪問控制步 驟進一步包括步驟S201,預(yù)先在本地應(yīng)用系統(tǒng)對用戶和資源/服務(wù)分別進行分組設(shè)定;步驟S202,當用戶通過級別驗證,需要訪問受分組權(quán)限控制的細粒度資源時,部署在應(yīng)用系統(tǒng)的分組訪問控制邏輯檢測用戶分組與細粒度數(shù)據(jù)資源分 組的關(guān)系決定用戶的訪問權(quán)限,如果有相交的分組則能訪問,否則拒絕訪問并 發(fā)出相關(guān)的提示信息。上述分布式雙重授權(quán)及訪問控制方法,其特征在于,在所述步驟SIOI中, 傳遞用戶分級信息時,用戶的級別信息與用戶名信息通過XML文檔進行傳遞, 在所述步驟S102中,采用一個基于SAX的解析器對該XML文檔進行解析。進一步的,本發(fā)明提供了一種分布式雙重授權(quán)及訪問控制系統(tǒng),包括一通 用認證授權(quán)服務(wù)器及多個不同類型應(yīng)用系統(tǒng),其特征在于,包括其中,所述通用認證授權(quán)服務(wù)器,用于提供用戶的統(tǒng)一登錄認證功能、用戶分級 設(shè)定功能及用戶信息的發(fā)布功能,在用戶完成統(tǒng)一登錄認證后,傳遞用戶分級 信息給應(yīng)用系統(tǒng);所述應(yīng)用系統(tǒng),用于部署分級和分組訪問控制邏輯,并通過驗證用戶級別 與應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)的級別的匹配關(guān)系決定用戶對粗粒度資源或服務(wù)的訪 問權(quán)限,驗證用戶分組與資源或服務(wù)分組之間相交關(guān)系決定用戶對細粒度資源 或服務(wù)的訪問權(quán)限。上述分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于,所述通用認證授權(quán)服務(wù)器上進一步設(shè)置一用戶分級設(shè)定模塊,用于對用戶分級相關(guān)信息進行設(shè)定,并在用戶完成統(tǒng)一登錄認證后,將該用戶分級相關(guān)信息按設(shè)定格式文件返回給應(yīng)用系統(tǒng);一用戶信息發(fā)布模塊,基于用戶庫中的信息提供用戶信息發(fā)布Web服務(wù)。上述分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于,所述應(yīng)用系統(tǒng)中進一步設(shè)置一資源分級訪問控制模塊,用于從所述格式文件中解析出用戶名信息和用戶級別信息,并根據(jù)約定對相關(guān)資源或服務(wù)根據(jù)用戶的級別提供訪問控制;一用戶分組設(shè)定模塊,用于提供管理界面,為本地管理提供針對具體用7戶的分組設(shè)定功能;一資源分組設(shè)定模塊,用于提供本地管理對應(yīng)用系統(tǒng)中的資源或服務(wù)的 分組設(shè)定功能;一資源分組訪問控制模塊,用于針對用戶的訪問,動態(tài)檢測本地所設(shè)定 的用戶和資源/服務(wù)的分組,根據(jù)該用戶與資源的分組的關(guān)系實現(xiàn)訪問控制功 能。上述分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于,所述用戶分級設(shè)定模 塊中的用戶信息數(shù)據(jù)庫表中增加控制用戶級別的USER—LEVEL字段用于標識 用戶的級別。上述分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于,所述用戶分級設(shè)定模 塊中,如果需要更詳細的用戶分級權(quán)限分配,單獨設(shè)置一權(quán)限控制表,專門用 于用戶的權(quán)限角色管理。上述分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于,所述資源分級訪問控 制模塊中包括一個基于SAX的解析器,用于對用戶分級設(shè)定模塊返回給應(yīng)用 系統(tǒng)的包含用戶分級信息分級XML文件進行解析,獲取其中的用戶名和用戶 級別信息。與現(xiàn)有技術(shù)相比,本發(fā)明提供的分布式分級分組雙重授權(quán)及訪問控制方法 和系統(tǒng)中,認證授權(quán)服務(wù)器獨立于各個應(yīng)用系統(tǒng),這也就意味著各個應(yīng)用系統(tǒng) 不能直接讀取用戶數(shù)據(jù)庫,數(shù)據(jù)的訪問控制邏輯卻必須部署在各個應(yīng)用系統(tǒng) 中,采用一種分離的設(shè)計。通過分布式的用戶授權(quán)和訪問控制,提高了授權(quán)系 統(tǒng)和訪問控制系統(tǒng)的靈活性,降低了各個應(yīng)用系統(tǒng)之間的耦合度,相互之間的 依賴性小,提高了用戶授權(quán)的效率和資源的安全。本發(fā)明通過雙重用戶授權(quán)和訪問控制,分別對粗粒度和細粒度的資源或服 務(wù)進行權(quán)限控制。粗粒度可以對應(yīng)于一些全局的應(yīng)用,而分組的方法不僅可以 將資源的控制粒度擴展到任意粒度的資源,而且將用戶信息通過Web服務(wù)在 應(yīng)用域內(nèi)提供,將分組控制邏輯放到具體的數(shù)據(jù)存放地,有利于平臺的靈活組 合和自治,符合軟件復用的思想,有利于系統(tǒng)的擴展。
圖1為本發(fā)明分布式雙重授權(quán)及訪問控制方法的流程圖;圖2為本發(fā)明方法中用戶與資源的分組管理設(shè)置界面示意圖;圖3為本發(fā)明方法中數(shù)據(jù)保護期設(shè)置界面示意圖;圖4為本發(fā)明分布式雙重授權(quán)及訪問控制系統(tǒng)示意框圖。
具體實施方式
下面結(jié)合附圖和具體實施例,對本發(fā)明的技術(shù)方案作進一步描述,但本發(fā) 明不局限于下面的實施例。本發(fā)明提供的分布式雙重授權(quán)及訪問控制方法,應(yīng)用于包括一個通用認證 授權(quán)服務(wù)器和多個不同類型應(yīng)用系統(tǒng)的控制系統(tǒng),主要的思想在于雙重授權(quán) 方案分別對粗粒度和細粒度的資源或服務(wù)進行權(quán)限控制,通過對用戶進行分 級,將粗粒度資源根據(jù)與對應(yīng)用戶分級的約定實現(xiàn)權(quán)限控制;粗粒度的資源或 服務(wù)可以對應(yīng)于一些全局的應(yīng)用,對于細粒度的資源或服務(wù),進一步通過應(yīng)用 系統(tǒng)本地授權(quán)和驗證的方法,完成分布式分組授權(quán)功能,細粒度資源或服務(wù)對 應(yīng)于系統(tǒng)中的一些特殊操作等,在這種雙重權(quán)限控制方法中,用戶可以根據(jù)相 應(yīng)的級別來確定是否有粗粒度資源或服務(wù)訪問或其它的操作權(quán)限,從而確定是 否有某類應(yīng)用的權(quán)限,而當?shù)搅烁蛹毣募毼⒉僮鲿r,如對其一操作方法的 訪問時,可以通過査看分組映射來確定是否具有更進一步的訪問權(quán)限。本發(fā)明 的分組的方法不僅可以將資源或服務(wù)的控制粒度擴展到任意粒度,而需要將用 戶信息通過Web服務(wù)在應(yīng)用域內(nèi)提供,將分組控制邏輯放到本地應(yīng)用系統(tǒng), 有利于平臺的靈活組合和自治。圖1示出了本發(fā)明分布式雙重授權(quán)及訪問控制方法的實施流程,參考圖1,本發(fā)明提供的分布式雙重授權(quán)及訪問控制方法包括分級權(quán)限控制步驟,用于通過通用認證授權(quán)服務(wù)器(Certificate &Authorization Server,簡稱CA)設(shè)定用戶級別,并由CA傳遞用戶分級信息給所述應(yīng)用系統(tǒng),通過驗證用戶級別與應(yīng)用系統(tǒng)的資源或服務(wù)級別的匹配關(guān)系 決定用戶對粗粒度資源或服務(wù)的訪問權(quán)限;分組權(quán)限控制步驟,用于通過所述應(yīng)用系統(tǒng)對用戶和資源/服務(wù)分別進行 分組設(shè)定,通過驗證用戶分組與資源或服務(wù)分組之間相交關(guān)系決定用戶對細粒 度資源或服務(wù)的訪問權(quán)限。上述分級權(quán)限控制步驟進一步包括步驟S101,通過CA設(shè)定用戶級別,并在用戶完成統(tǒng)一登錄認證后,傳遞用戶分級信息給應(yīng)用系統(tǒng)。
用戶訪問分布式的應(yīng)用系統(tǒng)中的相應(yīng)資源或服務(wù)時,要進行全局登錄認證,之后讀取該用戶級別信息,并將其返回給應(yīng)用系統(tǒng)。為保持系統(tǒng)的跨平臺性,用戶的級別信息與用戶名信息一起通過XML文檔封裝后來進行傳遞。在利用Java平臺的具體實施中,在用戶認證的Servlet中將用戶名和級別信息寫在一個結(jié)構(gòu)化的XML文檔中,直接傳給客戶端。其中,Servlet是用Java編寫的服務(wù)器端程序,它與協(xié)議和平臺無關(guān)。Servlet運行于支持Java的服務(wù)器中,可以動態(tài)地擴展服務(wù)器的能力,并采用請求一響應(yīng)模式提供Web服務(wù)。
以下代碼片段展示了認證授權(quán)服務(wù)器在用戶登錄成功后輸出用戶名及級別信息的代碼,通過XML文檔返回給客戶應(yīng)用,XML文檔的方式增強平臺可擴展性和靈活性,其中"user"是用戶名變量,"level"為用戶的級別變
protected void validationSuccess(PrintWriter out, ServiceTicket st) {String —user=st.getUsername();try{
—level=String.va/weCy(UserLvlMan.getUserLevel(_user));}catch(Exception e){e.printStackTrace();
out.println("<sso:serviceResponse xmlns:sso=*http:〃www.geodata.cn/sso'>");
out.println(" <sso:authenticationSuccess>',);
out,println(" <sso:user>"十一user + "</sso:user〉");
out.println(" <sso:level>"+」evel+,,</sso:level>");
out,println(" </ sso: authenticationSuccess>,,);
out.println("</sso:serviceResponse>");}
步驟S102,應(yīng)用系統(tǒng)得到的XML文檔,獲取用戶名和用戶級別信息。上述步驟S101返回給應(yīng)用系統(tǒng)一個XML文檔,此XML文檔的格式如下面的代碼片段所示。其中包含實際的登錄用戶名以及用戶的級別信息,部署在應(yīng)用系統(tǒng)中的分級訪問控制模塊具有解析此XML文檔的功能,它以攔截器的形式工作,在Java環(huán)境中,可使用應(yīng)用服務(wù)器中的過濾器機制實現(xiàn),通過一個基于SAX的解析器對這個返回的XML文檔進行解析,獲取其中的用戶名
10和用戶的級別信息。其中,SAX是指用于XML的簡單API (Simple API forXML, SAX) , SAX是一個用于處理XML事件驅(qū)動的"推"模型,它是一個得到了廣泛認可的API。在本例中,所獲取用戶名為"lrd",其級別為"2"。
〈sso:serviceResponse xmlns:sso=,http:〃www.geodata.cn/sso,〉<sso:authenticationSuccess><sso:user>lrd</sso:user〉<sso:level>"2"</sso:level></sso: authenticationSuccess〉</sso:serviceResponse>
步驟S103,應(yīng)用系統(tǒng)獲取了用戶級別以后,用戶對受限資源或服務(wù)進行訪問的時候,本地應(yīng)用系統(tǒng)根據(jù)預(yù)先約定的資源或服務(wù)的級別與該用戶的級別比對,決定用戶是否可以訪問;當用戶級別高于或等于資源或服務(wù)的級別時,能訪問;否則拒絕訪問并發(fā)出相關(guān)的提示信息。
對于加入此授權(quán)和訪問控制體系的各個應(yīng)用系統(tǒng),訪問控制邏輯在獲取用戶的級別信息后可以利用Session對象來提高訪問效率。將用戶名和用戶級別等標識信息存入Session對象中,這樣當用戶訪問下一個資源或服務(wù)的時候,就不需要因開啟新的級別獲取進程而去訪問CA,提高系統(tǒng)的響應(yīng)。其中Session對象是應(yīng)用服務(wù)器實現(xiàn)的,用于記錄使用者私有的數(shù)據(jù)變量,以作為用戶再次對服務(wù)器提出要求時做確認,存在Session對象中的變量在用戶的一次會話結(jié)束前將不會消失,根據(jù)實現(xiàn)方式的不同,Session中的變量可以通過多種方式存儲。
上述過程中CA中實現(xiàn)認證與授權(quán)的模塊可以與用戶管理等相關(guān)模塊放到一起部署運行,也可以作為獨立的系統(tǒng)運行。分布式分級授權(quán)及訪問控制的對象是比較粗粒度的資源或服務(wù),也就是說對于某一類或?qū)儆谀骋粋€域的資源或服務(wù)是適用的,如對具體的應(yīng)用模塊或某一類信息條目,權(quán)限控制可以用分級的方式進行,對于更細化的資源權(quán)限控制,如對某條目下的具體不同的數(shù)據(jù)資源的訪問,則屬于需要進一步授權(quán)的內(nèi)容,在這種情況下,分級權(quán)限控制的步驟或者是其授權(quán)和訪問權(quán)限驗證的第一步,可在分級的基礎(chǔ)上再借助于分組的授權(quán)和訪問控制實現(xiàn)其要求。下面進一步描述分組權(quán)限控制步驟的實施流程。上述分組權(quán)限控制步驟進一步包括
步驟S201,預(yù)先在本地應(yīng)用系統(tǒng)對用戶和資源/服務(wù)分別進行分組設(shè)定。
一方面,應(yīng)用系統(tǒng)根據(jù)分組設(shè)定的需要將從部署在通用認證授權(quán)服務(wù)器的
用戶信息發(fā)布Web服務(wù)獲取的用戶信息入庫并實現(xiàn)多元分組設(shè)定,另一方面,將應(yīng)用系統(tǒng)中細粒度的資源或服務(wù)進行多元分組。組名可以從各應(yīng)用系統(tǒng)管理界面自由設(shè)定和添加,組與其分配條目(包括用戶和資源/服務(wù))是多對多的關(guān)系, 一個用戶可以屬于多個組, 一條資源可以屬于多個組, 一個組中可能有多個用戶或資源/服務(wù)。具有相交分組的用戶和資源/服務(wù)具有訪問與被訪問的權(quán)限。
步驟S202,當用戶通過分級訪問控制的驗證,并訪問細粒度資源或服務(wù)時,通過部署在應(yīng)用系統(tǒng)的分組訪問控制邏輯檢測用戶分組與細粒度資源或服務(wù)分組的匹配關(guān)系決定用戶的訪問權(quán)限,匹配則能訪問,否則拒絕訪問并發(fā)出相關(guān)的提示信息。
用戶訪問分布式系統(tǒng)中需要訪問控制的細粒度的資源或服務(wù),部署在應(yīng)用系統(tǒng)的分組訪問控制邏輯運作,它檢測用戶是否和資源或服務(wù)是否具有相交分組來判斷是否可以訪問資源或服務(wù),相當于為資源或服務(wù)加了一把鎖。
圖2是后臺資源/服務(wù)和用戶的分組管理界面示意圖,分別表示一個用戶所具有的分組和一個資源/服務(wù)所具有的分組,由于他們沒有相重疊的分組,所以上述的用戶無法訪問編號為"100101-0-361"這一資源/服務(wù)。為了簡化實施,如果某一資源或服務(wù)沒有分配組的時候,該資源或服務(wù)是開放的,可以被任何用戶訪問。
除了權(quán)限設(shè)定,本方案可以允許多種擴展,如可在分級和分組兩個層面增加訪問保護期功能,通過增加保護期管理界面來實現(xiàn)設(shè)定,各自的訪問控制邏輯只需增加適當?shù)尿炞C條件。如圖3所示,圖3示出了一種數(shù)據(jù)保護期管理界面示意, 一類或某一資源或服務(wù)如果由于某種原因當前不允許被訪問使用的話,可以在后臺設(shè)置中對其添加一個解除保護的時間點,沒有到達解除保護時間點的資源或服務(wù)則稱為在保護期以內(nèi),這樣當用戶訪問的時候,訪問控制模塊會自動檢測數(shù)據(jù)是否已經(jīng)過保護期,并滿足訪問條件,如果當前時間還在保護期以內(nèi),則提示用戶該條資源或服務(wù)不能被訪問。
本發(fā)明的方法,對用戶和資源/服務(wù)的授權(quán)在本地應(yīng)用系統(tǒng),訪問控制邏輯也位于各個分布式應(yīng)用系統(tǒng)中。實現(xiàn)了資源或服務(wù)可拓的管理模式,為了能
將各個不同的應(yīng)用系統(tǒng)中的資源或服務(wù)的權(quán)限分組統(tǒng)一管理,在CA部署一個用戶信息發(fā)布Web服務(wù),它的目的是讓其它應(yīng)用系統(tǒng)查詢并獲取所需要設(shè)定的用戶簡單信息。當應(yīng)用系統(tǒng)需要對某一用戶進行權(quán)限分組時,通過調(diào)用認證授權(quán)服務(wù)器的用戶信息發(fā)布Web服務(wù)來獲取,然后將需要賦予用戶分組的用戶駐留本地數(shù)據(jù)庫中,由于只有登錄的用戶,也就是有效的用戶最終可能使用應(yīng)用系統(tǒng)的用戶分組訪問控制,所以,應(yīng)用系統(tǒng)通過這個Web服務(wù)得到的用戶不會受到CA上用戶刪除或變更的影響,而應(yīng)用系統(tǒng)通過Web服務(wù)獲取需要的用戶信息。
進一步的,本發(fā)明還提供了一種實現(xiàn)上述方法的系統(tǒng),圖4示出了本發(fā)明系統(tǒng)模型示意框圖,參考圖4,該系統(tǒng)包括一個通用認證授權(quán)服務(wù)器10和多個不同類型應(yīng)用系統(tǒng)20,其中,通用認證授權(quán)服務(wù)器用于提供用戶的統(tǒng)一登錄認證功能、用戶分級設(shè)定功能及存儲用戶信息的數(shù)據(jù)庫,并利用Web服務(wù)實現(xiàn)用戶信息的發(fā)布功能。在用戶完成統(tǒng)一登錄認證后,CA傳遞用戶分級信息給應(yīng)用系統(tǒng),而分組設(shè)置模塊對用戶和資源/服務(wù)分別進行分組設(shè)定。應(yīng)用系統(tǒng)上部署的訪問控制邏輯通過驗證用戶級別與應(yīng)用系統(tǒng)的資源或服務(wù)的級別的匹配關(guān)系,決定用戶對粗粒度資源或服務(wù)的訪問權(quán)限,驗證用戶分組與數(shù)據(jù)服務(wù)分組之間的相交關(guān)系決定用戶對細粒度資源或服務(wù)的訪問權(quán)限。
上述通用認證授權(quán)服務(wù)器10進一步包括了用戶分級設(shè)定模塊101,用戶信息發(fā)布模塊102;各個應(yīng)用系統(tǒng)包括了資源分級訪問控制模塊201,用戶分組設(shè)定模塊202,資源分組設(shè)定模塊203和資源分組訪問控制模塊204。
為實現(xiàn)資源或服務(wù)可拓的管理模式,本發(fā)明要求對用戶和資源/服務(wù)的分組授權(quán)在分布式應(yīng)用系統(tǒng)中,權(quán)限驗證邏輯也在分布式應(yīng)用系統(tǒng)中。為了能將各個不同的應(yīng)用系統(tǒng)中的資源或服務(wù)的權(quán)限分組統(tǒng)一管理,在認證授權(quán)服務(wù)器部署了一個用戶信息發(fā)布Web服務(wù),它的目的是讓其它應(yīng)用系統(tǒng)查詢并獲取所需要的簡單的用戶信息。當應(yīng)用系統(tǒng)需要對某一用戶進行權(quán)限分組時,就可以通過調(diào)用認證授權(quán)服務(wù)器的這個Web服務(wù)來獲取,然后將需要賦予用戶分組的用戶駐留本地數(shù)據(jù)庫中,由于只有登錄的用戶,也就是有效的用戶最終可能使用應(yīng)用系統(tǒng)的用戶分組訪問控制,所以,應(yīng)用系統(tǒng)通過Web服務(wù)獲取用戶不會受到用戶刪除或變更的影響,而應(yīng)用系統(tǒng)也只通過Web服務(wù)獲取所需的用戶信息。下面對本發(fā)明授權(quán)和訪問控制的核心功能模塊進行詳細說明
用戶級別設(shè)定模塊101:具有對用戶分級等相關(guān)信息的設(shè)定功能,用戶的分級成為用戶信息的一個屬性,它能在用戶完成統(tǒng)一登錄認證以后,通過約定
格式文件返回給應(yīng)用系統(tǒng);如可以是通過XML文件封裝后返回給應(yīng)用系統(tǒng)。CA具有存儲用戶信息的數(shù)據(jù)庫表,實現(xiàn)用戶進行級別設(shè)定,可以在用戶信息數(shù)據(jù)庫表中增加字段USER—LEVEL用于標識用戶的級別,這個字段類型為數(shù)字型。在用戶級別復雜的情況下,也可以單獨設(shè)立權(quán)限控制表(Access ControlList, ACL)等,專門用于用戶的權(quán)限角色管理,用戶的級別可以在后臺管理界面中提供設(shè)置入口,由系統(tǒng)管理員通過管理界面對注冊用戶進行級別設(shè)定。用戶信息發(fā)布模塊102:它主要是用戶信息發(fā)布Web服務(wù),以便于分布式應(yīng)用系統(tǒng)對用戶信息進行査詢和下載??梢酝ㄟ^管理界面決定將哪些用戶對外提供,以及對外提供信息的詳細程度。用戶的分組設(shè)定在具體的應(yīng)用系統(tǒng)中部署,這樣有利于各個應(yīng)用系統(tǒng)權(quán)限的自制。認證授權(quán)服務(wù)器發(fā)布的可用于訪問用戶信息的Web服務(wù)為ListUserSVR,其相關(guān)的操作(方法)有g(shù)etSimpleUserlnfoList:用于獲取用戶信息類的列表,getCount:用于獲取一次搜索得到的用戶的條目,getTotal:用于獲取本次返回的用戶的索引。在此Web服務(wù)的設(shè)計當中,構(gòu)建一個簡單的描述用戶類型的類SimpleUserlnfo,其中存儲的信息包含用戶ID,用戶的真實姓名,電子郵件地址以及用戶單位。部署在應(yīng)用系統(tǒng)中的用戶分組設(shè)定模塊操作的時候能訪問該服務(wù),通過搜索得到的一系列用戶的信息,用一個定長類數(shù)組來對所有返回的SimpleUserlnfo類進行封閉(通過方法getSimpleUserlnfoList實現(xiàn)),同時帶上相關(guān)的索引信息,如一次査詢共有多少符合條件的用戶(通過方法getCount實現(xiàn)),本次返回了多少個用戶(通過方法getTotal實現(xiàn)),getCount和getTotal的返回值實現(xiàn)對用戶搜索和分頁顯示。然后根據(jù)設(shè)定的需要將用戶的信息入本地庫并實現(xiàn)分組設(shè)定。用戶信息發(fā)布Web服務(wù)中應(yīng)啟用一定的安全機制才能防止用戶信息被第三方竊取,通常可采用口令驗證和XML加密的方法。另一個層面,在認證授權(quán)服務(wù)器增加對用戶信息開放的管理控制功能,可以設(shè)定對一些用戶不被訪問和分組,還可以針對一些用戶對外開放,但是不提供詳細信息。而其它用戶則可以被搜索出更詳細的信息并被使用。這涉及到對SimpleUserlnfo類的擴展和對ListUserSVR的加強。資源分級訪問控制模塊201:具有對用戶級別設(shè)定模塊101返回應(yīng)用系統(tǒng)
包含用戶分級格式文件解析的能力,如具有對XML文件進行解析的能力,以 從中解析出用戶名信息和用戶的級別信息,并根據(jù)約定對粗粒度、某一類的資 源或某一域內(nèi)的資源或服務(wù)根據(jù)用戶的級別提供訪問控制。
用戶分組設(shè)定模塊202:它提供管理界面,可以通過訪問用戶信息發(fā)布模 塊102的用戶信息發(fā)布Web服務(wù)獲取用戶信息入庫,通過本地管理界面提供 針對具體用戶的系統(tǒng)中的資源或服務(wù)的多元分組授權(quán)功能。
資源分組設(shè)定模塊203:提供本地管理界面對應(yīng)用系統(tǒng)中的資源或服務(wù)進 行的分組授權(quán)。該資源分組設(shè)定模塊203可將應(yīng)用系統(tǒng)中細粒度的資源或服務(wù) 進行多元分組。組與其分配條目是多對多的關(guān)系, 一條資源或服務(wù)可以屬于多 個組, 一個組中可能有多個資源或服務(wù)。
資源分組訪問控制模塊204:對用戶的訪問,分組訪問控制邏輯動態(tài)檢測 本地所設(shè)定的用戶和資源/服務(wù)的分組,根據(jù)用戶與資源的分組的對應(yīng)關(guān)系實 現(xiàn)訪問控制功能。
控制邏輯部署在應(yīng)用系統(tǒng)中,對用戶的訪問,它檢測用戶是否和資源或服 務(wù)所處的分組交集來進行訪問控制。
本發(fā)明所進行的分布式授權(quán)和訪問控制是在統(tǒng)一認證的基礎(chǔ)上進行的,在 統(tǒng)一認證完成以后,可以根據(jù)資源或服務(wù)的權(quán)限需要來選擇一個層次的授權(quán)或 兩個層次的授權(quán),分級授權(quán)層次對較粗粒度的資源展開的,用戶的分級是按照 一定的標準對注冊用戶進行劃分,而應(yīng)用系統(tǒng)中的資源服務(wù)根據(jù)約定對應(yīng)于不 同的用戶予以不同的訪問權(quán)限,高級別的用戶具有較高的權(quán)限,從而實現(xiàn)對信 息系統(tǒng)中資源的授權(quán)。采用本發(fā)明的方法及系統(tǒng),訪問CA,獲取用戶的級別 信息,應(yīng)用系統(tǒng)中的分級訪問控制模塊根據(jù)約定來判斷用戶是否具有粗粒度資 源或服務(wù)的訪問權(quán)限,如果有訪問權(quán)限,則可以訪問相應(yīng)的資源,否則如果需 要細粒度的權(quán)限控制,則應(yīng)用系統(tǒng)中的資源分組訪問控制模塊可以通過在應(yīng)用 系統(tǒng)中的用戶分組設(shè)定模塊和資源分組設(shè)定模塊所設(shè)置的結(jié)果來完成訪問控 制,授權(quán)和訪問控制過程簡單、靈活和安全。
本發(fā)明提供的分布式分級分組雙重授權(quán)及訪問控制方法和系統(tǒng)是一種輕 量級的解決方案,認證授權(quán)服務(wù)器可以作為一個獨立的網(wǎng)絡(luò)應(yīng)用,權(quán)限設(shè)置及 控制客戶端軟件可以部署在各個需要加入統(tǒng)一認證和權(quán)限控制的信息系統(tǒng)中,這種機制靈活、簡單,可實施性強;此外,可用多種網(wǎng)絡(luò)編程語言來編寫用于 實現(xiàn)本發(fā)明的操作的計算機代碼,不同部分的代碼可以作為獨立的模塊部署在 不同的應(yīng)用系統(tǒng)和認證授權(quán)服務(wù)器,并實現(xiàn)網(wǎng)絡(luò)環(huán)境下的交互,模塊化的設(shè)計 方案使應(yīng)用系統(tǒng)幾乎不涉及太多的交互代碼就能實現(xiàn)權(quán)限控制,簡化系統(tǒng)的設(shè) 計,降低了權(quán)限控制與業(yè)務(wù)應(yīng)用系統(tǒng)的邏輯的耦合度,有較強的易用性。
雖然本發(fā)明已以一較佳實施例揭露如上,然其并非用以限定本發(fā)明,在不 背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明做 出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán) 利要求的保護范圍。
權(quán)利要求
1、一種分布式雙重授權(quán)及訪問控制方法,應(yīng)用于包括一個通用認證授權(quán)服務(wù)器和多個不同類型應(yīng)用系統(tǒng)的控制系統(tǒng),其特征在于,包括分級權(quán)限控制步驟,用于通過所述通用認證授權(quán)服務(wù)器設(shè)定用戶級別,并傳遞用戶分級信息給所述應(yīng)用系統(tǒng),通過驗證用戶級別與應(yīng)用系統(tǒng)的資源或服務(wù)的級別匹配關(guān)系決定用戶對粗粒度資源或服務(wù)的訪問權(quán)限;分組權(quán)限控制步驟,用于通過所述應(yīng)用系統(tǒng)對用戶和資源/服務(wù)分別進行分組設(shè)定,通過驗證用戶分組與資源/服務(wù)分組之間的相交關(guān)系決定用戶對細粒度資源或服務(wù)的訪問權(quán)限。
2、 根據(jù)權(quán)利要求1所述的分布式雙重授權(quán)及訪問控制方法,其特征在于,所述分級訪問控制步驟進一步包括步驟S101,通過所述通用認證授權(quán)服務(wù)器設(shè)定用戶級別,并在用戶完成統(tǒng)一登錄認證后,傳遞用戶分級信息給應(yīng)用系統(tǒng);步驟S102,所述應(yīng)用系統(tǒng)解析該用戶分級信息,獲取用戶名和用戶級別"(曰息;步驟S103,用戶訪問受限資源,本地應(yīng)用系統(tǒng)根據(jù)預(yù)先約定的資源或服務(wù)的級別與該用戶的級別比對,決定用戶的訪問權(quán)限;當甩戶級別高于或等于數(shù)據(jù)資源的級別時,能訪問;否則拒絕訪問并發(fā)出相關(guān)的提示信息。
3、 根據(jù)權(quán)利要求1或2所述的分布式雙重授權(quán)及訪問控制方法,其特征在于,所述分組訪問控制步驟進一步包括步驟S201,預(yù)先在本地應(yīng)用系統(tǒng)對用戶和資源/服務(wù)分別進行分組設(shè)定;步驟S202,當用戶通過級別驗證,需要訪問受分組權(quán)限控制的細粒度資源時,部署在應(yīng)用系統(tǒng)的分組訪問控制邏輯檢測用戶分組與細粒度數(shù)據(jù)資源分組的關(guān)系決定用戶的訪問權(quán)限,如果有相交的分組則能訪問,否則拒絕訪問并發(fā)出相關(guān)的提示信息。
4、 根據(jù)權(quán)利要求2所述的分布式雙重授權(quán)及訪問控制方法,其特征在于,在所述步驟S101中,傳遞用戶分級信息時,用戶的級別信息與用戶名信息通過XML文檔進行傳遞,在所述步驟S102中,采用一個基于SAX的解析器對該XML文檔進行解析。
5、 一種分布式雙重授權(quán)及訪問控制系統(tǒng),包括一通用認證授權(quán)服務(wù)器及 多個不同類型應(yīng)用系統(tǒng),其特征在于,包括其中,所述通用認證授權(quán)服務(wù)器,用于提供用戶的統(tǒng)一登錄認證功能、用戶分級 設(shè)定功能及用戶信息的發(fā)布功能,在用戶完成統(tǒng)一登錄認證后,傳遞用戶分級 信息給應(yīng)用系統(tǒng);所述應(yīng)用系統(tǒng),用于部署分級和分組訪問控制邏輯,并通過驗證用戶級別 與應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)的級別的匹配關(guān)系決定用戶對粗粒度資源或服務(wù)的訪 問權(quán)限,驗證用戶分組與資源或服務(wù)分組之間相交關(guān)系決定用戶對細粒度資源 或服務(wù)的訪問權(quán)限。
6、 根據(jù)權(quán)利要求5所述的分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于, 所述通用認證授權(quán)服務(wù)器上進一步設(shè)置一用戶分級設(shè)定模塊,用于對用戶分級相關(guān)信息進行設(shè)定,并在用戶完成統(tǒng)一登錄認證后,將該用戶分級相關(guān)信息按設(shè)定格式文件返回給應(yīng)用系統(tǒng); 一用戶信息發(fā)布模塊,基于用戶庫中的信息提供用戶信息發(fā)布Web服務(wù)。
7、 根據(jù)權(quán)利要求5所述的分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于, 所述應(yīng)用系統(tǒng)中進一步設(shè)置-一資源分級訪問控制模塊,用于從所述格式文件中解析出用戶名信息和 用戶級別信息,并根據(jù)約定對相關(guān)資源或服務(wù)根據(jù)用戶的級別提供訪問控制;一用戶分組設(shè)定模塊,用于提供管理界面,為本地管理提供針對具體用 戶的分組設(shè)定功能;一資源分組設(shè)定模塊,用于提供本地管理對應(yīng)用系統(tǒng)中的資源或服務(wù)的 分組設(shè)定功能;—資源分組訪問控制模塊,用于針對用戶的訪問,動態(tài)檢測本地所設(shè)定 的用戶和資源/服務(wù)的分組,根據(jù)該用戶與資源的分組的關(guān)系實現(xiàn)訪問控制功 能。
8、 根據(jù)權(quán)利要求6所述的分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于, 所述用戶分級設(shè)定模塊中的用戶信息數(shù)據(jù)庫表中增加控制用戶級別的 USER_LEVEL字段用于標識用戶的級別。
9、 根據(jù)權(quán)利要求6所述的分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于,所述用戶分級設(shè)定模塊中,如果需要更詳細的用戶分級權(quán)限分配,單獨設(shè)置一 權(quán)限控制表,專門用于用戶的權(quán)限角色管理。
10、根據(jù)權(quán)利要求7所述的分布式雙重授權(quán)及訪問控制系統(tǒng),其特征在于, 所述資源分級訪問控制模塊中包括一個基于SAX的解析器,用于對用戶分級 設(shè)定模塊返回給應(yīng)用系統(tǒng)的包含用戶分級信息分級XML文件進行解析,獲取 其中的用戶名和用戶級別信息。
全文摘要
本發(fā)明公開了一種分布式雙重授權(quán)及訪問控制方法及系統(tǒng),該方法應(yīng)用于包括一個通用認證授權(quán)服務(wù)器和多個不同類型應(yīng)用系統(tǒng)的控制系統(tǒng),該方法包括分級權(quán)限控制步驟,用于通過所述通用認證授權(quán)服務(wù)器設(shè)定用戶級別,并傳遞用戶分級信息給所述應(yīng)用系統(tǒng),通過驗證用戶級別與應(yīng)用系統(tǒng)的粗粒度資源或服務(wù)的級別的匹配關(guān)系決定用戶對此資源或服務(wù)的訪問權(quán)限;分組權(quán)限控制步驟,用于通過所述應(yīng)用系統(tǒng)對用戶和資源/服務(wù)分別進行分組設(shè)定,通過驗證用戶分組與數(shù)據(jù)服務(wù)分組之間相交關(guān)系決定用戶對細粒度資源或服務(wù)的訪問權(quán)限。
文檔編號H04L29/06GK101631116SQ20091009083
公開日2010年1月20日 申請日期2009年8月10日 優(yōu)先權(quán)日2009年8月10日
發(fā)明者劉潤達, 佳 杜, 諸云強 申請人:中國科學院地理科學與資源研究所