專利名稱:基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及認(rèn)證與授權(quán)方法及系統(tǒng),特別是基于角色的訪問控制和基于Web相結(jié)合的遠(yuǎn)程認(rèn)證與授權(quán)方法及系統(tǒng)。
背景技術(shù):
為了保證信息安全,目前已有身份認(rèn)證技術(shù),訪問控制技術(shù),信息加密技術(shù)和數(shù)字簽名技術(shù)等。身份認(rèn)證技術(shù)已經(jīng)出現(xiàn)了很多種,有基于口令(即用戶名和密碼)的認(rèn)證、X. 509證書、智能卡、全球唯一標(biāo)識(shí)碼等認(rèn)證技術(shù)。訪問控制是通過某種途徑顯式的準(zhǔn)許或限制訪問權(quán)力以及范圍的一種方法。訪問控制通過控制用戶訪問的范圍、功能、模塊等,使系統(tǒng)提供的服務(wù)不被非法使用。訪問控制主要包括自主訪問控制、強(qiáng)制訪問控制和基于角色的訪問控制等三種策略。其中基于角色的訪問控制(基于角色的訪問控制(RBAC)是實(shí)施面向企業(yè)安全策略的一種有效的訪問控制方式。其基本思想是,對(duì)系統(tǒng)操作的各種權(quán)限不是直接授予具體的用戶,而是在用戶集合與權(quán)限集合之間建立一個(gè)角色集合。每一種角色對(duì)應(yīng)一組相應(yīng)的權(quán)限。一旦用戶被分配了適當(dāng)?shù)慕巧螅撚脩艟蛽碛写私巧乃胁僮鳈?quán)限。這樣做的好處是,不必再每次創(chuàng)建用戶時(shí)都進(jìn)行分配權(quán)限的操作,只要分配用戶相應(yīng)的角色即可,而且角色的權(quán)限變更比用戶的權(quán)限變更要少得多,這樣將簡(jiǎn)化用戶的權(quán)限管理,減少系統(tǒng)的開銷。)是近年來興起的新型訪問控制技術(shù),由美國(guó)國(guó)家標(biāo)準(zhǔn)化和技術(shù)委員會(huì)等提出來的。自主訪問控制的靈活性高但是安全性低;強(qiáng)制訪問控制安全性高但是限制太強(qiáng);基于角色的訪問控制兩者兼具,不僅易于管理而且降低了復(fù)雜性、成本和發(fā)生錯(cuò)誤的概率,因而近年來得到了極大的發(fā)展。信息加密技術(shù)近年來出現(xiàn)了對(duì)稱加密技術(shù),不對(duì)稱加密技術(shù),會(huì)話密鑰加密,是目前加密文件的常用方法。認(rèn)證是保證系統(tǒng)安全的重要一部分,不僅保證本軟件的安全,還需要保證操作系統(tǒng)本身的安全。盡管以上提到的現(xiàn)有的這些技術(shù)和方法一定程度上能夠滿足用戶對(duì)認(rèn)證的需求,但是仍然存在以下問題
1)目前現(xiàn)有的全球唯一標(biāo)識(shí)碼認(rèn)證技術(shù),都是在本機(jī)采集特征碼,還沒有基于ffeb的特征碼提取技術(shù),無法滿足用戶遠(yuǎn)程提取特征碼的需求。2)目前現(xiàn)有的認(rèn)證技術(shù)中,很少有Web認(rèn)證、全球唯一標(biāo)識(shí)碼認(rèn)證技術(shù)與基于角色的訪問控制相結(jié)合的認(rèn)證系統(tǒng)。這樣的話,如果僅使用當(dāng)前的Web認(rèn)證系統(tǒng)進(jìn)行認(rèn)證,一旦Web認(rèn)證系統(tǒng)失去作用,用戶將無法訪問服務(wù)器的資源。3)目前還沒有針對(duì)資源做動(dòng)態(tài)多級(jí)認(rèn)證的技術(shù),無法滿足用戶對(duì)多級(jí)動(dòng)態(tài)認(rèn)證技術(shù)的需求。
發(fā)明內(nèi)容
鑒于現(xiàn)有認(rèn)證方法中的上述不足之處。本發(fā)明提供安全有效的、基于角色的動(dòng)態(tài)Web認(rèn)證與授權(quán)方法,結(jié)合全球唯一標(biāo)識(shí)碼,以及系統(tǒng)本身的PAM認(rèn)證相結(jié)合的混合認(rèn)證方式,以期解決現(xiàn)有技術(shù)中的上述不足,提高Web認(rèn)證的靈活性和安全性。本發(fā)明的一目的是提供基于角色的Web動(dòng)態(tài)認(rèn)證與授權(quán)的技術(shù)和全球唯一標(biāo)識(shí)碼認(rèn)證技術(shù)、系統(tǒng)PAM認(rèn)證混合的認(rèn)證技術(shù)。即使在Web認(rèn)證失去作用時(shí),還可以由服務(wù)器提供PAM認(rèn)證來訪問較低級(jí)別的資源,克服了一旦Web認(rèn)證系統(tǒng)失去作用,用戶將無法訪問服務(wù)器的資源的缺陷。但此時(shí)由于服務(wù)器不能夠提供高一級(jí)的認(rèn)證,用戶不能訪問敏感資源。本發(fā)明實(shí)現(xiàn)這樣一個(gè)混合認(rèn)證與授權(quán)系統(tǒng)的總體構(gòu)思是,對(duì)資源進(jìn)行敏感程度等級(jí)劃分,同時(shí)對(duì)角色的定義進(jìn)行處理,并且也需要對(duì)Web認(rèn)證系統(tǒng)進(jìn)行是否能夠提供服務(wù)進(jìn)行判斷,如果不能提供服務(wù),則直接進(jìn)行系統(tǒng)已有的PAM認(rèn)證。這樣設(shè)計(jì),相對(duì)于傳統(tǒng)的基于角色的認(rèn)證與授權(quán),增加了對(duì)角色進(jìn)行定義的邏輯復(fù)雜度。本發(fā)明另一目的在于,提供一種多級(jí)認(rèn)證的結(jié)構(gòu),將系統(tǒng)的資源進(jìn)行分級(jí),一般資源通過口令(即用戶名和密碼)認(rèn)證,等級(jí)高的資源訪問,需要進(jìn)一步動(dòng)態(tài)的提供高級(jí)的認(rèn)證技術(shù),如全球唯一識(shí)別碼認(rèn)證(如生物特征碼或者硬件唯一特征碼認(rèn)證)。而且,該認(rèn)證的技術(shù)和等級(jí)可以根據(jù)角色動(dòng)態(tài)的調(diào)整。具體來說,當(dāng)用戶訪問某些功能時(shí),根據(jù)這個(gè)功能的敏感程度進(jìn)行分級(jí)。當(dāng)敏感度比較低的時(shí)候,只需要認(rèn)證口令(即用戶名和密碼)即可。根據(jù)敏感度的深入,需要提供全球唯一標(biāo)識(shí)碼(如生物特征碼或者硬件唯一特征碼)。本發(fā)明又一目的在于本發(fā)明提供基于Web的全球唯一識(shí)別碼的提取技術(shù),滿足用戶遠(yuǎn)程提取特征碼的需求。該部分功能包括響應(yīng)服務(wù)器需要提供進(jìn)一步驗(yàn)證的請(qǐng)求;在瀏覽器中對(duì)全球唯一識(shí)別碼特征碼的提??;通過瀏覽器對(duì)提取到的特征碼進(jìn)行加密;將加密的數(shù)據(jù)通過POST方式發(fā)送給服務(wù)器;得到服務(wù)器的認(rèn)證結(jié)果;根據(jù)得到的結(jié)果,是否允許用戶下一步操作。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法,當(dāng)用戶請(qǐng)求訪問系統(tǒng)級(jí)別低的資源時(shí),使用口令認(rèn)證;而用戶請(qǐng)求訪問系統(tǒng)級(jí)別高的資源時(shí),使用全球唯一識(shí)別碼認(rèn)證。其中
該全球唯一標(biāo)識(shí)碼的采集是在Web瀏覽器端實(shí)現(xiàn)的。該全球唯一標(biāo)識(shí)碼的采集在火狐瀏覽器中是通過加載插件的方式來實(shí)現(xiàn)的;而在 IE瀏覽器中是通過加載ActiveX控件的方式來實(shí)現(xiàn)的。瀏覽器端采集到用戶信息后,對(duì)該信息進(jìn)行加密,并以POST方式將加密后的用戶信息傳遞到服務(wù)器端。服務(wù)器端接收到用戶信息后,采用基于角色的訪問控制方式對(duì)用戶進(jìn)行認(rèn)證授權(quán)。該方法包括步驟
1)首先,用戶提交訪問系統(tǒng)資源的請(qǐng)求,由一路由器接收用戶請(qǐng)求,并判斷用戶是否已經(jīng)認(rèn)證過;如果用戶已經(jīng)認(rèn)證過,即用戶已經(jīng)提交了正確的認(rèn)證信息,如口令等,則路由器直接將用戶請(qǐng)求發(fā)送到授權(quán)機(jī)上,授權(quán)機(jī)返回給用戶訪問資源的接口,即主界面,用戶就可以通過該主界面直接訪問系統(tǒng)資源了;
2)如果用戶沒有經(jīng)過認(rèn)證,路由器接著判斷認(rèn)證機(jī)是否能夠提供服務(wù);(1)如果認(rèn)知機(jī)不能提供認(rèn)證服務(wù),則路由器直接將用戶信息提交給授權(quán)機(jī)進(jìn)行PAM 認(rèn)證;
如果用戶通過PAM認(rèn)證,即可訪問非敏感資源;如果用戶沒有通過PAM認(rèn)證,則返回提示用戶重新提交認(rèn)證口令。(2)如果認(rèn)證機(jī)能夠提供認(rèn)證服務(wù),則路由器將用戶信息提交給認(rèn)證機(jī)進(jìn)行認(rèn)證;
在認(rèn)證過程中,認(rèn)證機(jī)根據(jù)接收到的用戶信息對(duì)用戶分配權(quán)限等級(jí);如果用戶提交的信息為口令,則權(quán)限等級(jí)為初級(jí);如果用戶提交的信息還進(jìn)一步包括全球唯一認(rèn)證標(biāo)識(shí)碼, 則權(quán)限等級(jí)為高級(jí)。然后,認(rèn)證機(jī)讀取用戶信息數(shù)據(jù)庫,通過查詢用戶信息數(shù)據(jù)庫中的用戶信息表得到該用戶的密碼,和用戶提交的密碼做比對(duì);如果查詢得到的密碼和用戶提交的密碼一致, 則認(rèn)證機(jī)查詢用戶信息數(shù)據(jù)庫中的用戶角色集合表,得到該用戶的角色I(xiàn)D。最后,認(rèn)證機(jī)通過服務(wù)程序?qū)⒃撚脩舻慕巧獻(xiàn)D和權(quán)限等級(jí)發(fā)送至授權(quán)機(jī)。其還可包括步驟
3)授權(quán)機(jī)得到用戶的角色I(xiàn)D之后,讀取授權(quán)信息數(shù)據(jù)庫,通過查詢授權(quán)信息數(shù)據(jù)庫中的功能角色集合表,得到該用戶的功能ID ;再根據(jù)該功能ID查詢授權(quán)信息數(shù)據(jù)庫中的功能信息表,得到該用戶可訪問資源的功能信息,包括功能名稱、功能等級(jí)和功能鏈接;
接著,授權(quán)機(jī)根據(jù)得到的功能信息產(chǎn)生主界面返回給用戶;用戶在通過該主界面訪問資源時(shí),授權(quán)機(jī)會(huì)進(jìn)一步判斷該資源的功能等級(jí)和用戶的權(quán)限等級(jí)是否一致,如果兩者一致,則用戶可以直接訪問該資源;否則,如果權(quán)限等級(jí)小于功能等級(jí),則授權(quán)機(jī)會(huì)要求用戶再提交全球唯一標(biāo)識(shí)碼才能訪問該資源。本發(fā)明還提供了一種應(yīng)用于以上方法的基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)系統(tǒng),其包括路由器,負(fù)責(zé)對(duì)用戶的請(qǐng)求進(jìn)行處理;認(rèn)證機(jī),負(fù)責(zé)根據(jù)用戶提交的信息對(duì)用戶進(jìn)行認(rèn)證;授權(quán)機(jī),負(fù)責(zé)根據(jù)用戶認(rèn)證信息對(duì)用戶可訪問的資源進(jìn)行授權(quán)。其中,所述路由器、認(rèn)證機(jī)和授權(quán)機(jī)建立在一臺(tái)服務(wù)器上或者分別建立在三臺(tái)不同的服務(wù)器上。相關(guān)技術(shù)術(shù)語的名詞解釋
PAM——(Pluggable Authentication Modules,插件式鑒別模塊)是一種認(rèn)證機(jī)制。 它通過提供一些動(dòng)態(tài)鏈接庫和一套統(tǒng)一的API,將系統(tǒng)提供的服務(wù)和該服務(wù)的認(rèn)證方式分開,使得系統(tǒng)管理員可以靈活地根據(jù)需要給不同的服務(wù)配置不同的認(rèn)證方式而無需更改服務(wù)程序,同時(shí)也便于向系統(tǒng)中添加新的認(rèn)證手段。POST——是一種HTTP定義的與服務(wù)器交互的一種方法,它用來請(qǐng)求服務(wù)器接受所指定的文檔作為對(duì)所標(biāo)識(shí)的URI的新的從屬實(shí)體。
圖1為本發(fā)明基于Web認(rèn)證與授權(quán)的總體示意圖; 圖2為本發(fā)明所涉及的Web認(rèn)證流程的示意圖3為本發(fā)明所涉及的Web認(rèn)證級(jí)別示意圖; 圖4為本發(fā)明基于Web的認(rèn)證與授權(quán)系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖1為本發(fā)明基于Web認(rèn)證與授權(quán)的總體示意圖,主要流程是用戶向Web瀏覽器提交認(rèn)證信息,并對(duì)該認(rèn)證信息進(jìn)行加密;服務(wù)器根據(jù)認(rèn)證信息,獲取用戶角色,然后進(jìn)行授權(quán),用戶獲取可訪問資源的功能列表,對(duì)資源進(jìn)行訪問。本發(fā)明所涉及的Web認(rèn)證流程如圖2所示,用戶通過Web瀏覽器輸入口令,Web瀏覽器通過POST向服務(wù)器端發(fā)送1,然后服務(wù)器端通過基于角色授權(quán)來判斷是否認(rèn)證成功, 返回1。如果認(rèn)證成功,則允許用戶訪問非敏感資源。上述通過認(rèn)證的用戶請(qǐng)求進(jìn)一步訪問時(shí),發(fā)送2訪問請(qǐng)求,則服務(wù)器返回2可訪問資源的功能列表。判斷用戶是否需要訪問敏感資源,如果需要?jiǎng)t通過Web瀏覽器插件或控件發(fā)送3進(jìn)一步的認(rèn)證信息,服務(wù)端將認(rèn)證的結(jié)果返回3給瀏覽器端,判斷是否認(rèn)證成功。 如果認(rèn)證成功,則允許用戶訪問敏感資源。本發(fā)明所涉及的Web認(rèn)證過程采用兩級(jí)認(rèn)證模式,即口令認(rèn)證和全球唯一標(biāo)識(shí)碼認(rèn)證。其中,所涉及的口令認(rèn)證的過程包括以下步驟
1)用戶通過Web瀏覽器提供的頁面以POST方式提交用戶口令;
2)Web瀏覽器通過Javascript獲取用戶口令;
3)將獲取到用戶口令(包括用戶名和密碼)進(jìn)行加密,加密的相關(guān)代碼如下所示 pwdmd5=dojox. encoding, digests.MD5 ( 'password' , dojox.encoding.digests.
outputTypes. Hex);
Il pwdmd5是加密之后的密文;
Il do jox. encoding, digests. MD5 是一個(gè)用于 MD5 加密的方法; Il password是需要加密的用戶密碼;
// do jox. encoding, digests. outputTypes. Hex是指定了加密之后輸出的格式,本例加密之后的密文是十六進(jìn)制格式的。4)將加密后的用戶口令通過POST方式傳遞給服務(wù)器進(jìn)行認(rèn)證授權(quán),傳遞的相關(guān)代碼如下所示
dojo.xhrPost ({url : posturl, content: {user: username, pwd: pwdmd5}}); Il do jo. xhrPost是將口令通過POST方式傳遞給認(rèn)知機(jī)的方法; // url :posturl是指需要將數(shù)據(jù)提交的服務(wù)器地址;
Il content: {user: username, pwd: pwdmd5}提交的內(nèi)容,其中user 是POST方式提交的用戶的名稱,username是口令中的用戶名,pwd是POST方式提交的口令中的密碼,pwdmd5 是經(jīng)加密后密碼的密文。以上通過用戶口令進(jìn)行認(rèn)證的方式,其認(rèn)證等級(jí)和安全級(jí)別比較低,用戶只可訪問系統(tǒng)的非敏感資源;若用戶需要訪問敏感資源,則需進(jìn)一步提供全球唯一標(biāo)識(shí)碼進(jìn)行認(rèn)證。全球唯一標(biāo)識(shí)碼認(rèn)證的認(rèn)證等級(jí)和安全級(jí)別高于口令認(rèn)證,如圖3所示。本發(fā)明所涉及的全球唯一標(biāo)識(shí)碼認(rèn)證的過程包括以下步驟1) Web瀏覽器采集全球唯一標(biāo)識(shí)碼(如生物特征碼或者硬件唯一特征碼mcey)。現(xiàn)有技術(shù)出于瀏覽器本身安全的考慮,不允許網(wǎng)頁直接訪問瀏覽器端硬件資源, 因此現(xiàn)有采集技術(shù)中全球唯一標(biāo)識(shí)碼是在本機(jī)進(jìn)行采集的。本發(fā)明所涉及的全球唯一標(biāo)識(shí)碼是在Web端進(jìn)行采集的,也就是瀏覽器端進(jìn)行采集的,增加了全球唯一標(biāo)識(shí)碼采集的難度。本發(fā)明在火狐瀏覽器中是通過火狐的插件技術(shù)來獲取全球唯一標(biāo)識(shí)碼的,在IE瀏覽器中是通過ActiveX控件技術(shù)來獲取全球唯一標(biāo)識(shí)碼的。具體是通過以下方式來實(shí)現(xiàn)的
首先,在瀏覽器中加載插件(火狐瀏覽器)或ActiveX控件(IE瀏覽器)。接著,插件或控件通過在瀏覽器端的硬件驅(qū)動(dòng)獲取用戶信息中的全球唯一標(biāo)識(shí)碼(如生物特征碼或者硬件唯一特征碼rn^ey)。最后,在瀏覽器端通過Javascript與插件或者控件通信,獲取插件或控件中的全球唯一標(biāo)識(shí)碼。2)為了保證Web采集到的全球唯一標(biāo)識(shí)碼的安全性,需要對(duì)其進(jìn)行加密。以硬件唯一特征碼mcey為例,加密的相關(guān)代碼如下所示
keyidmd5=dojox. encoding, digests. MD5 ( iKeyID' , dojox. encoding.digests. outputTypes. Hex);
Il keyidmd5是加密之后的密文。// do jox. encoding, digests. MD5 是一個(gè)用于 MD5 力口密的方法; Il KeyID是需要加密的mcey ;
// do jox. encoding, digests. outputTypes. Hex是指定了加密之后輸出的格式,本例加密之后的密文是十六進(jìn)制格式的;
3)將加密之后的全球唯一標(biāo)識(shí)碼通過POST方式傳遞到服務(wù)器進(jìn)行認(rèn)證授權(quán)。以硬件唯一特征碼mcey為例,相關(guān)代碼如下所示
dojo.xhrPost ({url : posturl, content:{key: keyidmd5}}); // do jo. xhrPost是將Ukey通過POST方式傳遞給服務(wù)器的方法; // url :posturl是指需要將數(shù)據(jù)提交的服務(wù)器地址;
Il content: {key: keyidmcM提交的內(nèi)容,其中,key是POST方式提交的名稱, keyidmd5是內(nèi)容。本發(fā)明采用的這種分級(jí)加密認(rèn)證的方式,降低了用戶認(rèn)證的復(fù)雜度,增強(qiáng)了認(rèn)證的安全性,使用戶體驗(yàn)更加良好。圖4為本發(fā)明基于Web的認(rèn)證與授權(quán)系統(tǒng)的結(jié)構(gòu)圖,該系統(tǒng)包括路由器、認(rèn)證機(jī)和授權(quán)機(jī),其主要功能如下所述
1)路由器,負(fù)責(zé)對(duì)用戶的請(qǐng)求進(jìn)行處理。該路由器有的兩個(gè)功能其一,判斷用戶是否經(jīng)過認(rèn)證。如果用戶經(jīng)過認(rèn)證,則直接將用戶的認(rèn)證信息提交給授權(quán)機(jī)進(jìn)行處理。其二,檢測(cè)認(rèn)證機(jī)是否能夠提供服務(wù)。如果認(rèn)證機(jī)不能提供服務(wù),則路由器將用戶信息提交給授權(quán)機(jī)進(jìn)行系統(tǒng)已有的PAM認(rèn)證。2)認(rèn)證機(jī),負(fù)責(zé)根據(jù)用戶提交的信息對(duì)用戶進(jìn)行認(rèn)證。如果用戶通過認(rèn)證,則該認(rèn)證機(jī)會(huì)將用戶認(rèn)證信息提交給授權(quán)機(jī)處理,否則返回用戶重新認(rèn)證。3)授權(quán)機(jī),負(fù)責(zé)根據(jù)用戶認(rèn)證信息對(duì)用戶可訪問的資源進(jìn)行授權(quán)。需要說明的是,本發(fā)明基于Web的認(rèn)證與授權(quán)系統(tǒng)中的路由器、認(rèn)證機(jī)和授權(quán)機(jī)可以建立在一臺(tái)服務(wù)器上,也可以分別建立在三臺(tái)不同的服務(wù)器上。本發(fā)明基于Web認(rèn)證與授權(quán)系統(tǒng)工作的總體流程為
服務(wù)器端的路由器獲取用戶請(qǐng)求,路由器首先會(huì)判斷用戶是否已經(jīng)認(rèn)證過。如果用戶已經(jīng)認(rèn)證過,則直接將用戶的認(rèn)證信息提交給授權(quán)機(jī)進(jìn)行處理。接著,路由器判斷服務(wù)器端的認(rèn)證機(jī)是否有效。如果有效,則將用戶信息提交給認(rèn)證機(jī)進(jìn)行認(rèn)證;否則直接執(zhí)行系統(tǒng)已有的PAM認(rèn)證。服務(wù)器端的認(rèn)證機(jī)對(duì)用戶信息進(jìn)行認(rèn)證時(shí),通過查詢用戶信息數(shù)據(jù)庫來得到用戶的認(rèn)證信息,然后將該認(rèn)證信息通過認(rèn)證機(jī)上的服務(wù)程序發(fā)送給授權(quán)機(jī)上的服務(wù)程序進(jìn)行處理。授權(quán)機(jī)上的服務(wù)程序接收到用戶認(rèn)證信息后,通過查詢授權(quán)信息數(shù)據(jù)庫來得到用戶的授權(quán)信息,授權(quán)機(jī)為用戶提供訪問系統(tǒng)資源的接口(即主界面),此時(shí)用戶就可以訪問系統(tǒng)資源了。其中,用戶信息數(shù)據(jù)庫存儲(chǔ)了用戶信息數(shù)據(jù),由用戶信息表(包括用戶名、密碼和全球唯一標(biāo)識(shí)碼字段)、角色信息表(包括角色名稱和角色I(xiàn)D字段)和用戶角色集合表(包括用戶名和角色I(xiàn)D字段)組成。授權(quán)信息數(shù)據(jù)庫存儲(chǔ)了對(duì)用戶進(jìn)行授權(quán)的信息,由功能信息表(包括功能ID、功能名稱、功能等級(jí)和功能鏈接字段)和功能角色集合表(包括功能ID和角色I(xiàn)D字段)組成。以下結(jié)合附圖4,對(duì)本發(fā)明認(rèn)證與授權(quán)的整個(gè)流程進(jìn)行詳細(xì)的描述
1)首先,用戶提交訪問系統(tǒng)資源的請(qǐng)求,路由器接收用戶請(qǐng)求,并判斷用戶是否已經(jīng)認(rèn)證過。如果用戶已經(jīng)認(rèn)證過,即用戶已經(jīng)提交了正確的認(rèn)證信息,如口令等,則路由器直接將用戶請(qǐng)求發(fā)送到授權(quán)機(jī)上,授權(quán)機(jī)返回給用戶訪問資源的接口,即主界面,用戶就可以通過該主界面直接訪問系統(tǒng)資源了。2)如果用戶沒有經(jīng)過認(rèn)證,路由器接著判斷認(rèn)證機(jī)是否能夠提供服務(wù)。(1)如果認(rèn)知機(jī)不能提供認(rèn)證服務(wù),則路由器直接將用戶信息提交給授權(quán)機(jī)進(jìn)行 PAM認(rèn)證。如果用戶通過PAM認(rèn)證,由于系統(tǒng)已有的PAM認(rèn)證的認(rèn)證等級(jí)比較低,即只能提供基本的口令認(rèn)證,所以用戶只能訪問非敏感資源。如果用戶沒有通過PAM認(rèn)證,則返回提示用戶重新提交認(rèn)證口令。(2)如果認(rèn)證機(jī)能夠提供認(rèn)證服務(wù),則路由器將用戶信息提交給認(rèn)證機(jī)進(jìn)行認(rèn)證。在認(rèn)證過程中,認(rèn)證機(jī)根據(jù)接收到的用戶信息對(duì)用戶分配權(quán)限等級(jí)。如果用戶提交的信息為口令,則權(quán)限等級(jí)為1 (初級(jí));如果用戶提交的信息還進(jìn)一步包括全球唯一認(rèn)證標(biāo)識(shí)碼,則權(quán)限等級(jí)為2 (高級(jí))。然后,認(rèn)證機(jī)讀取用戶信息數(shù)據(jù)庫,通過查詢用戶信息數(shù)據(jù)庫中的用戶信息表得到該用戶的密碼,和用戶提交的密碼做比對(duì)。如果查詢得到的密碼和用戶提交的密碼一致, 則認(rèn)證機(jī)查詢用戶信息數(shù)據(jù)庫中的用戶角色集合表,得到該用戶的角色I(xiàn)D。最后,認(rèn)證機(jī)通過服務(wù)程序?qū)⒃撚脩舻慕巧獻(xiàn)D和權(quán)限等級(jí)發(fā)送至授權(quán)機(jī)。3)授權(quán)機(jī)得到用戶的角色I(xiàn)D之后,讀取授權(quán)信息數(shù)據(jù)庫,通過查詢授權(quán)信息數(shù)據(jù)庫中的功能角色集合表,得到該用戶的功能ID ;再根據(jù)該功能ID查詢授權(quán)信息數(shù)據(jù)庫中的功能信息表,得到該用戶可訪問資源的功能信息,包括功能名稱、功能等級(jí)和功能鏈接。
接著,授權(quán)機(jī)根據(jù)得到的功能信息產(chǎn)生主界面返回給用戶。用戶在通過該主界面訪問資源時(shí),授權(quán)機(jī)會(huì)進(jìn)一步判斷該資源的功能等級(jí)和用戶的權(quán)限等級(jí)是否一致,如果兩者一致,則用戶可以直接訪問該資源;否則,如果權(quán)限等級(jí)小于功能等級(jí),則授權(quán)機(jī)會(huì)要求用戶再提交全球唯一標(biāo)識(shí)碼才能訪問該資源。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法,其特征在于,當(dāng)用戶請(qǐng)求訪問系統(tǒng)級(jí)別低的資源時(shí),使用口令認(rèn)證;而用戶請(qǐng)求訪問系統(tǒng)級(jí)別高的資源時(shí),使用全球唯一識(shí)別碼認(rèn)證。
2.如權(quán)利要求1所述的基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法,其特征在于,該全球唯一標(biāo)識(shí)碼的采集是在Web瀏覽器端實(shí)現(xiàn)的。
3.如權(quán)利要求2所述的基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法,其特征在于,該全球唯一標(biāo)識(shí)碼的采集在火狐瀏覽器中是通過加載插件的方式來實(shí)現(xiàn)的;而在IE瀏覽器中是通過加載ActiveX控件的方式來實(shí)現(xiàn)的。
4.如權(quán)利要求2所述的基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法,其特征在于,瀏覽器端采集到用戶信息后,對(duì)該信息進(jìn)行加密,并以POST方式將加密后的用戶信息傳遞到服務(wù)器端。
5.如權(quán)利要求4所述的基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法,其特征在于,服務(wù)器端接收到用戶信息后,采用基于角色的訪問控制方式對(duì)用戶進(jìn)行認(rèn)證授權(quán)。
6.如權(quán)利要求1所述的基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法,其特征在于,其包括步驟1)首先,用戶提交訪問系統(tǒng)資源的請(qǐng)求,由一路由器接收用戶請(qǐng)求,并判斷用戶是否已經(jīng)認(rèn)證過;如果用戶已經(jīng)認(rèn)證過,即用戶已經(jīng)提交了正確的認(rèn)證信息,如口令等,則路由器直接將用戶請(qǐng)求發(fā)送到授權(quán)機(jī)上,授權(quán)機(jī)返回給用戶訪問資源的接口,即主界面,用戶就可以通過該主界面直接訪問系統(tǒng)資源了;2)如果用戶沒有經(jīng)過認(rèn)證,路由器接著判斷認(rèn)證機(jī)是否能夠提供服務(wù);(1)如果認(rèn)知機(jī)不能提供認(rèn)證服務(wù),則路由器直接將用戶信息提交給授權(quán)機(jī)進(jìn)行PAM 認(rèn)證;如果用戶通過PAM認(rèn)證,即可訪問非敏感資源;如果用戶沒有通過PAM認(rèn)證,則返回提示用戶重新提交認(rèn)證口令;(2)如果認(rèn)證機(jī)能夠提供認(rèn)證服務(wù),則路由器將用戶信息提交給認(rèn)證機(jī)進(jìn)行認(rèn)證; 在認(rèn)證過程中,認(rèn)證機(jī)根據(jù)接收到的用戶信息對(duì)用戶分配權(quán)限等級(jí);如果用戶提交的信息為口令,則權(quán)限等級(jí)為初級(jí);如果用戶提交的信息還進(jìn)一步包括全球唯一認(rèn)證標(biāo)識(shí)碼, 則權(quán)限等級(jí)為高級(jí);然后,認(rèn)證機(jī)讀取用戶信息數(shù)據(jù)庫,通過查詢用戶信息數(shù)據(jù)庫中的用戶信息表得到該用戶的密碼,和用戶提交的密碼做比對(duì);如果查詢得到的密碼和用戶提交的密碼一致,則認(rèn)證機(jī)查詢用戶信息數(shù)據(jù)庫中的用戶角色集合表,得到該用戶的角色I(xiàn)D ;最后,認(rèn)證機(jī)通過服務(wù)程序?qū)⒃撚脩舻慕巧獻(xiàn)D和權(quán)限等級(jí)發(fā)送至授權(quán)機(jī)。
7.如權(quán)利要求6所述的基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法,其特征在于,其還包括步驟3)授權(quán)機(jī)得到用戶的角色I(xiàn)D之后,讀取授權(quán)信息數(shù)據(jù)庫,通過查詢授權(quán)信息數(shù)據(jù)庫中的功能角色集合表,得到該用戶的功能ID ;再根據(jù)該功能ID查詢授權(quán)信息數(shù)據(jù)庫中的功能信息表,得到該用戶可訪問資源的功能信息,包括功能名稱、功能等級(jí)和功能鏈接;接著,授權(quán)機(jī)根據(jù)得到的功能信息產(chǎn)生主界面返回給用戶;用戶在通過該主界面訪問資源時(shí),授權(quán)機(jī)會(huì)進(jìn)一步判斷該資源的功能等級(jí)和用戶的權(quán)限等級(jí)是否一致,如果兩者一致,則用戶可以直接訪問該資源;否則,如果權(quán)限等級(jí)小于功能等級(jí),則授權(quán)機(jī)會(huì)要求用戶再提交全球唯一標(biāo)識(shí)碼才能訪問該資源。
8.一種應(yīng)用于以上任一權(quán)利要求所述的方法的基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)系統(tǒng), 其特征在于,其包括路由器,負(fù)責(zé)對(duì)用戶的請(qǐng)求進(jìn)行處理;認(rèn)證機(jī),負(fù)責(zé)根據(jù)用戶提交的信息對(duì)用戶進(jìn)行認(rèn)證;授權(quán)機(jī),負(fù)責(zé)根據(jù)用戶認(rèn)證信息對(duì)用戶可訪問的資源進(jìn)行授權(quán)。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述路由器、認(rèn)證機(jī)和授權(quán)機(jī)建立在一臺(tái)服務(wù)器上。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述路由器、認(rèn)證機(jī)和授權(quán)機(jī)分別建立在三臺(tái)不同的服務(wù)器上。
全文摘要
本發(fā)明涉及基于角色的Web遠(yuǎn)程認(rèn)證與授權(quán)方法及系統(tǒng)。該認(rèn)證與授權(quán)方法根據(jù)用戶角色定義用戶權(quán)限,在用戶請(qǐng)求遠(yuǎn)程訪問不同級(jí)別的資源時(shí),根據(jù)資源級(jí)別的高低,選擇用戶需要認(rèn)證的方式。用戶請(qǐng)求訪問系統(tǒng)級(jí)別較低的資源(非敏感資源)時(shí),使用口令認(rèn)證即可;訪問系統(tǒng)級(jí)別高的資源(敏感資源)時(shí),使用全球唯一識(shí)別碼認(rèn)證。采用全球唯一識(shí)別碼認(rèn)證的過程中,對(duì)全球唯一標(biāo)識(shí)碼的采集是在Web瀏覽器端通過加載插件或控件技術(shù)來實(shí)現(xiàn)的。本發(fā)明所采用的這種分級(jí)認(rèn)證與授權(quán)的方式,降低了用戶認(rèn)證與授權(quán)的復(fù)雜度,增強(qiáng)了認(rèn)證與授權(quán)的安全性,可跨平臺(tái)、跨瀏覽器實(shí)現(xiàn),使得用戶體驗(yàn)更加良好。
文檔編號(hào)H04L9/32GK102457377SQ20111022461
公開日2012年5月16日 申請(qǐng)日期2011年8月8日 優(yōu)先權(quán)日2011年8月8日
發(fā)明者張建鋒 申請(qǐng)人:中標(biāo)軟件有限公司