摘 要:為方便跨域信息共享,簡化策略管理,將屬性訪問控制(ABAC)與語義Web技術結合,擴展XACML標準框架結構,實現語義推理功能;將該結構應用于聯邦身份認證授權模型中,可以有效解決屬性語義互操作問題。
關鍵詞:屬性訪問控制;授權;聯邦;本體;可擴展的訪問控制標記語言
中圖分類號:TP309文獻標志碼:A
文章編號:1001-3695(2009)06-2128-03
doi:10.3969/j.issn.1001-3695.2009.06.039
Research of semantic attribute-based access control infederated authentication and authorization
JIANG Hua1,LI Xin-you2,XIE Sheng-xian1,CHEN Chen2,LI Jun-qing1,ZHANG Sha-sha1
(1.College of Computer Science, Liaocheng University, Liaocheng Shandong 252059, China;2.Information Security Research Services Center, State Information Center, Beijing 100045, China)
Abstract:In order to facilitate cross-border information sharing, simplified policy management, integrated the attribute-based access control and the semantic Web technology, expanded the XACML standard framework to implement semantic inference function. Using the approch presented in federation can effectively resolve the attributes semantic interoperability issues.
Key words:attribute-based access control(ABAC); authorization; federation; ontology; XACML
聯邦認證授權提供了一種不改變用戶原有使用習慣和管理方式,實現多個用戶系統互通,跨域訪問服務器資源,進行安全信息認證和授權的技術[1]。聯邦中每個聯邦成員包含一個身份提供者(identity provider,IdP),授權用戶和大量服務提供者(service providers,SP)。聯邦身份認證授權的分布性、異構性和動態性特點,傳統訪問控制機制已不能滿足其安全性要求。基于屬性的訪問控制(ABAC)是以實體屬性為授權基礎,能動態、細粒度實施授權[2],特別適合于開放和分布式系統中的授權和訪問控制,并且聯邦身份認證為用戶授權提供屬性訪問接口,通過該接口,共享服務向身份管理者提交屬性請求,根據返回的用戶屬性決定用戶的訪問權限,實現基于屬性的訪問控制。聯邦中訪問控制決策所需的屬性可能來自不同的信任域,以不同的術語表示和解釋。例如:一個視頻點播商店在其訪問控制策略中用屬性fullAge=true表示成人客戶,而同一聯邦的一個書籍銷售商通過屬性age>18判定成人客戶,有的客戶想提供駕照(hasDriversLicense)屬性證明為成人。
鑒于此,本文利用本體擴展XACML(extensible access control markup language)框架,將用戶、資源和環境屬性作為語義背景,并應用在聯邦身份認證授權管理中,實現聯邦之間的屬性語義互操作。
1 相關研究
1.1 基于屬性的授權和訪問控制模型
ABAC以主體和客體(資源)屬性為授權基礎[3]。基于屬性的授權模型中,授權定義在主體描述器與客體描述器之間,主體/客體描述器由主體/客體的屬性條件組成,并通過對屬性條件的判定確定主體權限。有時,訪問會受環境和系統狀態的約束,因此,授權系統需要環境屬性。基于屬性的訪問控制基本框架如圖1所示。
其中:AA(attribute authority)建立和管理實體屬性;PEP(policy enforcement point)建立屬性授權請求后發送給PDP,執行PDP的決策;PDP(policy decision point)利用策略規則集評價訪問請求是否滿足要求,將決策結果返回給PEP,當屬性不在請求中時,PDP要從相關AA中抽取所需屬性;Policy authority建立和管理訪問控制策略,主要包含訪問資源所需的決策規則、條件和約束。
聯邦認證授權管理中的SP共享的主體和資源安全信息可提供授權所需屬性,基于這些屬性可采用ABAC進行授權和訪問控制;基于聯邦認證授權的分布式特征,ABAC需采用XACML框架并結合SAML確定用戶權限[4]。由于聯邦中訪問控制決策的屬性存在異構性,常用的包含所有屬性和XACML策略的中央數據庫或一個共同屬性集來解決的方法會使策略管理復雜化,為此,引出了語義互操作需求。
1.2 本體和語義Web技術
本體是一種用于描述語義的、概念化的顯式說明。它通過定義屬性并建立一個分類層次結構,將不同的概念組織并區別開來,從而建立起概念的語義空間。本體在語義規范和互操作方面起著重要作用,是實現語義溝通的關鍵技術。本體描述的標準OWL[5],建立在 RDFS之上并支持豐富的語義。本體的處理和分析,需要使用推理引擎從數據的隱含信息中得出新信息或通過組合獲取新信息。簡單推理可利用RDFS和 OWL的繼承性直接獲取,而復雜推理需要諸如SWRL的特殊策略規則語言實現。Jena作為處理RDFS和OWL數據的集成工具,不但能持久存儲數據,還提供簡單的推理和查詢語言SPARQL[6],且SPARQL能在推理過程中,從屬性文檔中查詢獲取所需屬性。本文提出的基于本體的授權和存取控制方法將上述 RDFS、OWL、SWRL和 SPARQL等標準應用于擴展XACML的推理引擎中。
2 基于本體屬性訪問控制的聯邦身份管理模型
2.1 具有語義屬性訪問控制的擴展XACML
本文利用語義Web技術擴展XACML架構[7],在語義層面解決異構屬性的映射問題。擴展的XACML體系結構如圖2所示,圖中虛框部分為擴展部分。
存取控制決策和執行步驟如下:
a)策略管理點PAP建立XACML策略,并提供給PDP。本文訪問控制策略是“只有成人才被允許訪問 http://www.example.org/restricted上的資源”。
b)用戶(以user@example.org標志)向PEP(http://www.example.org/restricted /index.html)發送訪問請求。其中包含請求者的age屬性,且age>18。
c)PEP傳遞此請求給context handler。
d)Context handler建立一個XACML請求,發送給 PDP;
e)PDP需要附加主體、資源和環境屬性,這些屬性通過向context handler發送屬性請求獲得,本例中需要獲取授權決策所需fullAge屬性。
f)Context handler向策略信息點PIP發送屬性請求,獲取授權決策所需的屬性。
g)策略信息點PIP收集所需的屬性。這些屬性可從主體、資源、環境屬性各自的AA獲取。本例中不能獲得fullAge屬性。
h)PIP返回所需的屬性給context handler,但沒有fullAge。
i)執行上述XACML標準訪問控制后,PDP決策所需的屬性fullAge沒有找到,則將已獲取的各種屬性由context handler前傳給推理引擎IEng( i)(a)),利用本體管理點OAP提供的本體推理。因為有駕照的人為成人,且fullAge屬性依賴于屬性age,利用hasDriversLicense屬性和一個SWRL規則推導出fullAge,SWRL規則描述為
subject(?x)∧age(?x,?a)∧greaterThanOrEqual(?a,18) →fullAge(?x,true)
即:若subject的age≥18,則fullAge為真。推導出的屬性fullAge通過context handler利用SPARQL的DESCRIBE從IEng處查詢到。DESCRIBE命令格式為
DESCRIBE〈maiho:user@example.org〉
IEng傳送完整屬性集,用RDF/XML表示。推理得到的屬性片段如下:
〈?xml version=\"1.0\"?〉
〈rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"〉
〈Subject xmlns=\"urn:oasis:names:tc:xacml:1.0:context:\"
rdf:about=\"mailto:anonymous@anonymous.org\"〉
rdf:datatype=\"http://www.w3.org/2001/XMLSchema#boolean\"〉true〈/age〉
〈/Subject〉
……
〈/rdf:RDF〉
j)Context handler將資源附加在請求上。
k)Context handler將擴展后的請求(包括屬性fullAge)發送給PDP。包含推理屬性的XACML請求代碼片段(陰影部分為推理得到的屬性fullAge)如下:
〈?xml version=\"1.0\"?〉
〈Request mlns=\"urn:oasis:names:tc:xacml:1.0:context\"〉
〈Subject〉
〈AttributeAttributeId=\"urn:oasis:names:tc:xacml:1.0: subject:subject-id\"DataType=\"urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name\"〉
〈AttributeValue〉user@example.org〈/AttributeValue〉
〈/Attribute〉
〈Attribute AttributeId=\"urn:example:age\" DataType= \"http://www.w3.org /2001/XMLSchema # integer\" 〉
〈AttributeValue〉30〈/AttributeValue〉
〈/Attribute〉
〈Attribute AttributeId=\"urn:example:fullAge\" DataType= \"http://www.w3.org/2001/XMLSchema#boolean\"〉
〈AttributeValue〉true〈/AttributeValue〉
〈/Attribute〉
〈/Subject〉
……
〈/Request〉
l)PDP依據 XACML策略進行對訪問請求進行評估,并返回評估結果給context handler。
m)Context handler將評估結果轉換成PEP能接收的格式傳給 PEP執行。
本架構在XACML上增加基于本體的推理引擎,實現語義推理,即當PDP所需屬性沒有找到時,利用推理引擎在授權請求中的屬性和PIP獲取的屬性中推理,獲取授權決策所需屬性。2.2 基于擴展XACML的聯邦身份認證授權模型
圖3采用UML序列圖描述了包含OAP和推理引擎的聯邦認證授權執行過程,圖中使用SAML和XACML名稱標志。由于XACML關于PIP及同其他XACML元素間通信的描述很不確切,圖中的PIP主要作為相關數據庫接口,傳輸信息和屬性到SAML,代替了原結構中的context handler。
存取控制的執行按如下步驟執行:
a)用戶向SP提出資源存取請求進行身份認證,SP發送給IdP一個SAML身份認證請求和一個XACML授權決策請求,然后在IdP的AuthN中進行身份認證,這是標準Liberty ID-FF SSO過程。
b)用戶認證后,IdP的PIP收集可用屬性,用SAML屬性請求詢問每個聯邦成員屬性是否可用。SP的PIP提供給IdP SAML屬性聲明。
c)IdP的PIP收集到所有屬性后,發送給存取控制決策點的PDP一個帶有請求資源標志符和所有用戶屬性的XACML存取控制決策請求。為完成屬性訪問控制,存取控制決策點的PIP將收集資源和環境屬性。PDP收到請求后,利用SAML 屬性查詢命令查詢屬性是否可用。d)若所需屬性不存在,則PDP進行屬性推理。用戶屬性和一個SPARQL DESCRIBE請求被發送到IEng,利用OAP本體推理出相關信息。返回包含新信息的SAML屬性聲明。
e)XACML存取控制決策通過已有策略進行計算,由于可用屬性信息的語義完整性,可采用細粒度訪問控制策略。XACML屬性決策被返回給請求實體IdP,從IdP的AuthN獲得身份認證聲明,SAML的認證聲明和XACML的授權決策聲明返回給SP,最終由SP的PEP執行該決策。
本文設計的架構中推理引擎選擇Jena、context handle接收XACML請求后,提取屬性并轉換成RDF格式,傳給推理引擎。雖然Jena 2.2不支持SWRL規則,但可通過繼承或諸如“owl:equivalentProperty” 和“owl:sameAs”OWL結構進行推理。
3 結束語
本文提出了一個簡化規范和維護屬性訪問控制策略的方法。利用基于本體的推理引擎擴展屬性管理,完成不同屬性之間的語義映射,可簡化聯邦中異構屬性訪問控制的策略管理。聯邦中只有IdP知道用戶身份,但它不知道資源訪問,本架構在進行存取決策時,只知道一個別名的各種屬性,屬性推理僅與別名聯系在一起,這種身份與授權訪問控制的分離實現了對用戶身份的保護。本設計核心是根據XACML標準和特點完全采用RDF和OWL開放標準進行語義擴展。今后的研究是在跨組織與區域邊界的電子商務之間構建語義互操作,為安全互操作提供本體。
參考文獻:
[1]FRAGOSO R U,LAURENT M M,INCERA D J.Federated identity architectures[C]//Proc of the 1st Mexican Conference on Informatics Security.2006:33-40.
[2]BERTINO E,SQUICCIARINI A C,MEVI D.A fine-grained access control model for Web services[C]//Proc of IEEE International Conference on Services Computing(SCC 2004).Washington DC:IEEE Computer Society,2004:33-40.
[3]JOHNSON W,MUDUMBAI S,THOMPSON M.Authorization and attribute certificates for widely distributed access control[C]//Proc of the 7th Workshop on Enabling Technologies:Infrastructure for Colla-borative Enterprises.Washington DC:IEEE Computer Society,1998:340-345.
[4]BARTON T,BASNEY J,FREEMAN T,et al.Identity federation and attribute-based authorization through the globus toolkit,shibboleth,gridshib,and MyProxy[C]//Proc of the 5th Annual PKI RD Workshop.2006.
[5]OWL Web ontology language overview[EB/OL].(2004-02-10)[2005-03-22].http://www.w3.org/TR/2004/REC-owl-features-20040210/.
[6]SPARQL query language for RDF[EB/OL].(2005-02-17)[2007-05-03].http://www.w3.org/TR/2005/WD-rdf-sparql-query-20050217/.
[7]PRIEBE T,DOBMEIER W,KAMPRATH N.Supporting attributed-based access control with ontologies[C]//Proc of the 1st International Conference on Availability, Reliability and Security (ARES 2006).Washington DC:IEEE Computer Society,2006:465-472.