授權高速緩存的制作方法
【專利摘要】本文公開的示例性實施例涉及實現授權高速緩存?;谠S可來確定授權事實。授權事實被高速緩存。許可被撤銷?;谠S可索引來撤銷授權事實。
【專利說明】授權高速緩存
【背景技術】
[0001] 計算設備可使用來自其它設備的各種服務和/或資源。例如,計算設備可使用來 自其它設備的存儲資源、處理資源等。授權方法可被實現來確定計算設備是否被授權來使 用資源和/或服務。
【專利附圖】
【附圖說明】
[0002] 下面的詳細描述參考附圖,其中: 圖1A是根據一個例子的用于使用高速緩存方法來實現對客戶端使用資源和/或服務 的授權的計算系統(tǒng)的方框圖; 圖1B是根據一個例子的能夠使用高速緩存方法來確定對客戶端使用資源和/或服務 的授權的授權平臺的方框圖; 圖2是根據一個例子的基于高速緩存方法來實現對客戶端使用儲存器的授權的計算 系統(tǒng)的方框圖; 圖3是根據一個例子的用于基于高速緩存模型來撤銷授權事實的方法的流程圖; 圖4是根據一個例子的用于向客戶端提供授權事實已被撤銷的通知的方法的流程圖; 圖5是根據一個例子的能夠使用事實高速緩存方法來確定對客戶端的資源的授權的 計算設備的方框圖。
【具體實施方式】
[0003] 服務和/或資源可被提供給客戶端。用于實現服務和/或資源的授權的基礎設施 可基于一組規(guī)則和許可。在某些例子中,資源是在計算系統(tǒng)中的具有有限可用性的物理或 虛擬部件。此外,在某些例子中,服務、儲存器、網絡連接、存儲區(qū)域、對象等可被考慮為資 源。在整個描述中,提供了針對資源的各種例子,然而,設想用于授權實現的其它使用。
[0004] 在一些例子中,資源可被實現為云計算基礎設施。為了安全目的,云計算基礎設施 可限制應被提供對相應的資源的訪問的實體(例如用戶、設備、過程等)對一個或多個資源 的訪問。基礎設施將確定相應的實體是否具有使用實體請求訪問的特定資源或對象的授 權。授權可基于請求實體、正被訪問的資源和調用實體希望使用資源的操作或方式。這可 通過使用權限的一組規(guī)則和許可調用授權邏輯證明程序來實現。
[0005] 在某些實施例中,授權邏輯證明程序是可用于確定實體E是否具有對資源R執(zhí)行 功能(例如使用、讀取、寫入、刪除等)的授權A的服務??苫谝粋€或多個查詢來證明授權, 所述查詢基于一個或多個規(guī)則和/或一個或多個許可。在某些實施例中,許可代表發(fā)布方 對主體的授權的允許。許可可存儲在數據庫中,并可用于例如使用證明程序認證邏輯的一 個或多個規(guī)則來證明另一主體應被提供授權。在這種場景下,發(fā)布方可以是資源和/或與 資源相關的另一管理員。主體可以是實體。授權的許可可以針對主體。此外,在某些場景 下,授權的許可可包括例如委托權限以能夠對另一實體許可授權和/或委托權限。規(guī)則可 用于確定實體是否應基于許可來接收權限。
[0006] 證明程序認證邏輯可頻繁地被調用(例如每當資源被訪問時,周期性地,每當會話 被創(chuàng)建時,等等),因此證明程序認證邏輯是有效的是合乎期望的。此外,授權檢查的結果也 應是最新的,具有一組當前的許可以確保適當的安全性。此外,實現按比例支持多個實體和 頻繁的更新將是合乎期望的。
[0007] 因此,本文討論的各種實施例涉及關于基于規(guī)則和許可的授權的高速緩存事實。 為了說明許可中的變化,授權高速緩存可基于對許可的變化而更新。因此,許可索引可被維 持以記錄在授權事實的證明中使用的許可。在一個例子中,使用許可的發(fā)布方的散列、許可 條款本身和/或許可的主體在許可索引中識別許可。在某些例子中,許可條款是識別許可 的類型(例如訪問類型、訪問限制、授權的委托、讀訪問、寫訪問、修改訪問、其組合等)的邏 輯的數據集。許可索引可使許可與依賴于它們的授權事實相關。因此,當許可被撤銷時,許 可可從索引移除并通知與高速緩存相關的授權平臺授權事實應不再被信任。授權平臺可接 著基于該通知來采取行動。在一個例子中,授權被撤銷。在另一例子中,授權平臺可試圖重 新證明授權事實。在一種場景下,授權事實沒有被證明且授權事實被撤銷。在另一場景下, 可使用另一組許可和/或規(guī)則來證明授權事實。
[0008] 示例性規(guī)則包括,如果對主體S有來自發(fā)布方I的授權A的直接許可,則主體S是 否具有來自發(fā)布方I的授權A的授權查詢可被證明。另一示例性規(guī)則是發(fā)布方I信任自身 的自我信任規(guī)則。此外,委托規(guī)則可適用。例如,如果I將授權A授權給主體J且J將A授權 給主體K,則查詢可推斷出I將A授權給K。因此,如果hasAuth (I,J,A)和hasAuth (J,Κ,A) 被證明,則hasAuth(I,K,A)的查詢可被證明。這些可使用許可來被證明。在這些場景下, hasAuth (發(fā)布方,主體,授權)可以是可被調用來確定發(fā)布方是否將授權授權給主體的函 數或過程。該函數可證明或反駁查詢。這里提供的規(guī)則用于示例性目的,因此,額外或不同 的規(guī)則可被創(chuàng)建和/或使用。
[0009] 此外,如果組或名稱N被許可作為變體的授權,則組或名稱的成員也具有授權。 因此,授權的許可可被提供到組,其可被考慮為在證明期間的變體。在一個例子中,如果 hasAuth(I,S,N)為真且 hasAuth(I,N,A)為真,則 hasAuth(I,S,A)被證明,其中 N 是組的 名稱。此外,規(guī)則可包括,實體可賦予屬于實體的組或賦予屬于實體的特性。因此,基于特 性是不可被委托的授權的規(guī)則來證明hasAuth(I, J,prop(J,…))。在這里,prop(J,…)代 表關于所有者(J)的一個或多個特性。這些規(guī)則和/或其它規(guī)則中的一個或多個可應用于 證明授權。在某些例子中,特性可以是關于發(fā)布方的不能被委托的為真的某些事物(例如名 稱、標識符、程序的散列碼等)。
[0010] 圖1A是根據一個例子的用于使用高速緩存方法來實現對客戶端使用資源和/ 或服務的授權的計算系統(tǒng)的方框圖。系統(tǒng)1〇〇可包括經由通信網絡108與客戶端平臺 104a-104h和/或客戶端設備106a-106h通信的授權平臺102。在某些例子中,授權平臺 102a、客戶端平臺104a-104h和/或客戶端設備106a-106h是計算設備,例如服務器、客戶 端計算機、臺式計算機、移動計算機等。在某些例子中,這些設備可經由處理元件、存儲器和 /或其它部件來實現。
[0011] 在一個例子中,授權平臺l〇2a包括授權模塊120、事實高速緩存模塊122、事實索 引模塊124和許可索引模塊126。在另一例子中,如圖1B所示,授權平臺102b還可包括許 可模塊128、許可計數模塊130、處理器140和存儲器142。如在本文詳述的,授權平臺102 可使用高速緩存方法來確定對客戶端使用資源和/或服務的授權。如所提到的,授權平臺 102可以是服務器、工作站、筆記本計算機或能夠確定并對授權事實進行高速緩存的任何其 它計算設備。處理器140可以是CPU、GPU或適合于獲取和執(zhí)行指令的微處理器和/或配置 成執(zhí)行本文描述的模塊120-130中的任一個的功能的電子電路??蛻舳似脚_104和客戶端 設備106還可包括可由指令的執(zhí)行和/或電子電路實現的各種模塊。
[0012] 在某些例子中,客戶端平臺104是可使用授權事實的設備。客戶端平臺104的例子 包括管理資源和/或服務的設備。因此,客戶端平臺104可以是例如促進訪問一個或多個 存儲體的存儲管理器平臺。在其它例子中,客戶端平臺104可以是促進訪問過程、存儲器、 處理力等的資源管理器。
[0013] 在某些實施例中,授權事實代表主體的已證明授權,該主體例如請求資源的使用 的實體。已證明授權可包括對一個或多個資源以及使用類型(例如讀訪問、寫訪問、修改、連 接等)的識別。此外,條款可代表邏輯規(guī)則??墒褂米C明程序認證邏輯來證明已證明授權。 此外,授權事實可使用事實高速緩存模塊124存儲在高速緩存中。
[0014] 授權模塊120可用于確定一個或多個授權事實。每個授權事實可基于對相應主體 的分別與相應發(fā)布方相關的一個或多個許可。當授權事實被確定時,授權事實可通過授權 項被編索引。因此,在某些例子中,授權項是可用于識別授權事實的標識符。在某些例子中, 授權項可包括關于發(fā)布方、主體和授權的標識符??墒褂蒙⒘蟹椒▉韺崿F索引。而且,在一 些例子中,發(fā)布方可以是資源的管理者,主體可以是請求對資源的使用的實體,且授權可包 括使用類型。
[0015] 當證明授權時,可創(chuàng)建對高速緩存的授權事實。授權可經由例如Prolog的編程語 言的證明程序類由例如證明程序證明。證明程序可以是函數、類或可由處理器執(zhí)行來基于 一個或多個許可確定主體是否具有特定的授權的其它過程。此外,證明程序可位于授權平 臺102處和/或在另一設備上實現,并返回關于與潛在授權事實有關的查詢是否為真的信 息。在一個例子中,在證明期間,主體是不包括任何變體的基本項(ground term)。因此, 由主體進行查找發(fā)現對同一主體的許可。然而,許可可包括主體中的變體(例如,發(fā)布方可 向特定組的所有用戶、使用特定的計算設備的實體等許可對存儲文件的訪問)。因此,這種 類型的編索引不需要保證特定的許可將被發(fā)現。證明程序也可在查找許可之前通過用變體 (例如主體所屬于的組)代替子項來一般化主體。證明程序可以是客戶端平臺104、授權平 臺102或另一設備的部分。
[0016] 當授權事實被確定時,事實高速緩存模塊122可對授權事實進行高速緩存。在證 明中使用的許可的列表可被記錄并存儲在因而產生的授權事實中的數據結構(例如列表) 中。授權事實可存儲在數據庫中并被編索引。授權事實也可被添加到在每個許可中的列表, 其根據相應的許可來記錄授權事實。此外,授權事實可包括回調列表,客戶端平臺104可向 該回調列表登記。因此,當已撤銷授權事實時,可通知客戶端平臺104。
[0017] 而且,事實索引模塊124可用于實現基于授權事實編索引的事實索引。如所提到 的,授權事實可通過授權項被編索引。在某些實施例中,索引可使用散列方案來實現,其中 授權項可用作通向索引的一部分的關鍵字。事實索引可對每個授權事實包括關于相應的發(fā) 布方、相應的主體和授權的信息。
[0018] 許可索引模塊126可用于實現許可的許可索引。許可索引可對每個許可包括相應 的發(fā)布方、相應的許可和相應的主體。散列表可用于實現索引的使用。此外,在某些實施例 中,基于發(fā)布方、主體和/或許可條款本身來對許可進行散列。
[0019] 許可模塊128可用于確定許可的存在。在一個例子中,許可模塊128可通過從發(fā) 布方或另一信任源接收授權信息來確定許可的存在。在某些實施例中,許可可用作分布式 系統(tǒng)。因此,在某些場景下,當許可由發(fā)布方許可時,許可條款信息可被發(fā)送到授權平臺102 以存儲在許可索引中。在一些實施例中,可使用多個許可模塊128。此外,可在各種位置處 實現許可模塊128。例如,提供許可的資源或發(fā)布方或促進對資源的訪問的管理器可包括 創(chuàng)建許可以向主體許可權限的模塊。在另一例子中,許可模塊128可位于授權平臺102處。 授權平臺102可使用例如通信模塊(未示出)從許可模塊128接收信息。該信息可用于幫助 實現許可索引。
[0020] 當許可被撤銷時,基于許可的授權事實也可被撤銷。在某些實施例中,如果與許可 相關的每個許可條款不再是有效的,則許可被考慮為被撤銷。當這出現時,證明可能失敗, 然而基于不同組的許可,授權事實仍然可能為真。因此,如果與相應的授權事實相關的許可 被撤銷,則事實高速緩存模塊122可撤銷授權事實。
[0021] 在某些實施例中,許可可與多個等效的許可條款相關。當許可模塊128確定許可 時,許可計數模塊130可基于相關的許可條款來確定該許可是否等效于另一許可。這可通 過許可索引模塊126使用許可條款的散列查找許可條款來完成。如果另一許可等效于該許 可,則與另一許可相關的參考計數遞增。如果在許可索引中沒有等效的許可條款,則新的條 目在索引中,例如在散列表中產生,且參考計數值被設置(例如設置為1)。在某些實施例中, 如果發(fā)布方、主體和許可條款是相同的,則兩個許可可被考慮為等效的。在某些例子中,主 體可以是變體。如果主體是變體,則如果兩個主體中的變體是相同的,那么兩個許可被考慮 是等效的。
[0022] 當許可模塊128確定撤銷許可(例如該許可)時,與等效許可相關的參考計數由許 可索引模塊126遞減。如果當許可條款被撤銷時相應的參考計數減小到閾值的值(例如0), 則許可可被考慮為被撤銷,因為它指示每個等效許可條款被撤銷。參考計數的優(yōu)點是確保 等效許可在索引/散列表中被表示一次。此外,許可條款被收回與在它被移除之前它被斷 言一樣多的次數。如果發(fā)布方提供相同的許可多次(例如基于單獨的請求或登錄),則參考 計數可被使用。
[0023] 當撤銷許可時,可從許可索引刪除許可。此外,當許可被刪除時,在許可索引中被 列出為依賴于該許可的每個授權事實也被撤銷。如所提到的,許可索引可包括關于取決于 相應的許可的授權事實的信息。
[0024] 當撤銷授權事實時,使用客戶端的回調列表來通知例如客戶端平臺104的任何客 戶端??蛻舳似脚_104可接著基于該通知來限制對相關實體的訪問。
[0025] 此外,在某些實施例中,當授權事實被撤銷時,證明程序可被實現以確定另一證明 是否是有效的。如果另一許可鏈可用于證明授權事實,則這可出現。在一些例子中,這可在 授權事實被撤銷之前出現。在其它例子中,這可在授權事實被撤銷且客戶端平臺104被通 知之后出現。
[0026] 如在本文詳述的,授權平臺102可包括用于基于許可的撤銷來撤銷高速緩存中的 授權事實的一系列模塊 120、122、124、126、128、130。模塊 120、122、124、126、128、130 中的 每個可包括例如硬件設備,其包括用于實現本文描述的功能的電子電路。附加地或作為替 代,每個模塊可被實現為在例如存儲器142的機器可讀存儲介質上被編碼并由處理器140 可執(zhí)行的一系列指令。應注意,在一些實施例中,一些模塊被實現為硬件設備,而其它模塊 被實現為可執(zhí)行指令。
[0027] 通信網絡108可使用有線通信、無線通信或其組合。此外,通信網絡108可包括 多個子通信網絡,例如數據網絡、無線網絡、電話網絡等。這樣的網絡可包括例如公共數據 網絡,例如因特網、局域網(LAN)、廣域網(WAN)、城域網(MAN)、電纜網絡、光纖網絡、其組合 等。在某些例子中,無線網絡可包括蜂窩網絡、衛(wèi)星通信、無線LAN等。此外,通信網絡108 可以為在兩個設備之間的直接網絡鏈路的形式。各種通信結構和基礎設施可被利用來實現 一個或多個通信網絡。
[0028] 作為例子,平臺和/或設備經由通信協(xié)議或多個協(xié)議與彼此以及具有對通信網絡 108的訪問的其它部件通信。協(xié)議可以是定義通信網絡108的節(jié)點如何與其它節(jié)點交互的 一組規(guī)則。此外,在網絡節(jié)點之間的通信可通過交換數據的分立分組或發(fā)送消息來實現。分 組可包括與協(xié)議相關的頭部信息(例如關于要聯(lián)系的一個或多個網絡節(jié)點的位置的信息) 以及有效載荷信息。
[0029] 圖2是根據一個例子的基于高速緩存方法來實現對客戶端使用儲存器的授權的 計算系統(tǒng)的方框圖。在某些例子中,系統(tǒng)200可包括與存儲管理器平臺204通信以向存儲 管理器平臺204提供關于存儲體206的授權信息的授權平臺202。存儲管理器平臺204可 使用該信息來促進客戶端設備208a-208n對存儲體的訪問??山浻赏ㄐ啪W絡210來連接這 些設備。
[0030] 在某些例子中,授權平臺、存儲管理器平臺204、存儲體206和客戶端設備208可被 考慮為計算設備。在一些例子中,這些設備可經由處理元件、存儲器和/或其它部件實現。 此外,在一個例子中,使用一個或多個存儲驅動器(例如硬盤驅動器、固態(tài)驅動器等)和/或 使用一個或多個外殼來實現存儲體206。
[0031] 在該例子中,存儲管理器平臺204可用于促進實體使用客戶端設備208訪問一個 或多個存儲體206。在某些場景下,可給實體供應資源的單元(cell)。在一個實施例中,單 元可包括一組資源,例如一個或多個存儲體、處理能力等。在客戶端設備208a上的實體可 用于建立單元。當單元被建立時,例如特定的存儲體206的資源可例如通過提供讀訪問、寫 訪問、尺寸操縱訪問等來提供對單元使用存儲體206的準許。而且,單元可向創(chuàng)建單元的實 體許可對單元的使用。此外,在某些場景下,單元可提供其它實體訪問,例如管理員、維護程 序等。在某些場景下,可基于許可鏈來給實體提供對存儲體206的訪問。例如,存儲體206 向單元許可使用,單元向創(chuàng)建實體許可使用權利以及委托權利,創(chuàng)建實體向多組其它實體 許可讀訪問,等等。
[0032] 當客戶端設備208上的實體(例如存儲客戶端)想訪問存儲體206時,實體可從存 儲管理器平臺204請求訪問。在某些實施例中,存儲客戶端是使用存儲資源的客戶端。存儲 管理器平臺204可基于授權模塊和/或授權高速緩存的使用來確定對實體的授權。例如, 在某些實施例中,存儲管理器平臺204可在本地包括授權模塊、事實高速緩存模塊、事實索 引模塊和/或許可索引模塊。當授權被請求時,授權模塊可使用證明來確定請求實體是否 具有訪問。證明的主體可以是實體。
[0033] 授權可在本地在存儲管理器平臺204處被執(zhí)行和/或從位于遠程的授權平臺202 被請求。存儲管理器平臺204可維持授權事實的高速緩存。因此,在一個實施例中,存儲管 理器平臺204的授權模塊可通過查詢授權平臺202基于許可來確定授權事實,同時基于授 權事實和所接收的關于許可的信息來維持高速緩存。當證明被處理時,高速緩存被更新以 包括授權事實。此外,許可索引可被更新以指向在證明中使用的每個許可的授權事實。因 此,只要授權事實是有效的,實體使用存儲體206的請求就可被通過,而不需要查詢授權平 臺202。這可能是有利的,因為當使用高速緩存時使用授權平臺202的開銷可保持低。
[0034] 當在證明中使用的許可之一被撤銷時,存儲管理器平臺204可由許可索引模塊通 知許可已被撤銷。該信息可用于撤銷授權事實。如所提到的,授權事實可包括當授權事實 被撤銷時可被回調的客戶端的列表,例如存儲管理器平臺204、其它存儲管理器平臺等。存 儲管理器平臺204接收該通知?;谠撏ㄖ瑢Υ鎯w的訪問可被撤銷和/或限制。在某 些場景下,授權事實的撤銷可使另一充分的證明被執(zhí)行以確定另一組許可是否可用于證明 主體應被提供訪問。
[0035] 圖3是根據一個例子的用于基于高速緩存模型來撤銷授權事實的方法的流程圖。 雖然下面參考授權平臺102描述了方法300的執(zhí)行,但可利用用于執(zhí)行方法300的其它適 當的部件(例如存儲管理器平臺204)。此外,用于執(zhí)行方法300的部件可散布在多個設備當 中。方法300可以以存儲在機器可讀存儲介質上的可執(zhí)行指令的形式和/或以電子電路的 形式實現。
[0036] 方法300可在302開始,其中授權平臺102基于與主體相關的一個或多個許可來 確定授權事實。如上所提到的,授權平臺102可通過基于許可執(zhí)行證明和/或查詢另一設 備以執(zhí)行證明來確定授權,并接收因而產生的授權事實。如果許可可用于證明主體應被提 供資源的使用,則許可可與主體相關。如上所提到的,許可可包括在可用于與主體相關的主 體域中的變體。
[0037] 在304,事實高速緩存模塊122將授權事實高速緩存在授權事實數據庫中。事實 索引模塊124可實現其它授權事實的事實索引。事實索引可對每個授權事實包括相應的發(fā) 布方(例如資源,如存儲體的控制器)、相應的主體(例如針對資源的使用的請求器)和相應 的授權(例如主體可對資源做什么),并用于對授權事實編索引。在某些實施例中,包括發(fā)布 方、主體和授權的授權項可用于對授權事實編索引。在某些場景下,當授權事實被高速緩存 時,請求授權事實的使用的客戶端平臺可被添加到回調列表。此外,因為其它客戶端平臺使 用授權事實,它們可被添加到回調列表。而且,在306,事實索引使用已證明授權事實的授權 項被更新。授權項可包括與授權事實相關的主體、授權事實的授權條款以及與授權事實相 關的發(fā)布方的標識符。
[0038] 此外,與多個許可相關的許可索引可被維持。對于每個許可,存儲一組獨立的授權 事實。例如,與授權事實的證明相關的每個許可可識別授權事實。而且,如上所提到的,每 個許可可包括參考計數。因此,當具有相同的發(fā)布方、主體和許可條款的許可作為另一許可 被添加時,參考計數遞增。類似地,當許可條款由發(fā)布方撤銷時,與索引相關的參考計數可 遞減。
[0039] 在一個例子中,在308,許可索引模塊126基于許可索引確定許可之一已遞減到閾 值的值。因為閾值被達到,許可可從許可索引移除。此外,事實高速緩存模塊122可被通知 關于使用許可證明的任何授權事實。在一個實施例中,在310,許可索引可用于確定許可在 授權事實的證明中被使用。因此,授權事實在312基于該確定由事實高速緩存模塊122撤 銷。如上所提到的,當授權事實被撤銷時,可實現其它過程,例如試圖重新證明授權事實。
[0040] 圖4是根據一個例子的用于向客戶端提供授權事實已被撤銷的通知的方法的流 程圖。如同圖3-樣,雖然下面參考授權平臺102描述了方法400的執(zhí)行,但可利用用于執(zhí) 行方法400的其它適當的部件(例如存儲管理器平臺204)。此外,用于執(zhí)行方法400的部件 可散布在多個設備當中。方法400可以以存儲在機器可讀存儲介質上的可執(zhí)行指令的形式 和/或以電子電路的形式實現。
[0041] 在402,事實高速緩存模塊122例如基于支持授權事實的許可的撤銷來確定授權 事實已被撤銷。響應于授權事實已被撤銷的確定,事實高速緩存模塊122和/或事實索引模 塊124在404確定使用授權事實的客戶端。該確定可基于解析授權事實。在某些場景下, 客戶端可與回調列表相關,回調列表與授權事實相關?;卣{列表可包括可用于對相應的客 戶端產生通知的信息?;卣{列表可與事實索引中的授權事實相關。
[0042] 然后,在406,授權平臺102可向每個客戶端提供授權事實已被撤銷的通知。在某 些例子中,客戶端可以是客戶端平臺104、存儲管理器或客戶端等。如上所提到的,在一個例 子中,客戶端之一是使用授權事實來確定存儲客戶端是否應被提供對存儲體的訪問的存儲 管理器。在這種場景下,存儲客戶端是授權事實的主體。
[0043] 圖5是根據一個例子的能夠使用授權事實高速緩存方法來確定對客戶端的資源 的授權的計算設備的方框圖。計算設備500包括例如處理器510和機器可讀存儲介質520, 其包括用于確定是否撤銷授權事實的指令522、524、526、528。計算設備500可以例如是筆 記本計算機、平板計算設備、服務器、臺式計算機、工作站或任何其它計算設備。
[0044] 處理器510可以是至少一個中央處理單元(CPU)、至少一個基于半導體的微處理 器、至少一個圖形處理單元(GPU)、適合于獲取和執(zhí)行存儲在機器可讀存儲介質520中的指 令的其它硬件設備或其組合。例如,處理器510可包括在芯片上的多個核心,包括跨多個芯 片的多個核心、跨多個設備的多個核心(例如,如果計算設備500包括多個節(jié)點設備)或其組 合。處理器510可取出、解碼并執(zhí)行指令522、524、526、528以實現圖3和4的方法。作為替 代或附加于獲取并執(zhí)行指令,處理器510可包括至少一個集成電路(1C)、其它控制邏輯、其 它電子電路或其組合,它們包括用于執(zhí)行指令522、524、526、528的功能的多個電子部件。
[0045] 機器可讀存儲介質520可以是包含或存儲可執(zhí)行指令的任何電子、磁、光或其它 物理存儲設備。因此,機器可讀存儲介質可以是例如隨機存取存儲器(RAM)、電可擦除可編 程只讀存儲器(EEPR0M)、存儲驅動器、光盤只讀存儲器(⑶-ROM)等。因此,機器可讀存儲介 質可以是非臨時的。如在本文詳細描述的,機器可讀存儲介質520可編碼有用于基于許可 的撤銷來確定是否撤銷授權事實的一系列可執(zhí)行指令。
[0046] 許可指令522可被執(zhí)行來確定許可。在某些例子中,確定許可意味著發(fā)出許可或 接收關于所發(fā)出的權限的許可的信息。如上所提到的,許可可被考慮為發(fā)布方對主體的授 權的許可。在某些場景下,許可的主體可以是變體。例如,主體可以是其它實體的組或集合。 索引指令528可用于實現索引以管理授權。在一個例子中,索引指令528可被執(zhí)行來實現 許可索引。在另一例子中,索引指令528可被執(zhí)行來實現授權事實索引。
[0047] 實體可請求計算設備500促進對資源的訪問。授權指令524可被執(zhí)行來基于一個 或多個許可來確定授權事實。許可可每個分別與相應的發(fā)布方和相應的主體相關。此外, 使用證明程序來證明授權事實。在這種場景下,授權事實對實體被證明以使用具有特定授 權的資源。在一個例子中,計算設備500執(zhí)行證明。在另一例子中,計算設備500可從另一 設備請求授權事實的證明。
[0048] 高速緩存指令526可被執(zhí)行來將授權事實高速緩存在授權事實數據庫中。在某些 實施例中,授權事實數據庫也可使用索引指令528被編索引。因此,可以用授權事實更新授 權事實索引。索引可使用授權事實項被編索引。因此,可創(chuàng)建對應于包括相應的主體、相應 的發(fā)布方和相應的授權的授權事實的事實索引條目。
[0049] 稍后,處理器510可基于許可索引來確定存儲在許可索引中的許可之一已被撤 銷。當撤銷許可時,(例如基于授權項)識別使用該許可的授權事實。高速緩存指令526可 接著被執(zhí)行來基于許可的撤銷來確定是否撤銷授權事實。在一個例子中,撤銷的許可與所 創(chuàng)建的授權事實相關。因此,授權事實被撤銷。
[0050] 當撤銷授權事實時,基于與授權事實相關的回調列表來確定與授權事實相關的一 個或多個客戶端平臺。授權事實已被撤銷的通知可被產生并發(fā)送到一個或多個客戶端平 臺??蛻舳似脚_可在決定什么樣的實體應被提供相應的資源的使用時使用該信息。
[0051] 如上所提到的,在一個例子中,客戶端平臺可以是向存儲客戶端提供訪問授權的 存儲管理器。存儲客戶端可被考慮為主體。在這種情況下證明的授權項可以是存儲客戶端 被提供特定的訪問授權以使用發(fā)布存儲體。
[0052] 此外,如上所提到的,許可索引可被實現來說明多少等效授權被使用的參考計數。 因此,許可索引可包括關于每個許可的相應發(fā)布方、主體、許可條款本身和相關參考計數的 信息。參考計數可在等效許可被發(fā)出時遞增,并在等效許可被撤銷時遞減。此外,當參考計 數遞減到閾值時,許可可從索引刪除。這可開始通知高速緩存相關授權事實可能不再是有 效的過程,因為許可不再是有效的。
【權利要求】
1. 一種計算系統(tǒng),包括: 授權模塊,用于向相應的主體確定多個授權事實,每個授權事實基于分別與相應的發(fā) 布方相關的一個或多個許可; 事實高速緩存模塊,用于對所述授權事實進行高速緩存; 事實索引模塊,用于實現基于所述授權事實而被編索引的事實索引,其中所述索引對 于每個授權事實基于授權項;以及 許可索引模塊,用于實現許可的許可索引,其中所述許可索引對于每個許可包括相應 的發(fā)布方、相應的許可和相應的主體; 其中響應于一個許可被撤銷,基于所述一個許可的一個授權事實被撤銷。
2. 如權利要求1所述的計算系統(tǒng),其中所述許可索引還包括針對每個相應的許可的 參考計數,其中所述計算設備還包括: 許可|旲塊,其確定另一許可; 許可計數模塊,其確定另一許可是否等效于又一許可,其中如果所述另一許可等效于 所述又一許可,則相應與所述另一許可相關的參考計數遞增。
3. 如權利要求2所述的計算系統(tǒng),其中所述許可模塊確定撤銷所述另一許可,且其中 與等效的許可相關的一個參考計數遞減。
4. 如權利要求3所述的計算系統(tǒng),其中所述許可模塊確定撤銷所述另一許可,且其中 如果與一個許可相關的第二參考計數減小到閾值水平,則所述一個許可被撤銷。
5. 如權利要求1所述的計算系統(tǒng),其中所述一個授權事實與客戶端的回調列表相關, 其中當所述一個授權事實被撤銷時,所述回調列表上的每個客戶端被通知。
6. 如權利要求5所述的計算系統(tǒng),其中一個客戶端是存儲管理器,其使用所述一個授 權事實來確定存儲客戶端是否應被提供對存儲體的訪問,其中所述存儲客戶端是所述一個 授權事實的相應主體。
7. 如權利要求6所述的計算系統(tǒng),其中所述存儲管理器基于所述通知來移除對所述 存儲體的訪問。
8. -種存儲指令的非臨時機器可讀存儲介質,所述指令如果由設備的至少一個處理 器執(zhí)行則使所述設備: 基于一個或多個許可來確定授權事實,每個許可分別與相應的發(fā)布方和相應的主體相 關; 將所述授權事實高速緩存在授權事實數據庫中; 用所述授權事實更新包括多個其它授權事實的事實索引,其中對應于所述授權事實的 事實索引條目包括所述相應的主體和所述相應的發(fā)布方;以及 基于許可索引來確定一個許可已被撤銷;以及 基于所述一個許可的撤銷來確定是否撤銷所述授權事實。
9. 如權利要求8所述的非臨時機器可讀存儲介質,還包括如果由所述至少一個處理 器執(zhí)行則使所述設備進行以下的指令: 基于客戶端回調列表來確定與所述授權事實相關的客戶端;以及 向所述客戶端發(fā)送所述授權事實已被撤銷的通知。
10. 如權利要求9所述的非臨時機器可讀存儲介質,其中所述客戶端是提供對存儲客 戶端的訪問的存儲管理器,其中主體對應于所述存儲客戶端,且訪問授權對應于所述授權 事實。
11. 如權利要求8所述的非臨時機器可讀存儲介質,還包括如果由所述至少一個處理 器執(zhí)行則使所述設備進行以下的指令: 基于包括在所述許可索引中的計數來確定所述一個許可是否已被撤銷, 其中所述許可索引對于多個許可條款包括許可條款的相應的發(fā)布方、相應的許可條款 的相應的主體、相應的許可條款和相應的計數,其中所述計數代表與相應的許可條款相關 的等效許可條款的數量。
12. -種方法,包括: 基于分別與相應的主體相關的一個或多個許可來確定授權事實; 將所述授權事實高速緩存在授權事實數據庫中, 其中其它授權事實的事實索引對于每個其它授權事實包括相應的發(fā)布方、相應的主體 和相應的授權, 使用授權項來更新所述事實索引, 其中許可索引與多個許可相關,其中對于每個許可,一組獨立的授權事實和等效計數 被存儲; 基于所述許可索引來確定一個許可已遞減到閾值的值;以及 基于分別與所述一個許可相關的獨立授權事實中的一個是所述授權事實的確定來撤 銷所述授權事實。
13. 如權利要求12所述的方法,其中所述授權事實與一個或多個客戶端的回調列表 相關。
14. 如權利要求13所述的方法,還包括: 通知所述一個或多個客戶端中的每個所述授權事實已被撤銷。
15. 如權利要求13所述的方法,其中所述一個或多個客戶端之一是服務于存儲客戶 端的存儲管理器,其中所述存儲管理器使用所述授權事實來確定存儲客戶端是否應被提供 對存儲體的訪問,其中所述存儲客戶端是所述授權事實的主體。
【文檔編號】G06F17/30GK104067279SQ201280068726
【公開日】2014年9月24日 申請日期:2012年3月30日 優(yōu)先權日:2012年3月30日
【發(fā)明者】M.雷 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)