本申請涉及計算機技術(shù)領(lǐng)域,特別涉及一種鑒權(quán)方法及鑒權(quán)裝置。
背景技術(shù):
權(quán)限管理,一般指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或者安全策略,用戶可以訪問而且只能訪問自己被授權(quán)的資源。權(quán)限管理技術(shù)是管理應(yīng)用系統(tǒng)中的主體訪問客體的權(quán)限的技術(shù),其可以應(yīng)用與任何通過用戶賬戶及密碼進行登陸的應(yīng)用系統(tǒng)中。
現(xiàn)有技術(shù)中,上述主體可以是各個用戶,上述客體可以是系統(tǒng)中的各種資源,如:各個模塊下的資源、數(shù)據(jù)服務(wù)資源等。應(yīng)用系統(tǒng)通過預(yù)先為每個用戶分配相應(yīng)的權(quán)限信息,并將這些權(quán)限信息與各個用戶的ID進行映射并存儲,從而在系統(tǒng)鑒權(quán)的過程中,根據(jù)用戶登陸的ID查詢到該用戶所具備的權(quán)限信息,實現(xiàn)權(quán)限管理。
在一些特殊的應(yīng)用系統(tǒng)(如:大數(shù)據(jù)平臺)中,一般還可以根據(jù)實際需求,系統(tǒng)中可以根據(jù)實際需求設(shè)置其他的主體,比如:租戶、項目等。在這些包括多種主體的應(yīng)用系統(tǒng)中,可以將各個用戶劃分到相應(yīng)的項目或租戶中來實現(xiàn)管理,對于不同的項目、或租戶而言,訪問系統(tǒng)資源的權(quán)限也不盡相同。
在實現(xiàn)本申請的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
目前還沒有實現(xiàn)包括多種主體的應(yīng)用系統(tǒng)的權(quán)限管理的技術(shù)。
技術(shù)實現(xiàn)要素:
本申請實施例的目的是提供一種鑒權(quán)方法及鑒權(quán)裝置,以實現(xiàn)解決現(xiàn)有技術(shù)無法實現(xiàn)包括多種主體的應(yīng)用系統(tǒng)的權(quán)限管理的問題。
為解決上述技術(shù)問題,本申請實施例提供的鑒權(quán)方法及裝置是這樣實現(xiàn)的:
一種鑒權(quán)方法,包括:
接收終端發(fā)送的攜帶用戶信息及待鑒權(quán)的權(quán)限點信息的鑒權(quán)請求;
確定與所述用戶信息相關(guān)聯(lián)的至少一個上層主體信息;
根據(jù)所述用戶信息,獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合;
根據(jù)所述至少一個上層主體信息,獲取與該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合;
將所述第一集合與所述第二集合的交集確定為鑒權(quán)集合;
判斷所述待鑒權(quán)的權(quán)限點信息是否在所述鑒權(quán)集合中;
若是,則判定鑒權(quán)通過。
一種鑒權(quán)方法,包括:
接收終端發(fā)送的攜帶用戶信息及待鑒權(quán)信息集合的鑒權(quán)請求;其中,所述待鑒權(quán)信息集合包含至少一個待鑒權(quán)的權(quán)限點信息;
確定與所述用戶信息相關(guān)聯(lián)的至少一個上層主體信息;
根據(jù)所述用戶信息,獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合;
根據(jù)所述至少一個上層主體信息,獲取與該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合;
將所述第一集合與所述第二集合的交集確定為鑒權(quán)集合;
判斷所述待鑒權(quán)信息集合與所述鑒權(quán)集合是否有交集;
若是,將所述待鑒權(quán)信息集合與所述鑒權(quán)集合的交集確定為與當前的鑒權(quán)請求對應(yīng)的鑒權(quán)通過的權(quán)限點信息的集合。
一種鑒權(quán)裝置,包括:
接收單元,用于接收終端發(fā)送的攜帶用戶信息及待鑒權(quán)的權(quán)限點信息的鑒 權(quán)請求;
第一確定單元,用于確定與所述用戶信息相關(guān)聯(lián)的至少一個上層主體信息;
第一獲取單元,用于根據(jù)所述用戶信息,獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合;
第二獲取單元,用于根據(jù)所述至少一個上層主體信息,獲取與該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合;
第二確定單元,用于將所述第一集合與所述第二集合的交集確定為鑒權(quán)集合;
判斷單元,用于判斷所述待鑒權(quán)的權(quán)限點信息是否在所述鑒權(quán)集合中,若是,則判定鑒權(quán)通過。
一種鑒權(quán)裝置,包括:
接收單元,用于接收終端發(fā)送的攜帶用戶信息及待鑒權(quán)信息集合的鑒權(quán)請求;其中,所述待鑒權(quán)信息集合包含至少一個待鑒權(quán)的權(quán)限點信息;
第一確定單元,用于確定與所述用戶信息相關(guān)聯(lián)的至少一個上層主體信息;
第一獲取單元,用于根據(jù)所述用戶信息,獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合;
第二獲取單元,用于根據(jù)所述至少一個上層主體信息,獲取與該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合;
第二確定單元,用于將所述第一集合與所述第二集合的交集確定為鑒權(quán)集合;
鑒權(quán)確定單元,用于判斷所述待鑒權(quán)信息集合與所述鑒權(quán)集合是否有交集;若是,將所述待鑒權(quán)信息集合與所述鑒權(quán)集合的交集確定為與當前的鑒權(quán)請求對應(yīng)的鑒權(quán)通過的權(quán)限點信息的集合。
由以上本申請實施例提供的技術(shù)方案可見,本申請實施例通過接收終端發(fā) 送的包含用戶信息的鑒權(quán)請求,根據(jù)用戶信息獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合;之后確定與上述用戶信息相關(guān)聯(lián)的至少一個上層主體信息,并獲取與該該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合;最終,根據(jù)獲取到的第一集合和第二集合,將第一集合、第二集合的交集確定為鑒權(quán)集合,根據(jù)該鑒權(quán)集合來判定終端發(fā)送的鑒權(quán)請求是否通過。從而基于以上過程,本申請實施例可以實現(xiàn)包含多個主體的應(yīng)用的權(quán)限管理。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為示出了本申請實施例中包含多個主體的應(yīng)用系統(tǒng)的架構(gòu);
圖2為本申請一實施例中鑒權(quán)方法的流程圖;
圖3為本申請另一實施例中鑒權(quán)方法的流程圖;
圖4為本申請一實施例中鑒權(quán)裝置的模塊圖;
圖5為本申請另一實施例中鑒權(quán)裝置的模塊圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本申請保護的范圍。
圖1為示出了本申請實施例中包含多個主體的應(yīng)用系統(tǒng)的架構(gòu),該架構(gòu)的主體可以包括用戶及與各個用戶對應(yīng)的上層主體,這些上層主體可以是租戶、 或項目。在系統(tǒng)架構(gòu)中,還可以包括平臺管理級的主體,比如:平臺管理人員。一般地,這個應(yīng)用系統(tǒng)可以包含一個或多個租戶,每個租戶下可以包含一個或多個項目,每個項目中又可以包含一個或多個用戶。其中,定義上述租戶是使用上述應(yīng)用系統(tǒng)的資源(可以是存儲資源、運算資源、開發(fā)資源等)的客戶群體(如:公司),定義上述項目是從屬于上述租戶的子群體,每個項目可以對應(yīng)于一個項目空間,該項目空間可以定義為用戶對數(shù)據(jù)進行加工處理的場所,用戶可以按照不同的產(chǎn)品線來劃分不同的項目空間。
通常,應(yīng)用系統(tǒng)可以為系統(tǒng)中的每個主體分配相應(yīng)的角色。這些角色可以包括用戶的角色、項目的角色、租戶的角色及管理級成員的角色。其中,用戶的角色還可以根據(jù)該用戶所屬的項目和租戶,分為用戶在項目級的角色、用戶在租戶級的角色。舉例而言,在圖1中,每個租戶中的角色包括租戶的擁有者、管理員及各個成員,成員的角色可以包括租戶級經(jīng)理、租戶級科長、租戶級工程師等,成員的角色可以由管理員來管理,租戶的擁有者可以添加/刪除管理員。每個租戶可以創(chuàng)建項目,每個項目中的角色也可以包括項目的擁有者、管理員及各個成員,成員的角色可以包括項目級經(jīng)理、項目級科長、項目級工程師等,成員的角色可以由管理員來管理,租戶的擁有者可以添加/刪除管理員。此外,平臺管理級的成員的角色可以包括平臺管理員等,平臺管理員可以管理平臺級的角色和管理權(quán)限點信息。所謂權(quán)限點信息是由客體(資源)+操作組成,例如:管理員的創(chuàng)建操作、管理員列表的查看操作、項目的創(chuàng)建操作、SQL的發(fā)布操作、用戶自定義函數(shù)的發(fā)布操作、某個數(shù)據(jù)服務(wù)的使用操作等。
在上述應(yīng)用系統(tǒng)中,每個租戶、項目作為一個群體,也具備相應(yīng)的角色。比如:應(yīng)用系統(tǒng)包括1000個租戶,可以根據(jù)租戶的級別劃分租戶的角色,租戶的角色可以包括:{ZHRole 1、ZHRole 2、……、ZHRole n},那么可以根據(jù)租戶的級別將上述1000個租戶分別與這n個租戶的角色:{ZHRole 1、ZHRole 2、……、ZHRole n}進行映射。同理,租戶也可以根據(jù)需要為其下的各個項目劃分相應(yīng)的權(quán)限。假設(shè)某個租戶包括100個項目,項目的角色可以包括: {XMRole 1、XMRole 2、……、XMRole m},那么可以將上述100個項目分別與這m個項目的角色:{XMRole 1、XMRole 2、……、XMRole m}進行映射。當然,應(yīng)用平臺上的其他租戶下的項目也可以與上述項目的角色:{XMRole 1、XMRole 2、……、XMRole m}進行映射。
上述應(yīng)用平臺可以根據(jù)將角色信息與相應(yīng)的一個或多個權(quán)限點信息(本文可以稱包含至少一個權(quán)限點信息的集合)進行映射。對于各個租戶而言,應(yīng)用系統(tǒng)的服務(wù)器上可以存儲各個租戶信息與相應(yīng)的租戶角色信息的映射關(guān)系,以及各個租戶角色信息與一個或多個權(quán)限點信息的映射關(guān)系。對于各個項目而言,應(yīng)用系統(tǒng)的服務(wù)器上可以存儲各個項目信息與相應(yīng)的項目角色信息的映射關(guān)系,以及各個項目角色信息與一個或多個權(quán)限點信息的映射關(guān)系。對應(yīng)各個用戶而言,應(yīng)用系統(tǒng)的服務(wù)器上可以存儲各個用戶信息與用戶角色信息的映射關(guān)系(包括用戶在項目級別的角色信息、用戶在租戶級別的角色信息),以及各個用戶角色信息與一個或多個權(quán)限點信息的映射關(guān)系。
值得提及的是,本申請的上層主體并不限于上述實施例介紹的租戶或項目,還可以是其他形式的主體,如:集團、歸屬于該集團下的至少一個子公司、歸屬于上述至少一個子公司下的至少一個部門等,并且,該應(yīng)用系統(tǒng)包括的主體的數(shù)目也不受限制,如:可以包括三層主體或三層以上的主體。本文將以兩層上層主體為例來介紹本申請的技術(shù)方案。
圖2為本申請一實施例中鑒權(quán)方法的流程圖。上述鑒權(quán)方法的執(zhí)行主體可以是應(yīng)用系統(tǒng)的服務(wù)器。基于上述應(yīng)用系統(tǒng)的架構(gòu),本實施例的鑒權(quán)方法包括:
S101:接收終端發(fā)送的攜帶用戶信息及待鑒權(quán)的權(quán)限點信息的鑒權(quán)請求。
上述終端可以是訪問上述服務(wù)器的電腦、或智能無線終端、或服務(wù)器等。
用戶可以通過上述終端采用用戶信息及密碼的形式進行登陸,登陸成功后,根據(jù)登陸的用戶信息向服務(wù)器發(fā)送包含該用戶信息及待鑒權(quán)的權(quán)限點信息的鑒權(quán)請求。其中,待鑒權(quán)的權(quán)限點信息可以根據(jù)用戶信息來確定,該權(quán)限點信息可以是一個或者多個。當然,待鑒權(quán)的權(quán)限點信息也可以根據(jù)用戶的具體 操作來確定,如:登陸終端的用戶在嘗試執(zhí)行某個操作時,需通過鑒權(quán)過程來確定當前用戶是否具備這樣操作的權(quán)限。
S102:確定與用戶信息相關(guān)聯(lián)的至少一個上層主體信息。
舉例而言,若所述上層主體信息包括兩個,分別是租戶信息、項目信息,則上述步驟S102可以具體包括:
確定與所述用戶信息相關(guān)聯(lián)的租戶信息;
確定與所述用戶信息相關(guān)聯(lián)的、且歸屬于所述租戶信息下的項目信息;
在上述應(yīng)用系統(tǒng)中,每個用戶會預(yù)先被劃分到相應(yīng)的上層主體(租戶、項目)下。例如:用戶信息可以是:“張三”,該用戶信息“張三”所歸屬的上層主體信息可以是:“X租戶”、“X租戶下的Y項目”。
S103:根據(jù)用戶信息獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合。
本實施例中,所述第一集合A所包含的權(quán)限點信息可以對應(yīng)于各個用戶的權(quán)限,即權(quán)限主體的是用戶。
如上所述,該步驟S103可以具體包括:
查詢與所述用戶信息映射的第一角色信息;其中,所述第一角色信息用以標識所述用戶信息對應(yīng)的用戶在所述上層主體信息對應(yīng)的上層主體中的角色;
查詢與所述第一角色信息映射的包含至少一個權(quán)限點信息的第一集合A。
舉例而言,對于上述包括租戶、項目的應(yīng)用系統(tǒng)而言,與用戶信息相映射的第一角色信息可以包括該用戶在租戶級的用戶角色、及該用戶在項目級的用戶角色。假設(shè)根據(jù)用戶信息:“張三”,確定到該用戶在租戶級的用戶角色例如是:“租戶級的經(jīng)理”,確定到該用戶在項目級的用戶角色例如是:“項目總監(jiān)”。根據(jù)上述用戶在不同的上層主體中的用戶角色:“租戶級的經(jīng)理”和“項目總監(jiān)”,可以分別通過查詢得到與上述用戶角色對應(yīng)的兩個包含至少一個權(quán)限點信息的集合A1和A2,也就是說,這兩個集合A1、A2分別表示該用戶在租戶級別、項目級別所擁有的權(quán)限。其中,第一集合A可以是上述兩個集合A1和 A2的交集。假設(shè)A1={權(quán)限點Q1、權(quán)限點Q2、權(quán)限點Q3、權(quán)限點Q4},A2={權(quán)限點Q1、權(quán)限點Q3、權(quán)限點Q5、權(quán)限點Q4},則通過取交集,可以得到第一集合A=A1∩A2={權(quán)限點Q1、權(quán)限點Q3、權(quán)限點Q4}。
值得述及的是,本申請其他實施例中,應(yīng)用系統(tǒng)中的上層主體可以只是租戶,而租戶下面沒有劃分項目,則只需獲取用戶在該租戶級別的角色信息及其相應(yīng)的權(quán)限集合即可。另外,若應(yīng)用系統(tǒng)包含較多數(shù)量的上層主體,當其中一個或多個上層主體空缺后,為確保最終得到的權(quán)限交集不為空集,上述空缺的一個或多個上層主體所對應(yīng)的權(quán)限集合中可以包含所有可能擁有的權(quán)限點。
S104:根據(jù)至少一個上層主體信息,獲取與該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合。
如上所述,對于應(yīng)用系統(tǒng)中的各個上層主體而言,其也具備相應(yīng)的權(quán)限。本申請實施例中,若所述上層主體信息包括至少兩個,則上述步驟S104包括:
分別獲取與各個上層主體信息對應(yīng)的包括至少一個權(quán)限點信息的權(quán)限集合;并將與各個上層主體信息對應(yīng)的權(quán)限集合的交集確定為所述第二集合。
本申請實施例中,該步驟S104可以具體包括:
查詢與所述上層主體信息映射的第二角色信息;其中,所述第二角色信息用以標識該上層主體信息對應(yīng)的上層主體在應(yīng)用系統(tǒng)中的角色;
查詢與所述第二角色信息映射的包含至少一個權(quán)限點信息的第二集合B。
對于包含租戶、項目的應(yīng)用系統(tǒng)而言,上層主體信息可以包括租戶信息、項目信息,則相應(yīng)的第二角色信息也包括該租戶在應(yīng)用系統(tǒng)中角色信息、及該項目在應(yīng)用系統(tǒng)中角色信息。則,獲取上述第二集合B的具體過程可以包括:
獲取與所述租戶信息對應(yīng)的包含至少一個權(quán)限點信息的權(quán)限集合B1;
獲取與所述項目信息對應(yīng)的包含至少一個權(quán)限點信息的權(quán)限集合B2;
將權(quán)限集合B1與權(quán)限集合B2的交集確定為所述第二集合B。
舉例而言,對于用戶信息:“張三”,通過查詢用戶-上層主體映射表,可以得到其對應(yīng)的項目信息例如是:“X租戶下的Y項目”,其對應(yīng)的租戶信息 例如是:“X租戶”。通過查詢上層主體-主體角色映射表,可以得到上述項目信息:“X租戶下的Y項目”對應(yīng)的角色信息是:“XMRole 11”,得到上述租戶信息:“X租戶”對應(yīng)的角色信息是:“ZHRole 12”。最終,通過查詢主體角色信息-權(quán)限點信息的映射表,可以得到上述角色信息:“XMRole 11”對應(yīng)的權(quán)限集合B1={權(quán)限點Q1、權(quán)限點Q2、權(quán)限點Q3、權(quán)限點Q4、權(quán)限點Q5、權(quán)限點Q6、權(quán)限點Q8、權(quán)限點Q10},得到上述角色信息“ZHRole 12”對應(yīng)的權(quán)限集合B2={權(quán)限點Q2、權(quán)限點Q3、權(quán)限點Q4、權(quán)限點Q5、權(quán)限點Q6、權(quán)限點Q9、權(quán)限點Q10},則,通過取交集,得到第二集合B=B1∩B2={權(quán)限點Q2、權(quán)限點Q3、權(quán)限點Q4、權(quán)限點Q5、權(quán)限點Q6、權(quán)限點Q10}。
S105:將第一集合A與第二集合B的交集A∩B確定為鑒權(quán)集合C。
本申請實施例中,第一集合A表示用戶在各個上層主體中的權(quán)限點信息集合。第二集合B表示用戶所屬的各個上層主體所具備的權(quán)限點信息集合。由于在上述應(yīng)用系統(tǒng)的權(quán)限管理機制中,下層主體所對應(yīng)的權(quán)限點信息集合可以是上層主體所對應(yīng)的權(quán)限點信息集合的子集。舉例而言,用戶是項目、租戶的下層主體,項目、租戶是用戶的上層主體,則用戶所對應(yīng)的權(quán)限點信息集合是各個租戶、項目所對應(yīng)的權(quán)限點信息集合的子集。故,需要通過將第一集合A與第二集合B的交集A∩B確定為鑒權(quán)集合C,以確定該用戶最終能夠擁有的權(quán)限。
S106:判斷待鑒權(quán)的權(quán)限點信息是否在鑒權(quán)集合C中。
繼續(xù)沿用上述例子,假設(shè)第一集合A={權(quán)限點Q1、權(quán)限點Q3、權(quán)限點Q4},第二集合B={權(quán)限點Q2、權(quán)限點Q3、權(quán)限點Q4、權(quán)限點Q5、權(quán)限點Q6、權(quán)限點Q10},則確定的鑒權(quán)集合C=A∩B={權(quán)限點Q3、權(quán)限點Q4}。
若終端發(fā)送的鑒權(quán)請求中攜帶的待鑒權(quán)的權(quán)限點信息是:Q3、或Q4、或{Q3、Q4},由于這些權(quán)限點信息在鑒權(quán)集合C中,則判定鑒權(quán)通過,該終端的用戶具備相應(yīng)的訪問應(yīng)用系統(tǒng)的資源的權(quán)限。相反地,若終端發(fā)送的鑒權(quán)信息中攜帶的待鑒權(quán)的權(quán)限點信息不在上述鑒權(quán)集合C中,如:Q5,則判定鑒 權(quán)不通過,該終端的用戶不具備相應(yīng)的訪問應(yīng)用系統(tǒng)的資源的權(quán)限。
圖3為本申請另一實施例中鑒權(quán)方法的流程圖。上述鑒權(quán)方法的執(zhí)行主體可以是應(yīng)用系統(tǒng)的服務(wù)器?;谏鲜鰬?yīng)用系統(tǒng)的架構(gòu),本實施例的鑒權(quán)方法包括:
S201:接收終端發(fā)送的攜帶用戶信息及待鑒權(quán)信息集合的鑒權(quán)請求;其中,所述待鑒權(quán)信息集合包含至少一個待鑒權(quán)的權(quán)限點信息。
S202:根據(jù)用戶信息,獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合A。
S203:確定與用戶信息相關(guān)聯(lián)的至少一個上層主體信息。
S204:根據(jù)至少一個上層主體信息,獲取與該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合B。
S205:將第一集合A與第二集合B的交集確定為鑒權(quán)集合C。
上述步驟S201~S205可以參照上述步驟S101~S105的內(nèi)容,定義該待鑒權(quán)信息集合D。
S206:判斷待鑒權(quán)信息集合D與所述鑒權(quán)集合C是否有交集。
S207:若是,將所述待鑒權(quán)信息集合D與所述鑒權(quán)集C合的交集確定為與當前的鑒權(quán)請求對應(yīng)的鑒權(quán)通過的權(quán)限點信息的集合E。
本申請實施例中,若集合E=D∩C=D,則表明待鑒權(quán)信息集合D是鑒權(quán)集C的一個子集,也就是說,待鑒權(quán)信息集合D包含的各個待鑒權(quán)的權(quán)限點信息全部落在最終確定的鑒權(quán)集合C中,可以判定鑒權(quán)完全通過;若集合E=D∩C=空集,則表明待鑒權(quán)信息集合D包含的各個待鑒權(quán)的權(quán)限點信息沒有一個落在最終確定的鑒權(quán)集合C中,可以判定鑒權(quán)完全不通過;若集合E=D∩C不是空集,而是集合D的子集,則表明待鑒權(quán)信息集合D包含的各個待鑒權(quán)的權(quán)限點信息部分落在最終確定的鑒權(quán)集合C中,可以判定鑒權(quán)部分通過。
通過上述過程,可以根據(jù)集合E=D∩C所包含的權(quán)限點信息,來確定使用終端的用戶最終鑒權(quán)通過的權(quán)限。
圖4為本申請一實施例中鑒權(quán)裝置的模塊圖。本實施例的鑒權(quán)裝置,包括:
接收單元301,用于接收終端發(fā)送的攜帶用戶信息及待鑒權(quán)的權(quán)限點信息的鑒權(quán)請求;
第一確定單元302,用于確定與所述用戶信息相關(guān)聯(lián)的至少一個上層主體信息;
第一獲取單元303,用于根據(jù)所述用戶信息,獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合;
第二獲取單元304,用于根據(jù)所述至少一個上層主體信息,獲取與該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合;
第二確定單元305,用于將所述第一集合與所述第二集合的交集確定為鑒權(quán)集合;
判斷單元306,用于判斷所述待鑒權(quán)的權(quán)限點信息是否在所述鑒權(quán)集合中,若是,則判定鑒權(quán)通過。
本申請實施例中,所述第二獲取單元304具體用于:
若所述上層主體信息包括至少兩個,則分別獲取與各個上層主體信息對應(yīng)的包括至少一個權(quán)限點信息的權(quán)限集合;
將與各個上層主體信息對應(yīng)的權(quán)限集合的交集確定為所述第二集合。
本申請實施例中,若所述上層主體信息包括租戶信息、項目信息,則,所述第一確定單元302具體用于:
確定與所述用戶信息相關(guān)聯(lián)的租戶信息;
確定與所述用戶信息相關(guān)聯(lián)的、且歸屬于所述租戶信息下的項目信息;
則,所述第二獲取單元304具體用于:
獲取與所述租戶信息對應(yīng)的包含至少一個權(quán)限點信息的權(quán)限集合;
獲取與所述項目信息對應(yīng)的包含至少一個權(quán)限點信息的權(quán)限集合;
將所述租戶信息對應(yīng)的的權(quán)限集合與所述項目信息對應(yīng)的權(quán)限集合的交集確定為所述第二集合。
本申請實施例中,所述第一獲取單元302具體用于:
查詢與所述用戶信息映射的第一角色信息;其中,所述第一角色信息用以標識所述用戶信息對應(yīng)的用戶在所述上層主體信息對應(yīng)的上層主體中的角色;
查詢與所述第一角色信息映射的包含至少一個權(quán)限點信息的第一集合;
所述第二獲取單元304具體用于:
查詢與至少一個上層主體信息映射的至少一個第二角色信息;其中,所述第二角色信息用以標識該上層主體信息對應(yīng)的上層主體在應(yīng)用系統(tǒng)中的角色;
查詢與至少一個第二角色信息映射的包含至少一個權(quán)限點信息的第二集合。
圖5為本申請另一實施例中鑒權(quán)裝置的模塊圖。本實施例的鑒權(quán)裝置,包括:
接收單元401,用于接收終端發(fā)送的攜帶用戶信息及待鑒權(quán)信息集合的鑒權(quán)請求;其中,所述待鑒權(quán)信息集合包含至少一個待鑒權(quán)的權(quán)限點信息;
第一確定單元402,用于確定與所述用戶信息相關(guān)聯(lián)的至少一個上層主體信息;
第一獲取單元403,用于根據(jù)所述用戶信息,獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合;
第二獲取單元404,用于根據(jù)所述至少一個上層主體信息,獲取與該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合;
第二確定單元405,用于將所述第一集合與所述第二集合的交集確定為鑒權(quán)集合;
鑒權(quán)確定單元406,用于判斷所述待鑒權(quán)信息集合與所述鑒權(quán)集合是否有交集;若是,將所述待鑒權(quán)信息集合與所述鑒權(quán)集合的交集確定為與當前的鑒權(quán)請求對應(yīng)的鑒權(quán)通過的權(quán)限點信息的集合。
本申請實施例中,所述第二獲取單元304具體用于:
若所述上層主體信息包括至少兩個,則分別獲取與各個上層主體信息對應(yīng) 的包括至少一個權(quán)限點信息的權(quán)限集合;
將與各個上層主體信息對應(yīng)的權(quán)限集合的交集確定為所述第二集合。
本申請實施例中,若所述上層主體信息包括租戶信息、項目信息,則,所述第一確定單元302具體用于:
確定與所述用戶信息相關(guān)聯(lián)的租戶信息;
確定與所述用戶信息相關(guān)聯(lián)的、且歸屬于所述租戶信息下的項目信息;
則,所述第二獲取單元304具體用于:
獲取與所述租戶信息對應(yīng)的包含至少一個權(quán)限點信息的權(quán)限集合;
獲取與所述項目信息對應(yīng)的包含至少一個權(quán)限點信息的權(quán)限集合;
將所述租戶信息對應(yīng)的的權(quán)限集合與所述項目信息對應(yīng)的權(quán)限集合的交集確定為所述第二集合。
本申請實施例中,所述第一獲取單元302具體用于:
查詢與所述用戶信息映射的第一角色信息;其中,所述第一角色信息用以標識所述用戶信息對應(yīng)的用戶在所述上層主體信息對應(yīng)的上層主體中的角色;
查詢與所述第一角色信息映射的包含至少一個權(quán)限點信息的第一集合;
所述第二獲取單元304具體用于:
查詢與至少一個上層主體信息映射的至少一個第二角色信息;其中,所述第二角色信息用以標識該上層主體信息對應(yīng)的上層主體在應(yīng)用系統(tǒng)中的角色;
查詢與至少一個第二角色信息映射的包含至少一個權(quán)限點信息的第二集合。
綜上,本申請實施例通過接收終端發(fā)送的包含用戶信息的鑒權(quán)請求,根據(jù)用戶信息獲取與該用戶信息對應(yīng)的包含至少一個權(quán)限點信息的第一集合;之后確定與上述用戶信息相關(guān)聯(lián)的至少一個上層主體信息,并獲取與該該上層主體信息對應(yīng)的包含至少一個權(quán)限點信息的第二集合;最終,根據(jù)獲取到的第一集合和第二集合,將第一集合、第二集合的交集確定為鑒權(quán)集合,根據(jù)該鑒權(quán)集合來判定終端發(fā)送的鑒權(quán)請求是否通過。從而基于以上過程,本申請實施例可 以實現(xiàn)包含多個主體的應(yīng)用的權(quán)限管理。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、 方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。