跨應(yīng)用共享的授權(quán)策略對象、目標(biāo)定義和決策合并算法
【專利摘要】本公開涉及跨應(yīng)用共享的授權(quán)策略對象、目標(biāo)定義和決策合并算法??梢钥缦到y(tǒng)中的所有應(yīng)用維護(hù)全局策略。全局策略模型可以利用消息應(yīng)用編程接口(MAPI)來管理。定義全局策略,其包括由多個(gè)應(yīng)用共享的規(guī)則。定義多個(gè)應(yīng)用特定策略,其包括用于個(gè)體應(yīng)用的規(guī)則?;谒鋈植呗院偷谝粦?yīng)用特定策略判定第一應(yīng)用是否被允許訪問特定資源?;谒鋈植呗院偷诙?yīng)用特定策略判定第二應(yīng)用是否被允許訪問所述特定資源。
【專利說明】跨應(yīng)用共享的授權(quán)策略對象、目標(biāo)定義和決策合并算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實(shí)施例總體上涉及計(jì)算機(jī)安全領(lǐng)域,更特別地,涉及能跨系統(tǒng)中的多個(gè) 應(yīng)用共享的全局安全策略模型。
【背景技術(shù)】
[0002] 在許多情況下,企業(yè)具有一些在所有應(yīng)用中強(qiáng)制的公共安全策略。如果這些策略 定義于每個(gè)應(yīng)用范圍內(nèi),則策略將會是冗余的且難以維護(hù)。
[0003] 在計(jì)算機(jī)安全領(lǐng)域,一般訪問控制包括授權(quán)(authorization)、認(rèn)證 (authentication)、訪問批準(zhǔn)(access approval)、以及審計(jì)(audit)。訪問控制涉及訪問批 準(zhǔn),藉此計(jì)算機(jī)基于已經(jīng)認(rèn)證了的主體被授權(quán)訪問什么來判定同意還是拒絕來自主體的訪 問請求。認(rèn)證和訪問控制通常組合成單個(gè)操作,從而基于成功認(rèn)證或者基于匿名訪問令牌 (token)來批準(zhǔn)訪問。認(rèn)證方法和令牌可包括密碼、生物測定掃描、物理密鑰、電子密鑰和器 件、隱藏路徑、社群壁魚(social barrier)、以及通過人和自動化系統(tǒng)來監(jiān)控。
[0004] 在訪問控制模型中,可執(zhí)行系統(tǒng)中的動作的實(shí)體通常稱為主體(sub ject),代表對 其的訪問可能需要被控制的資源的實(shí)體通常稱為對象(object)。主體和對象可以是軟件實(shí) 體,而非人類用戶。在一些模型(諸如對象-權(quán)能模型)中,軟件實(shí)體有可能可以用作主體和 對象二者。對象可包括計(jì)算系統(tǒng)資源(這里簡稱為"資源"),諸如可執(zhí)行應(yīng)用程序(這里簡稱 為"應(yīng)用")、文件系統(tǒng)結(jié)構(gòu)諸如文件和目錄、通信端口、易失性存儲片段等。
[0005] 當(dāng)前系統(tǒng)使用的訪問控制模型可以基于權(quán)能(capability)或基于訪問控制列表 (ACL)。在基于權(quán)能的模型中,保持不會忘記的對于對象的引用或權(quán)能提供了對于對象的訪 問權(quán)(大致上類似于擁有房屋鑰匙如何準(zhǔn)許一個(gè)人進(jìn)入其房屋);訪問權(quán)通過在安全通道上 傳輸這樣的權(quán)能而轉(zhuǎn)移到另一方。在基于ACL的模型中,主體對于對象的訪問權(quán)可以取決 于其身份是否在與對象相關(guān)聯(lián)的列表上(大致上類似于私密方的保鏢檢查一個(gè)人的ID以 查看其名字是否在賓客列表中);訪問權(quán)可通過編輯該列表而被轉(zhuǎn)移。基于權(quán)能的模型和基 于ACL的模型二者都可包括允許訪問權(quán)被授予給一組主體中的所有成員的機(jī)制。這樣的組 本身可以模型化為一個(gè)主體。
[0006] 訪問控制系統(tǒng)可提供授權(quán)、識別和認(rèn)證、訪問批準(zhǔn)以及追責(zé)(accountabi I ity )等 服務(wù)。授權(quán)包括規(guī)定主體允許執(zhí)行的動作。識別和認(rèn)證防止非法主體訪問系統(tǒng)。訪問批準(zhǔn) 包括通過基于授權(quán)策略將用戶與他們允許訪問的資源相關(guān)聯(lián)而在操作期間準(zhǔn)許訪問。追責(zé) 識別主體執(zhí)行的動作。
[0007] 授權(quán)可包括定義主體的訪問權(quán)。授權(quán)策略可規(guī)定主體允許在系統(tǒng)內(nèi)執(zhí)行的操作。 一些操作系統(tǒng)將授權(quán)策略實(shí)施為權(quán)限(permission)的形式集合,其是三種基本訪問類型的 變型或拓展。利用讀訪問,主體可以讀取文件內(nèi)容和列出目錄內(nèi)容。利用寫訪問,主體可以 通過增加數(shù)據(jù)到已有文件結(jié)構(gòu)、創(chuàng)建新文件結(jié)構(gòu)、刪除已有文件結(jié)構(gòu)或重命名已有文件結(jié) 構(gòu)來改變文件或目錄的內(nèi)容。利用執(zhí)行訪問,主體可以使系統(tǒng)執(zhí)行(運(yùn)行)程序。這些權(quán)利 和權(quán)限可以在具有不同訪問控制模型的系統(tǒng)中不同地實(shí)施。訪問控制模型有時(shí)分類為自主 性或非自主性。一些廣泛認(rèn)可的模型包括自主訪問控制(DAC)、強(qiáng)制訪問控制(MAC)、基于 角色的訪問控制(RBAC)以及基于屬性的訪問控制(ABAC)。
[0008] 在基于屬性的訪問控制(ABAC)中,不一定基于與認(rèn)證后的用戶關(guān)聯(lián)的主體的權(quán)利 來授予訪問權(quán),而是基于用戶本身的屬性。可以要求用戶滿足(對于訪問控制引擎而言)關(guān) 于其屬性的要求?;趯傩缘脑L問控制策略規(guī)定哪些要求需要被滿足以授予對于對象的訪 問權(quán)。例如,要求可以是"大于18歲"。在這樣的情境下,可證實(shí)該要求的用戶將被授予訪 問權(quán)。在該模型中,用戶可以是匿名的,因?yàn)椴粐?yán)格要求認(rèn)證和識別。用于匿名地證實(shí)要求 的裝置可以利用匿名證書實(shí)現(xiàn)??蓴U(kuò)展訪問控制標(biāo)記語言(XACML)是基于屬性的訪問控制 的標(biāo)準(zhǔn)。
[0009] 自主訪問控制(DAC)包括由對象的擁有者所確定的策略。該擁有者決定哪些用戶 被允許訪問該對象以及那些用戶關(guān)于該對象具有什么特權(quán)。在基于DAC的系統(tǒng)中,系統(tǒng)中 的每個(gè)對象可具有擁有者。在一些基于DAC的系統(tǒng)中,每個(gè)對象的初始擁有者可以是使該 對象被創(chuàng)建的主體。對象的訪問策略可以由該對象的擁有者確定。在基于DAC的系統(tǒng)中, 擁有者可以向諸如其他主體分配特定資源的訪問權(quán)和權(quán)限。
[0010] 強(qiáng)制訪問控制(MAC)包括如果存在允許用戶訪問資源的規(guī)則,則允許該用戶訪問 該資源?;贛C的系統(tǒng)的管理在對象利用分級訪問控制和/或通過敏感度標(biāo)簽的實(shí)施來 得到保護(hù)時(shí)可被簡化。在使用敏感度標(biāo)簽的系統(tǒng)中,單獨(dú)的敏感度標(biāo)簽可被分配給每個(gè)主 體和對象。主體的敏感度標(biāo)簽可規(guī)定其信任等級。對象的敏感度標(biāo)簽可規(guī)定訪問該對象所 需的信任等級。如果主體的敏感度等級等于或大于該對象所要求的信任等級,則該主體被 允許訪問該對象?;贛AC的系統(tǒng)可以使用基于規(guī)則的訪問控制?;谝?guī)則的控制可包括 通過比較對象的敏感度標(biāo)簽和主體的敏感度標(biāo)簽來判定主體是應(yīng)被授予還是應(yīng)被拒絕對 于該對象的訪問。
[0011] 基于角色的訪問控制(RBAC)可包括由對象位于其中的系統(tǒng)確定的訪問策略。RBAC 系統(tǒng)可以是非自主性的,因?yàn)榭梢栽谙到y(tǒng)級別對訪問進(jìn)行控制(通過系統(tǒng)管理員,而不是通 過對象的擁有者)。RBAC系統(tǒng)可以控制權(quán)限的集合。RBAC系統(tǒng)中的角色可以視為一組權(quán) 限。在RBAC系統(tǒng)中,如果主體已經(jīng)被分配被允許訪問資源的角色,則該主體可以訪問該資 源。角色可以在層級中組合,在層級中,較高等級的角色包含低角色所擁有的權(quán)限。
[0012] 難題可能出現(xiàn)在包括異構(gòu)授權(quán)(或訪問控制)環(huán)境的企業(yè)中。這種異構(gòu)授權(quán)環(huán)境可 采用全異訪問控制模型。例如,企業(yè)可能包括采用Java Platform Security (JPS)作為授 權(quán)環(huán)境的一些組件以及米用Oracle Access Manager (OAM)作為授權(quán)環(huán)境的另一些組件。 JPS提供的訪問控制可以是應(yīng)用特定的;這種訪問控制可以由應(yīng)用的設(shè)計(jì)者實(shí)施在那些應(yīng) 用內(nèi),應(yīng)用設(shè)計(jì)者通常對特定類型企業(yè)中的部署(通常是預(yù)期在企業(yè)范圍使用RBAC模型的 部署)了熟于心。因此,應(yīng)用設(shè)計(jì)者并入到其應(yīng)用中的JPS訪問控制可以是基于角色的。相 反,OAM提供的訪問控制可以是企業(yè)范圍的(通用的,而非對于任何特殊應(yīng)用特定的),其在 應(yīng)用部署時(shí)被規(guī)定而非在應(yīng)用設(shè)計(jì)時(shí)被規(guī)定。OAM提供的訪問控制能以基于DAC的模型為 基礎(chǔ),這允許委托策略管理。以單獨(dú)且隔離的方式實(shí)施兩種類型的系統(tǒng)可能是對系統(tǒng)資源 的浪費(fèi)和重復(fù)勞動。
【發(fā)明內(nèi)容】
[0013] 這里公開了跨越所有應(yīng)用維護(hù)全局策略的技術(shù)。這里公開一種全局策略模型。公 開了使用消息應(yīng)用編程接口(MAPI)來管理全局策略模型的技術(shù)。在一實(shí)施例中,包括被多 個(gè)應(yīng)用共享的規(guī)則的全局策略被定義。包括用于單獨(dú)應(yīng)用的規(guī)則的多個(gè)應(yīng)用特定的策略被 定義?;谌植呗院偷谝粦?yīng)用特定策略來判定第一應(yīng)用是否被允許訪問特定資源?;?全局策略和第二應(yīng)用特定策略來判定第二應(yīng)用是否被允許訪問該特定資源。在一實(shí)施例 中,一種設(shè)備包括用于定義包括被多個(gè)應(yīng)用共享的規(guī)則的全局策略的裝置。該設(shè)備包括用 于定義包括用于單獨(dú)應(yīng)用的規(guī)則的多個(gè)應(yīng)用特定策略的裝置。該設(shè)備包括用于基于該全局 策略和第一應(yīng)用特定策略來判定第一應(yīng)用是否被允許訪問特定資源的裝置。該設(shè)備包括用 于基于該全局策略和第二應(yīng)用特定策略來判定第二應(yīng)用是否被允許訪問該特定資源的裝 置。
【專利附圖】
【附圖說明】
[0014] 圖1是框圖,示出根據(jù)本發(fā)明一實(shí)施例的包括全局策略的目錄信息樹(DIT)的示 例。
[0015] 圖2是流程圖,示出根據(jù)本發(fā)明一實(shí)施例的在多個(gè)應(yīng)用之間共享全局策略的示例 性技術(shù)。
[0016] 圖3是框圖,示出根據(jù)本發(fā)明一實(shí)施例的可通過各種授權(quán)系統(tǒng)得到保護(hù)的各種真 實(shí)世界資源的示例。
[0017] 圖4是框圖,示出根據(jù)本發(fā)明一實(shí)施例的公共授權(quán)框架的示例。
[0018] 圖5是框圖,示出根據(jù)本發(fā)明一實(shí)施例的公共策略管理框架的示例。
[0019] 圖6是框圖,示出根據(jù)本發(fā)明一實(shí)施例的公共決策引擎和運(yùn)行時(shí)(runtime)框架 的示例。
[0020] 圖7是簡化框圖,示出可根據(jù)本發(fā)明一實(shí)施例使用的系統(tǒng)環(huán)境的組件。
[0021] 圖8是可根據(jù)本發(fā)明的實(shí)施例使用的計(jì)算機(jī)系統(tǒng)的簡化框圖。
【具體實(shí)施方式】
[0022] -種系統(tǒng)可包括多個(gè)應(yīng)用。這些應(yīng)用中的每個(gè)可被應(yīng)用特定的安全策略(在系統(tǒng) 中由策略對象表示)所掌控。在本發(fā)明一實(shí)施例中,至少一些安全策略對象可以跨多個(gè)應(yīng)用 被共享。這些對象在所有應(yīng)用中都是有效的。這種共享簡化了多應(yīng)用環(huán)境中的策略定義。 在本發(fā)明一實(shí)施例中,使用了應(yīng)用級決策合并算法技術(shù)。該技術(shù)可用作可擴(kuò)展訪問控制標(biāo) 記語言(XACML) 3. 0標(biāo)準(zhǔn)的擴(kuò)展。
[0023] 圖3是框圖,示出根據(jù)本發(fā)明一實(shí)施例可通過各種授權(quán)系統(tǒng)保護(hù)的各種真實(shí)世界 資源的示例。企業(yè)300可包括受保護(hù)資源306-312。企業(yè)300可包括網(wǎng)絡(luò)302,用戶可通過 網(wǎng)絡(luò)302請求對資源306-312的訪問。企業(yè)300可包括授權(quán)單元304,其存儲多個(gè)不同的授 權(quán)策略(在圖3中由不同的幾何形狀表示)。如圖3所示,資源306-312中的不同資源可以通 過認(rèn)證單元304所維護(hù)的不同授權(quán)策略或授權(quán)策略的組合來得到保護(hù)。授權(quán)單元304可提 供對關(guān)于去也300中的所有數(shù)據(jù)資源諸如資源306-312的用戶請求的集中統(tǒng)一管理。這 種用戶請求可包括例如讀取、寫入、拷貝、刪除、或其他數(shù)據(jù)檢索或操縱請求。響應(yīng)于訪問資 源306-312中的任何資源的用戶請求,授權(quán)單元304可以接收該請求并且確定授權(quán)單元304 所存儲的潛在若干授權(quán)策略中的哪些應(yīng)用到該資源。在圖3所示的示例中,多個(gè)授權(quán)策略 可應(yīng)用于資源306和312。不論單個(gè)還是多個(gè)授權(quán)策略應(yīng)用到所請求的資源,授權(quán)單元304 都可以從其統(tǒng)一企業(yè)范圍策略存儲中選擇應(yīng)用到該資源的所有授權(quán)策略。然后,授權(quán)單元 304可以基于所選擇的應(yīng)用到該資源的一個(gè)或多個(gè)策略來判定用戶是否被授權(quán)在請求所指 定的資源上執(zhí)行請求所指定的一個(gè)或多個(gè)動作。授權(quán)單元304可以基于該判決允許或拒絕 用戶的請求。
[0024] 圖4是框圖,示出根據(jù)本發(fā)明一實(shí)施例的公共認(rèn)證框架400的示例。與圖4所 示的那些組件相比,本發(fā)明的替選實(shí)施例可包括附加的、更少的、或者不同的組件。公共 授權(quán)框架400可包括管理工具諸如X2 (Oracle Identity Manager)管理工具402、FGA (Fine-Grained Authorization)管理工具 404、以及 JPS 管理工具 406。管理工具 402、404 和406中的每個(gè)都可以接口連接到相同的策略API422。策略API422是上述統(tǒng)一策略API 的示例。FGA可以視為某種OAM授權(quán)環(huán)境。
[0025] 框架400還可包括身份(ID)管理模塊408。在一實(shí)施例中,ID管理模塊408可用 于創(chuàng)建和管理貫穿企業(yè)系統(tǒng)的身份。這種身份例如可以是用戶身份。ID管理模塊408可以 與身份(ID)儲存器412接口連接。ID儲存器412可用作利用ID管理模塊408創(chuàng)建的身份 的儲存庫。ID儲存器412也可以與策略API422接口連接。
[0026] 框架400還可包括角色儲存器424。在一實(shí)施例中,角色儲存器424可用作企業(yè)系 統(tǒng)內(nèi)已經(jīng)創(chuàng)建的角色的儲存庫。身份可以被分配給角色,角色可以被分配給權(quán)限。以此方 式,應(yīng)當(dāng)具有同種權(quán)限的多個(gè)用戶可以被分配給相同角色,其又可被分配為具有那些權(quán)限。 例如,"管理員"角色可與一組指定的權(quán)限相關(guān)聯(lián),應(yīng)具有那些權(quán)限的所有用戶的身份可以 與"管理員"角色相關(guān)聯(lián)。身份、角色和權(quán)限之間的關(guān)聯(lián)可以在角色儲存器424內(nèi)維護(hù)。角 色儲存器424也可以與策略API422接口連接。
[0027] 框架400還可包括用于各種不同種類的安全環(huán)境的策略實(shí)施點(diǎn)(PEP)。例如,框架 400可包括FGA PEP410和XACML PEP420。這些PEP集合中的每個(gè)可以與訪問賦權(quán)服務(wù)器 (access entitlement server)426接口連接。訪問賦權(quán)服務(wù)器426可包括用于多個(gè)不同類 型的PEP的多個(gè)類型的接口。訪問賦權(quán)服務(wù)器426可包括決策引擎428。決策引擎428是 上述統(tǒng)一策略決策引擎的示例。通過訪問賦權(quán)服務(wù)器426,F(xiàn)GA PEP 410和XACML PEP 420 可以訪問決策引擎428以判定所指定的訪問請求是否滿足所指定的策略。決策引擎428可 以進(jìn)行這種判定并且將判定結(jié)果返回到FGA PEP410和XACML PEP 420。然后,F(xiàn)GA PEP 410 和XACML PEP 420可以通過準(zhǔn)許或拒絕對所請求的資源的訪問來執(zhí)行決策引擎428所做出 的判定。在一實(shí)施例中,決策引擎428能夠評估上述規(guī)范策略格式中指定的策略。結(jié)果,決 策引擎428能夠評估包括來自不同類型授權(quán)環(huán)境(例如JPS、OAM等)的特征的策略,甚至能 評估包括來自多種不同類型的授權(quán)環(huán)境的組合的特征的策略。在一實(shí)施例中,訪問賦權(quán)服 務(wù)器426還可以與ID儲存器412接口連接以獲得身份信息,其可以用于判定具有指定身份 的用戶是否應(yīng)當(dāng)被準(zhǔn)許訪問指定資源。
[0028] 框架400還可包括JPS應(yīng)用客戶端412。JPS應(yīng)用客戶端412例如可以利用JAVA 編程語言實(shí)現(xiàn)。JPS應(yīng)用客戶端412可以使用JPS作為授權(quán)環(huán)境。這可以不同于FGA PEP 410和XACML PEP 420使用的授權(quán)環(huán)境種類。因此,框架400內(nèi)使用的授權(quán)環(huán)境可以在本質(zhì) 上是異構(gòu)的。JPS應(yīng)用客戶端可以與JAVA認(rèn)證和授權(quán)服務(wù)(JAAS )的擴(kuò)展版本(在框架400 中示為JAAS擴(kuò)展模塊414)接口連接。JAAS擴(kuò)展模塊414可以包括FGA提供者416和決策 引擎418。類似于決策引擎428,決策引擎418是上述統(tǒng)一策略決策引擎的示例。實(shí)際上,在 一實(shí)施例中,決策引擎418和決策引擎428可以是同一決策引擎的單獨(dú)實(shí)例(S卩,具有相同 的代碼基礎(chǔ)(code base))。FGA提供者416可以按與FGA PEP 410與訪問賦權(quán)服務(wù)器426 接口連接的方式類似的方式與訪問賦權(quán)服務(wù)器426接口連接。在一實(shí)施例中,JAAS擴(kuò)展模 塊414也可以與ID儲存器412接口連接。
[0029] 根據(jù)一實(shí)施例,JAAS擴(kuò)展模塊414可以定義具有可選的輸入主體、資源、動作和環(huán) 境屬性的用于完全細(xì)粒決策的基礎(chǔ)權(quán)限類;以及包括訪問決策(例如,允許、拒絕、不確定、 不適用)的輸出結(jié)果;狀態(tài)信息;和可選的指定義務(wù)。JAAS擴(kuò)展模塊可以是標(biāo)準(zhǔn)JAAS的擴(kuò) 展版本,其為用戶認(rèn)證方法提供登錄支持,并且擴(kuò)展JAVA權(quán)限機(jī)制以包括通過認(rèn)證了的用 戶身份來授權(quán)。
[0030] 框架400還可包括企業(yè)角色管理器430。在一實(shí)施例中,企業(yè)角色管理器430包 括用戶接口,企業(yè)管理員可通過其來創(chuàng)建和管理企業(yè)系統(tǒng)內(nèi)使用的角色。這樣的角色可以 儲存在角色儲存器424內(nèi),角色儲存器424可以用作企業(yè)系統(tǒng)內(nèi)定義的所有角色的儲存庫。 值得注意的是,利用企業(yè)角色管理器430定義的角色可以在上述組件中的任何組件使用的 策略中被引用,而與那些組件被設(shè)計(jì)來與之一起操作的特定種類的授權(quán)環(huán)境無關(guān)。
[0031] 框架400還可包括策略儲存器432。策略儲存器432是統(tǒng)一策略儲存器的示例。 策略儲存器432可以經(jīng)由API422訪問,從而管理員可以利用管理工具402、404和406創(chuàng)建 和管理策略。策略儲存器432還可被決策引擎418和428訪問,從而決策引擎418和428 可以判定儲存于其中的策略是否被通過FGA PEP 410、XACML PEP 420和JPS應(yīng)用客戶端 412進(jìn)來的訪問請求所滿足。注意,儲存于策略儲存器432中的策略可以以滿足統(tǒng)一策略方 案的規(guī)范格式儲存。該統(tǒng)一策略方案可以被設(shè)計(jì)為容許多種不同授權(quán)環(huán)境以及它們的下層 訪問控制模型所處理的策略特征。例如,在一實(shí)施例中,策略儲存器432可以儲存具有見于 MAC模型和DAC模型二者中的特征的策略。還例如,在一實(shí)施例中,策略儲存器432可以儲 存具有見于ABAC模型和RBAX模型二者中的特征的策略。因?yàn)閮Υ嬗诓呗詢Υ嫫?32中的 策略可以指定不同種類的授權(quán)環(huán)境中使用的特征,所以本發(fā)明的某些實(shí)施例可以允許設(shè) 計(jì)為在各種授權(quán)環(huán)境內(nèi)使用的PEP和應(yīng)用使用同一框架400。
[0032] 此外,由于儲存于策略儲存器432中的策略可以指定見于各種不同種類的訪問控 制模型中的特征,所以儲存于策略儲存器432中的策略可以本質(zhì)上是"混合型"的,從而單 個(gè)策略可以指定見于多個(gè)不同訪問控制模型中的特征。例如,滿足規(guī)范策略格式的單個(gè)策 略可以指定見于MAC、DAC、ABAC和RBAC模型中的每個(gè)中的特征。單個(gè)策略可包括基于角色 的特征以及可委托特征(delegation-capable feature)。單個(gè)策略可包括見于JPS授權(quán)環(huán) 境(但不一定見于OAM授權(quán)環(huán)境)的特征以及見于OAM授權(quán)環(huán)境(但不一定見于JPS授權(quán)環(huán) 境)的特征。
[0033] 根據(jù)本發(fā)明一實(shí)施例,全局策略可以與應(yīng)用特定策略(application-specific policy)共存于授權(quán)系統(tǒng)中。與全局策略不同,應(yīng)用特定策略有可能僅應(yīng)用到系統(tǒng)中的某 些指定應(yīng)用而非全部應(yīng)用。在本發(fā)明一實(shí)施例中,全局策略在運(yùn)行時(shí)存儲在高速緩存中作 為特殊應(yīng)用。對于系統(tǒng)接收到的每個(gè)授權(quán)請求,系統(tǒng)可以搜索全局應(yīng)用以尋找授予的角色。 系統(tǒng)可以評估全局策略以用于授權(quán)決策。系統(tǒng)可以將基于全局策略做出的授權(quán)決策與基于 應(yīng)用策略評估做出的其他決策合并。這種合并可以利用否定優(yōu)先(deny-override)算法技 術(shù)實(shí)現(xiàn)。使用這種技術(shù),"拒絕"決策推翻所有其他決策,不論該拒絕決策由全局策略還是應(yīng) 用策略產(chǎn)生。在一實(shí)施例中,共享的全局項(xiàng)(artifact)諸如全局資源類型可被所有應(yīng)用訪 問。
[0034] 圖5是框圖,示出根據(jù)本發(fā)明一實(shí)施例的公共策略管理框架500的示例。與圖5所 示的那些組件相比,本發(fā)明的替選實(shí)施例可包括附加的、更少的、或者不同的組件??蚣?00 可包括策略儲存器590和ID儲存器595。策略儲存器590可以功能上相當(dāng)于圖3的策略儲 存器332。ID儲存器595可以功能上相當(dāng)于圖3的ID儲存器312。適應(yīng)于各種不同類型授 權(quán)環(huán)境的組件可以都與策略儲存器590和ID儲存器595接口連接并訪問它們。例如,這樣 的組件可包括JPS應(yīng)用管理接口 502、FGA管理接口 504、XACML導(dǎo)入/導(dǎo)出模塊506、JPS應(yīng) 用運(yùn)行時(shí)530以及FGA運(yùn)行時(shí)560。JPS應(yīng)用管理接口 502可以功能上相當(dāng)于圖3的JPS 管理工具306。FGA管理接口 504可以功能上相當(dāng)于圖3的FGA管理工具304。FGA運(yùn)行時(shí) 560可以包括圖3的FGAPEP 310。JPS應(yīng)用運(yùn)行時(shí)530可以功能上相當(dāng)于圖3的JPS應(yīng)用 客戶端312中的一個(gè)或多個(gè)。組件502、504、506、530和560中的每個(gè)可以適應(yīng)于具有相關(guān) 聯(lián)的不同訪問控制模型的不同授權(quán)環(huán)境。例如,F(xiàn)GA運(yùn)行時(shí)560可以適應(yīng)于OAM類型的授 權(quán)環(huán)境,其具有見于OAM類型的授權(quán)環(huán)境中的訪問控制模型所提供的特征,而JPS應(yīng)用運(yùn)行 時(shí)530可以適應(yīng)于JPS類型的授權(quán)環(huán)境,其具有見于JPS類型的授權(quán)環(huán)境中的訪問控制模 型所提供的特征。根據(jù)一實(shí)施例,即使這些組件可以遵守且適應(yīng)異構(gòu)授權(quán)環(huán)境,框架500也 將允許這些組件中的全部利用同一策略儲存器590和ID儲存器595。
[0035] 在一實(shí)施例中,可以至少部分地歸因于每個(gè)組件的可用于與儲存器590和595接 口連接的非公共API的實(shí)施而產(chǎn)生使用同一策略儲存器590和ID儲存器595的該能力。 更特別地,每個(gè)組件可實(shí)施策略API以使得該組件與策略儲存器590接口連接,且每個(gè)組件 可實(shí)施用戶/角色API以使得該組件與ID儲存器595接口連接。如圖5所示,JPS應(yīng)用管 理接口 502可包括策略API 512 ;FGA管理接口 504可包括策略API 514 ;XACML導(dǎo)入/導(dǎo) 出模塊506可包括策略API 516 JPS應(yīng)用運(yùn)行時(shí)可包括決策引擎532的實(shí)例,其可包括策 略API 542 ;FGA運(yùn)行時(shí)560可包括決策引擎562的實(shí)例,其可包括策略API 572。每個(gè)策 略API 512、514、516、542和562可以是同一策略接口的單獨(dú)實(shí)施,具有相同的方法簽名、形 式參數(shù)、以及返回類型。此外,如圖5所示,JPS應(yīng)用管理接口 502可包括用戶/角色API 522 ;FGA管理接口 504可包括用戶/角色API 524 ;XACML導(dǎo)入/導(dǎo)出模塊506可包括用戶 /角色API 526 JPS應(yīng)用運(yùn)行時(shí)可包括決策引擎532的實(shí)例,其可包括用戶/角色API 552; FGA運(yùn)行時(shí)560可包括決策引擎562的實(shí)例,其可包括用戶/角色API 582。每個(gè)用戶/角 色API 522、524、526、552和582可以是同一用戶/角色接口的單獨(dú)實(shí)施,具有相同的方法 簽名、形式參數(shù)和返回類型。
[0036] 圖6是框圖,示出根據(jù)本發(fā)明一實(shí)施例的公共決策引擎和運(yùn)行時(shí)框架600的示例。 與圖6所示的那些組件相比,本發(fā)明的替選實(shí)施例可以包括附加的、更少的、或不同的組 件。框架600可包括XACML PEP 602、FGA PEP 604、JPS應(yīng)用客戶端606、JPS應(yīng)用客戶端 608、FGA訪問服務(wù)器630、遠(yuǎn)程JPS提供者628、本地/嵌入式擴(kuò)展JAAS提供者632、以及策 略儲存器646。策略儲存器646可以功能上相當(dāng)于圖3的策略儲存器332。FGA訪問服務(wù) 器630可包括XACML監(jiān)聽器610、JAAS擴(kuò)展遠(yuǎn)程方法調(diào)用(RMI)監(jiān)聽器612、JAAS擴(kuò)展模塊 614、以及決策引擎624。決策引擎624可以功能上相當(dāng)于圖3的決策引擎328。遠(yuǎn)程JPS 提供者628可包括JAAS擴(kuò)展模塊624和JAAS擴(kuò)展遠(yuǎn)程方法調(diào)用(RMI)提供者626。JAAS 擴(kuò)展RMI提供者628可與JAAS擴(kuò)展RMI監(jiān)聽器612接口連接。本地/嵌入式擴(kuò)展JAAS提 供者632可包括JAAS擴(kuò)展模塊634和決策引擎636。決策引擎636可以功能上相當(dāng)于圖3 的決策引擎328。
[0037] 決策引擎624和636每個(gè)可包括情境管理器(context manager):情境管理器616 和638。決策引擎624和636每個(gè)可包括與決策引擎的情境管理器接口連接的決策內(nèi)核: 決策內(nèi)核618和640。決策引擎624和636每個(gè)可包括與該決策引擎的決策內(nèi)核接口連接 的高速緩存管理器:高速緩存管理器620和642。決策引擎624和636每個(gè)可包括與該決 策引擎的高速緩存管理器接口連接的策略API:策略API 622和644。策略API 632和644 可以功能上相當(dāng)于圖3的策略API 322。策略API 632和644每個(gè)可以與策略儲存器646 接口連接。
[0038] XACML PEP 可與 XACML 監(jiān)聽器 610 接口連接。FGA PEP 604 可與 JAAS 擴(kuò)展 RMI 監(jiān) 聽器612接口連接。JPS應(yīng)用客戶端606可以與JAAS擴(kuò)展模塊624接口連接。JPS應(yīng)用客 戶端608可以與JAAS擴(kuò)展模塊634接口連接。于是,即使組件602、604、606和608能適應(yīng) 于具有不同訪問控制模型的特征的不同授權(quán)環(huán)境,組件602、604、606和608中的每個(gè)也能 基于儲存于策略儲存器646中的規(guī)范格式的策略來執(zhí)行授權(quán)功能。決策引擎624和636 可以是能夠評估這種規(guī)范格式策略的同一統(tǒng)一策略決策引擎的單獨(dú)實(shí)例。
[0039] 根據(jù)本發(fā)明一實(shí)施例,全局策略是特殊種類的應(yīng)用策略。全局策略可以用保留名 稱"GlobalPolicy"來標(biāo)識。在一實(shí)施例中,全局策略的角色、資源類型、內(nèi)建屬性和內(nèi)建函 數(shù)是所有應(yīng)用可見的,但是其他項(xiàng)不是。
[0040] 根據(jù)本發(fā)明一實(shí)施例,全局策略在任何其他應(yīng)用的分發(fā)之前分發(fā),因?yàn)閼?yīng)用中的 策略改變可涉及全局改變。在特定模式(所謂的受控模式)中,應(yīng)用被約束到安全模塊。與 這些安全模塊相反,全局策略可以是用于所有應(yīng)用的永久共享特殊應(yīng)用。全局策略不需要 被明確約束到安全模塊。在一實(shí)施例中,策略分發(fā)機(jī)制(policy distribution mechanism) 首先檢測是否存在任何全局策略改變。如果存在全局策略改變,則該機(jī)制向全部應(yīng)用分發(fā) 全局策略改變。在另一模式(所謂的不受控模式)中,全局策略被掃描,然后策略改變被加載 到運(yùn)行時(shí)高速緩存中。
[0041] 這里公開了用于管理應(yīng)用中使用的全局策略和全局策略項(xiàng)的技術(shù)。在一實(shí)施例 中,MAPI可以被定制以實(shí)現(xiàn)該管理。該技術(shù)的實(shí)施方式可包括遷移(migration)。該技術(shù) 的實(shí)施方式可包括對數(shù)據(jù)庫方案的改變。
[0042] 根據(jù)本發(fā)明一實(shí)施例,一些新穎的條目類型可以被增加到應(yīng)用策略以支持XACML 3.0。這樣的條目類型可包括例如策略集合和策略建議(policy advice)。
[0043] 根據(jù)本發(fā)明一實(shí)施例,全局策略被高速緩存在運(yùn)行時(shí)高速緩存中。這些全局策略 可以在運(yùn)行時(shí)事件到來時(shí)被更新。
[0044] 在本發(fā)明一實(shí)施例中,該系統(tǒng)防止了經(jīng)由PolicyStore. createApplicationPolicy方法來創(chuàng)建全局策略。在某些實(shí)施例中,全局策略是內(nèi) 建條帶(built-in stripe),其在安裝或更新系統(tǒng)時(shí)創(chuàng)建。在這種條件下,如果保留 名稱"GlobalPolicy" 在 PolicyStore. createApplicationPolicy 方法中傳遞,則 InvalidArgumentException 將被拋出。
[0045] 在本發(fā)明一實(shí)施例中,系統(tǒng)防止了通過 PolicyStore. deleteApplicationPolicy 方法來刪除全局策略。在該實(shí)施例中,如果保留名稱"GlobalPolicy"在PolicyStore. deleteApplicationPolicy 中傳遞,則 InvalidArgumentException 將被拋出。
[0046] 在本發(fā)明一實(shí)施例中,從策略儲存器獲得全局策略,策略儲存器實(shí)施為 PolicyStore對象。在一實(shí)施例中,?〇1;^5^1:〇16對象的接口包括命名為86七61(^31?〇1;^7 的方法,其可以被調(diào)用以獲得PolicyStore對象中儲存的全局策略。
[0047] 在本發(fā)明一實(shí)施例中,一種系統(tǒng)包括三個(gè)單獨(dú)的策略儲存器:可擴(kuò)展標(biāo)記語言 (XML)策略儲存器、輕量目錄訪問協(xié)議(LDAP)策略儲存器、以及數(shù)據(jù)庫策略儲存器。根據(jù)一 實(shí)施例,全局策略儲存在所有三個(gè)這樣的策略儲存器中,并且可以從他們中的任何一個(gè)訪 問。
[0048] 在本發(fā)明一實(shí)施例中,全局策略角色可以用作用于所有應(yīng)用的首要策略。利用 XACML 3.0,全局角色可以用于規(guī)則(rule)和策略集合(policy set)中。應(yīng)用可以重定義 相同名稱的角色,因?yàn)槊總€(gè)角色條目具有應(yīng)用標(biāo)識符以標(biāo)識其范圍。在一實(shí)施例中,系統(tǒng)防 止了全局角色參與到應(yīng)用范圍內(nèi)的角色層級(role hierarchy)中。在一實(shí)施例中,系統(tǒng)防 止了 GrantManager對象的授權(quán)方法使全局角色在應(yīng)用范圍中成為承授者。在一實(shí)施例中, 系統(tǒng)防止全局角色成為應(yīng)用角色映射策略的一部分。在一實(shí)施例中,如果全局角色正被用 于所有應(yīng)用中,則系統(tǒng)防止全局角色的級聯(lián)刪除(例如,使操作失敗)。這樣使得用戶不會關(guān) 于哪個(gè)應(yīng)用已經(jīng)被隱式改變感到困惑。在一實(shí)施例中,系統(tǒng)不會自動對改變了的應(yīng)用執(zhí)行 分發(fā),因?yàn)橛锌赡苡脩粽诟淖儜?yīng)用而未準(zhǔn)備對該應(yīng)用執(zhí)行分發(fā)。
[0049] 在本發(fā)明一實(shí)施例中,全局策略中定義的資源類型可以用于實(shí)例化所有應(yīng)用 中的資源或資源名稱表達(dá)對象。全局資源類型可以與新創(chuàng)建的資源或資源名稱表達(dá) (expression)-起用于權(quán)限集合、策略和角色策略中。在一實(shí)施例中,系統(tǒng)防止應(yīng)用重新 定義相同名稱的資源類型。如上所述,在一實(shí)施例中,如果任何應(yīng)用中正在使用全局資源類 型,則系統(tǒng)使級聯(lián)刪除該全局資源類型的嘗試失敗。在一實(shí)施例中,系統(tǒng)不會自動對改變了 的應(yīng)用進(jìn)行分發(fā),因?yàn)橛锌赡苡脩粽诟淖儜?yīng)用而未準(zhǔn)備對該應(yīng)用執(zhí)行分發(fā)。
[0050] 在本發(fā)明一實(shí)施例中,內(nèi)建屬性僅定義在全局策略中。應(yīng)用本身不定義內(nèi)建屬性, 而是替代地使用全局策略的屬性。
[0051] 在本發(fā)明一實(shí)施例中,未內(nèi)建的且定義在全局策略中的其他屬性可以被所有應(yīng)用 使用。例如,如果應(yīng)用基于具有資源屬性的全局資源類型定義資源,那么當(dāng)定義關(guān)于該資源 的策略時(shí)可以使用全局屬性。在一實(shí)施例中,如果任何應(yīng)用具有相同名稱的屬性,則系統(tǒng)使 創(chuàng)建全局屬性的嘗試失敗。類似地,在一實(shí)施例中,如果全局策略具有相同名稱的屬性,則 系統(tǒng)將使在應(yīng)用中創(chuàng)建屬性的嘗試失敗。在一實(shí)施例中,如果任何應(yīng)用中正在使用全局屬 性,則系統(tǒng)使刪除該屬性的嘗試失敗。
[0052] 在本發(fā)明一實(shí)施例中,內(nèi)建函數(shù)僅定義在全局策略中,而不在應(yīng)用特定的策略中。 應(yīng)用本身不定義內(nèi)建函數(shù),而是代替地使用全局策略定義的內(nèi)建函數(shù)。在一實(shí)施例中,系統(tǒng) 防止不是內(nèi)建函數(shù)但是定義于全局策略中的其他函數(shù)被所有應(yīng)用訪問。每個(gè)應(yīng)用可具有其 自己的應(yīng)用特定的屬性,其不是內(nèi)建的。
[0053] 在本發(fā)明一實(shí)施例中,全局項(xiàng)諸如全局資源類型可以被刪除。特定全局資源類型 可以用在兩個(gè)或更多應(yīng)用中。在本發(fā)明一實(shí)施例中,關(guān)于一應(yīng)用的全局資源類型的刪除不 導(dǎo)致關(guān)于任何其他應(yīng)用的全局資源類型被刪除。資源類型很少被刪除。當(dāng)資源類型被刪除 時(shí),改變可能是破壞性的。在某些情況下,多個(gè)應(yīng)用可以重復(fù)使用相同資源類型。這種情況 下資源類型的刪除將有效抹除所有應(yīng)用中的所有策略和授權(quán)。在一實(shí)施例中,全局角色刪 除可通過創(chuàng)建"拒絕"全局角色策略來被仿真,同時(shí)等候?qū)Ρ粍h除的角色的引用的去除。
[0054] 在某些情況下,全局策略的方法可以被棄用。在本發(fā)明一實(shí)施例中,對于棄用的 全局策略方法,不拋出異常(exception)。這最小化了常規(guī)應(yīng)用策略和全局應(yīng)用策略之間的 差異。全局策略可以被相同的常規(guī)應(yīng)用策略實(shí)現(xiàn)(implementation)所管理。棄用的方法 可以被隱藏以防止使用它們。
[0055] 在本發(fā)明一實(shí)施例中,全局項(xiàng)諸如全局資源類型可僅由具有足夠查看權(quán)限的實(shí)體 來訪問。在一實(shí)施例中,系統(tǒng)管理員能夠授予系統(tǒng)用戶針對全局資源類型特定的查看權(quán)限。 該特征可有助于防止未授權(quán)用戶訪問全局角色和其他全局項(xiàng)。在一實(shí)施例中,策略儲存器 管理員能夠查看全局策略項(xiàng)。該能力可以通過權(quán)限方法內(nèi)的邏輯來實(shí)施。例如,這樣的邏 輯可以是如下形式:
[0056] if ((perm.app. equals ("GLOBAL")&&(perm, action, equals("VIEW")) return true 〇
[0057] 在一實(shí)施例中,全局策略也被管理策略保護(hù),類似于管理策略保護(hù)普通的應(yīng)用特 定策略的方式。
[0058] 在一實(shí)施例中,全局策略可以按與普通的應(yīng)用特定策略可以被審計(jì)的方式相同的 方式被審計(jì)。
[0059] 在一實(shí)施例中,在新安裝期間,針對安裝創(chuàng)建全局策略。內(nèi)建屬性和函數(shù)可以在全 局策略中創(chuàng)建。在升級安裝期間,也針對安裝創(chuàng)建全局策略。內(nèi)建屬性和函數(shù)可以創(chuàng)建在 全局策略中。內(nèi)建屬性和函數(shù)被從所有應(yīng)用去除,因?yàn)樗鼈儍H定義在全局策略中。用于數(shù) 據(jù)庫策略儲存器和LDAP策略儲存器的升級工具可以將策略儲存器版本升級到表明全局策 略得到支持的新值。在一實(shí)施例中,XML策略儲存器沒有策略儲存器版本屬性。
[0060] 一般地,XML策略儲存器不用于大型策略數(shù)據(jù)或許多應(yīng)用。因?yàn)閄ML數(shù)據(jù)管理器可 經(jīng)由"for循環(huán)"執(zhí)行查詢,所以當(dāng)處理大數(shù)據(jù)時(shí)會出現(xiàn)性能問題。例如,如果有許多應(yīng)用, 刪除資源類型會是耗時(shí)的操作,因?yàn)樗袘?yīng)用的資源(包括應(yīng)用級和所有策略域級的)可能 被搜索以尋找資源類型引用。
[0061] 在一實(shí)施例中,目錄信息樹(DIT)被修改以支持三種PolicyStore (XML、LDAP和 數(shù)據(jù)庫)中的每個(gè)中的GlobalPolicy對象。圖1是框圖,示出根據(jù)本發(fā)明一實(shí)施例的包括 全局策略的DIT的示例。如圖1所示,全局策略具有與普通應(yīng)用"應(yīng)用1"相同的DIT。全 局策略由恒定名稱"GlobalPolicy"標(biāo)識。終端用戶不需要知曉該文字,因?yàn)槿植呗酝ㄟ^ 特殊方法getGlobalPolicy返回,這將在下面進(jìn)一步詳細(xì)地論述。
[0062] 在一實(shí)施例中,全局策略的策略項(xiàng)可以與所有應(yīng)用共享。然而,這可能使MAPI維 護(hù)引用關(guān)系變得復(fù)雜。在一替選實(shí)施例中,全局策略的角色、資源類型、內(nèi)建屬性和內(nèi)建函 數(shù)對于應(yīng)用可見。在這樣的替選實(shí)施例中,全局策略的其他方面對于應(yīng)用不可見。
[0063] 在一實(shí)施例中,全局策略角色可以作為策略中的首要策略用于所有應(yīng)用。在一實(shí) 施例中,利用XACML 3.0,全局角色也可以用在規(guī)則和策略集合中。在一實(shí)施例中,系統(tǒng)防 止全局角色參與到應(yīng)用范圍內(nèi)的角色層級(role hierarchy)中。在一實(shí)施例中,系統(tǒng)防止 GrantManager使全局角色成為應(yīng)用范圍中的承授者。在一實(shí)施例中,系統(tǒng)防止全局角色成 為應(yīng)用角色映射策略的一部分。每個(gè)PrincipalEntry對象可具有應(yīng)用標(biāo)識符,使得可以識 別角色是否是全局的。因此,在一實(shí)施例中,全局角色和應(yīng)用級角色二者可具有相同的名 稱。在一實(shí)施例中,如果任何應(yīng)用中正在使用全局角色,則系統(tǒng)使級聯(lián)刪除全局角色的嘗試 失敗。在一實(shí)施例中,系統(tǒng)不會自動對改變了的應(yīng)用執(zhí)行分發(fā),因?yàn)橛锌赡苡脩粽诟淖儜?yīng) 用而未準(zhǔn)備對該應(yīng)用執(zhí)行分發(fā)。
[0064] 在一實(shí)施例中,全局資源類型可在系統(tǒng)中的應(yīng)用之間共享。全局資源類型可以由 所有應(yīng)用使用以在應(yīng)用級定義資源和資源名稱表達(dá)。全局資源類型可以與新創(chuàng)建的資源或 資源名稱表達(dá)一起用在權(quán)限集合、策略和角色策略中。由于資源類型不在任何其他地方單 獨(dú)使用,所以根據(jù)一實(shí)施例,當(dāng)刪除全局資源類型時(shí),系統(tǒng)檢查是否有全局資源類型定義的 任何資源或資源名稱表達(dá)。類似于權(quán)限集合和策略,另一些應(yīng)用項(xiàng)無需被搜索。如果全局 資源類型正被用于應(yīng)用中,則系統(tǒng)使刪除嘗試失敗。
[0065] 在一實(shí)施例中,全局資源類型不具有與應(yīng)用的資源類型相同的名稱。因此,如果在 任何應(yīng)用中有相同名稱的資源類型,則系統(tǒng)將防止創(chuàng)建全局資源類型。如果全局策略中已 經(jīng)定義了相同名稱的資源類型,則系統(tǒng)將防止在應(yīng)用中創(chuàng)建資源類型。
[0066] 在一實(shí)施例中,如果資源類型處于使用中,則系統(tǒng)防止其名稱、動作、動作定界符 以及isHierarchical屬性被修改。該邏輯確保已有的修改方法對于全局策略有效。如果 當(dāng)前應(yīng)用是GlobalPolicy,那么所有應(yīng)用被搜索以檢查是否有任何引用資源或資源名稱表 達(dá)。如果發(fā)現(xiàn)了引用資源或資源名稱表達(dá),那么可拋出帶有資源或資源名稱表達(dá)以及相關(guān) 應(yīng)用名稱的異常。
[0067] 在一實(shí)施例中,當(dāng)創(chuàng)建資源或資源名稱表達(dá)時(shí),系統(tǒng)可以檢查該資源類型是否 存在。為了支持全局資源類型,系統(tǒng)邏輯可以被增強(qiáng)以搜索當(dāng)前應(yīng)用策略和全局策略 二者。因?yàn)槿仲Y源類型可以用在所有應(yīng)用中,所以該新方法不需要請求任何權(quán)限檢 查。如果一實(shí)體具有查詢應(yīng)用中的資源類型的權(quán)限,那么該實(shí)體被允許查詢?nèi)植呗?中的資源類型。當(dāng)創(chuàng)建權(quán)限或策略或者類似的項(xiàng)時(shí),方法ResourceTypeManagerImpl. getResourceTypelnTransaction可以被調(diào)用。因此,類似的邏輯可以被實(shí)施。資源類型可 能存在的所有地方都被檢查。
[0068] 在一些系統(tǒng)中,可以在創(chuàng)建ApplicationPolicy時(shí)創(chuàng)建內(nèi)建屬性。結(jié)果,每個(gè)應(yīng)用 具有其內(nèi)建屬性的拷貝。這可在策略儲存器中導(dǎo)致冗余數(shù)據(jù)。在一實(shí)施例中,對于全局策 略,所有內(nèi)建屬性可以創(chuàng)建在該全局策略中。普通應(yīng)用將不需要儲存其本身中的內(nèi)建屬性 的拷貝。
[0069] 在一實(shí)施例中,為了獲得內(nèi)建屬性,普通應(yīng)用可使用ExtensionManager來在全局 策略中找到它。在這些情況下不要求查看全局屬性的權(quán)限。從用戶的角度來看,內(nèi)建屬性完 全從應(yīng)用范圍取得。在一實(shí)施例中,系統(tǒng)防止內(nèi)建屬性被ExtensionManager創(chuàng)建或刪除。 該行為對于全局內(nèi)建屬性有效。
[0070] 在一實(shí)施例中,在應(yīng)用中創(chuàng)建屬性導(dǎo)致系統(tǒng)檢查在全局策略中是否有相同名稱的 屬性;在全局策略中創(chuàng)建屬性導(dǎo)致系統(tǒng)檢查在任何應(yīng)用中是否存在相同名稱的屬性。在一 實(shí)施例中,刪除全局屬性導(dǎo)致系統(tǒng)檢查該屬性是否正被用于任何應(yīng)用中。如果是,則系統(tǒng)導(dǎo) 致刪除操縱失敗,并且拋出異常以表明哪里正在使用它。應(yīng)用特定的屬性可以被刪除。
[0071] 在一實(shí)施例中,當(dāng)策略被創(chuàng)建時(shí),系統(tǒng)可以使屬性生效。由于全局屬性可以用在應(yīng) 用策略中,所以系統(tǒng)檢查屬性是否存在于全局策略和當(dāng)前應(yīng)用的策略二者中。
[0072] 在一些系統(tǒng)中,當(dāng)ApplicationPolicy被創(chuàng)建時(shí),倉ij建內(nèi)建函數(shù)。結(jié)果,每個(gè)應(yīng)用 具有內(nèi)建函數(shù)的單獨(dú)拷貝。這使得策略儲存器中的數(shù)據(jù)是冗余的。在一實(shí)施例中,所有內(nèi) 建函數(shù)都被創(chuàng)建在全局策略中。普通應(yīng)用不需要在其本身中儲存內(nèi)建函數(shù)的拷貝。
[0073] 在一實(shí)施例中,普通應(yīng)用在獲取內(nèi)建函數(shù)時(shí)可以使用ExtensionManager以在全 局策略中尋找該函數(shù)。在一實(shí)施例中,不需要查看全局函數(shù)的權(quán)限以執(zhí)行該操作。從用戶 的角度看,內(nèi)建函數(shù)完全從應(yīng)用范圍取得。
[0074] 在一些系統(tǒng)中,內(nèi)建函數(shù)不能被ExtensionManager創(chuàng)建和刪除。在一實(shí)施例中, ExtensionManager可以創(chuàng)建和刪除全局內(nèi)建函數(shù)。
[0075] 在一實(shí)施例中,PolicyStore對象包括新方法。接口示于下面。
【權(quán)利要求】
1. 一種計(jì)算機(jī)實(shí)施的方法,包括: 定義全局策略,其包括由多個(gè)應(yīng)用共享的規(guī)則; 定義多個(gè)應(yīng)用特定策略,其包括用于個(gè)體應(yīng)用的規(guī)則; 基于所述全局策略和第一應(yīng)用特定策略判定第一應(yīng)用是否被允許訪問特定資源;W及 基于所述全局策略和第二應(yīng)用特定策略判定第二應(yīng)用是否被允許訪問所述特定資源。
2. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)施的方法,還包括: 響應(yīng)于判定所述全局策略或所述第一應(yīng)用特定策略不允許所述第一應(yīng)用訪問所述特 定資源,拒絕所述第一應(yīng)用訪問所述特定資源。
3. 如權(quán)利要求1或2所述的計(jì)算機(jī)實(shí)施的方法,還包括: 響應(yīng)于判定所述全局策略或所述第二應(yīng)用特定策略不允許所述第二應(yīng)用訪問所述特 定資源,拒絕所述第二應(yīng)用訪問所述特定資源。
4. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)施的方法,還包括: 響應(yīng)于判定所述全局策略和所述第一應(yīng)用特定策略二者都允許所述第一應(yīng)用訪問所 述特定資源,允許所述第一應(yīng)用訪問所述特定資源。
5. 如權(quán)利要求1或4所述的計(jì)算機(jī)實(shí)施的方法,還包括: 響應(yīng)于判定所述全局策略和所述第二應(yīng)用特定策略二者都允許所述第二應(yīng)用訪問所 述特定資源,允許所述第二應(yīng)用訪問所述特定資源。
6. -種設(shè)備,包括: 用于定義全局策略的裝置,該全局策略包括由多個(gè)應(yīng)用共享的規(guī)則; 用于定義多個(gè)應(yīng)用特定策略的裝置,該應(yīng)用特定策略包括用于個(gè)體應(yīng)用的規(guī)則; 用于基于所述全局策略和第一應(yīng)用特定策略判定第一應(yīng)用是否被允許訪問特定資源 的裝置擬及 用于基于所述全局策略和第二應(yīng)用特定策略判定第二應(yīng)用是否被允許訪問所述特定 資源的裝置。
7. 如權(quán)利要求6所述的設(shè)備,還包括: 用于響應(yīng)于判定所述全局策略或所述第一應(yīng)用特定策略不允許所述第一應(yīng)用訪問所 述特定資源,拒絕所述第一應(yīng)用訪問所述特定資源的裝置。
8. 如權(quán)利要求6或7所述的設(shè)備,還包括: 用于響應(yīng)于判定所述全局策略或所述第二應(yīng)用特定策略不允許所述第二應(yīng)用訪問所 述特定資源,拒絕所述第二應(yīng)用訪問所述特定資源的裝置。
9. 如權(quán)利要求6所述的設(shè)備,還包括: 用于響應(yīng)于判定所述全局策略和所述第一應(yīng)用特定策略二者都允許所述第一應(yīng)用訪 問所述特定資源,允許所述第一應(yīng)用訪問所述特定資源的裝置。
10. 如權(quán)利要求6或9所述的設(shè)備,還包括: 用于響應(yīng)于判定所述全局策略和所述第二應(yīng)用特定策略二者都允許所述第二應(yīng)用訪 問所述特定資源,允許所述第二應(yīng)用訪問所述特定資源的裝置。
【文檔編號】G06F21/57GK104462982SQ201310416780
【公開日】2015年3月25日 申請日期:2013年9月13日 優(yōu)先權(quán)日:2013年9月13日
【發(fā)明者】S·V·維帕, H·薩斯特里, 曹玉龍, 丁文芳 申請人:甲骨文國際公司