文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)02-0135-04
0 引言
任何一個授權(quán)系統(tǒng)至少需要同時解決認(rèn)證和授權(quán)兩方面的問題,,認(rèn)證決定用戶是否具有對某一系統(tǒng)或資源的訪問權(quán)限,,而授權(quán)則決定用戶能夠訪問特定系統(tǒng)或資源的具體內(nèi)容。由于云計算服務(wù)構(gòu)建在具有極高擴展能力的信息基礎(chǔ)架構(gòu)上,,而且服務(wù)通過動態(tài),、靈活的可配置資源按需提供,所以身份認(rèn)證和授權(quán)訪問在云計算中將顯得更為重要,。本文在分析云計算信息基礎(chǔ)架構(gòu)的基礎(chǔ)上,,立足當(dāng)前技術(shù)現(xiàn)狀和應(yīng)用實踐,,綜合傳統(tǒng)網(wǎng)絡(luò)中的SAML2.0、OAuth2.0和OpenID2.0等技術(shù),、標(biāo)準(zhǔn)與規(guī)范,,提出了一種開放標(biāo)準(zhǔn)的云計算身份認(rèn)證模型,為云計算中信息資源的整合提供了一種組織管理架構(gòu),。
1 云計算環(huán)境中的身份認(rèn)證特點
云計算[1-2]是基于分布式計算,、網(wǎng)格計算和虛擬化等技術(shù),在信息基礎(chǔ)設(shè)施和網(wǎng)絡(luò)應(yīng)用共同發(fā)展到一定階段時出現(xiàn)的一種新型信息服務(wù)方式,,它使效用計算逐步變成了現(xiàn)實,。與其他相關(guān)的主要技術(shù)相比,云計算中的認(rèn)證和授權(quán)具有以下特點:(1)用戶管理采用集中式或委托第三方負(fù)責(zé),;(2)資源管理采用集中式和分布式相結(jié)合的模式,,當(dāng)采用分布式管理模式時,系統(tǒng)之間一般采用內(nèi)部高速網(wǎng)絡(luò),、高性能專網(wǎng)或虛擬專用網(wǎng)(Virtual Private Network,,VPN)安全通道等方式互聯(lián);(3)加強對用戶隱私的保護(hù),,實現(xiàn)對身份信息的安全管理,;(4)計算任務(wù)調(diào)度采用集中式或分布式;(5)云計算中為每個用戶按需提供資源,,資源分布既分散又集中,;(6)通過虛擬化技術(shù)屏蔽掉了不同操作系統(tǒng)之間的異構(gòu)性。
云計算統(tǒng)一身份認(rèn)證又稱為聯(lián)邦身份認(rèn)證(Federal Identity),,它是一個端到端、可擴展及前瞻性的實現(xiàn)身份驗證與資源配置的信息基礎(chǔ)設(shè)施,,是解決組織內(nèi)部以及組織之間身份認(rèn)證互信的基礎(chǔ),。云計算統(tǒng)一身份認(rèn)證是一個完整的、電信級的基于邏輯安全域的身份驗證解決方案,,在同一邏輯安全域中終端之間的信息交換不限使用哪一種協(xié)議,,云計算統(tǒng)一身份認(rèn)證系統(tǒng)可分為身份提供者(Identity Provider,IdP)和服務(wù)提供者(Service Provider,,SP)兩部分來部署,,如面1所示。其中,,IdP負(fù)責(zé)對云終端創(chuàng)建身份,、進(jìn)行屬性過濾、管理認(rèn)證憑證和維護(hù)當(dāng)前會話,,SP實現(xiàn)與IdP之間的屬性映射,、身份關(guān)聯(lián)與屬性傳遞,。
云計算統(tǒng)一身份認(rèn)證主要涉及認(rèn)證(authentication)、授權(quán)(authorization)和單點登錄(Single Sign On,,SSO)3個方面,。其中,認(rèn)證用于判定“訪問者是誰”,,授權(quán)用于決定“訪問者能做什么”,,而SSO實現(xiàn)了用戶在一個邏輯安全區(qū)域內(nèi)的一次登錄、多次訪問能力,,即用戶只要正常登錄了邏輯安全域中的某一應(yīng)用系統(tǒng),,就可以自由訪問該域中其他應(yīng)用系統(tǒng)中的授權(quán)資源,SSO同時包含著認(rèn)證和授權(quán)兩個過程,。
2 云計算中的身份認(rèn)證技術(shù)
2.1 基于SAML2.0的身份認(rèn)證
SAML(Security Assertion Markup Language,,安全斷言標(biāo)記語言)[3-4]是身份認(rèn)證領(lǐng)域出現(xiàn)較早的基于XML語言的信息架構(gòu),其主要功能是實現(xiàn)邏輯安全域中IdP與SP之間的認(rèn)證和授權(quán)信息傳輸以及斷言形式表達(dá),。SAML提供了基于Web方式的SSO解決方案,,是云計算尤其是私有云服務(wù)中整合不同應(yīng)用系統(tǒng)的首選方案。
SAML規(guī)范定義了基于XML的4種組件[4]:斷言(assertion),、協(xié)議(protocol),、綁定(binding)和配置(profile)。其中,,SAML斷言分為認(rèn)證,、屬性和授權(quán)3種類型,認(rèn)證斷言確認(rèn)用戶的身份,,屬性斷言包含用戶的特定信息,,授權(quán)斷言確認(rèn)用戶獲得授權(quán)。協(xié)議定義了SAML如何請求和接收斷言,,主要涉及請求(request)和響應(yīng)(respond)兩種信息類型,。綁定定義了如何將SAML請求和響應(yīng)信息映射到標(biāo)準(zhǔn)的報文和協(xié)議上,。簡單對象訪問協(xié)議(SOAP)是SAML中一個重要的綁定,另外SAML可以與HTTP、SMTP,、FTP等主要協(xié)議實現(xiàn)綁定,。如圖2所示,,SAML斷言可以直接嵌入SOAP信息頭部,,SOAP再嵌入到標(biāo)準(zhǔn)的HTTP報文后進(jìn)行傳輸。配置是對已定義的特定應(yīng)用實例的具體表現(xiàn),,它由斷言,、協(xié)議和綁定組合而成。
SAML規(guī)范中定義了3種不同的角色(role):用戶代理(通常為Web瀏覽器),、身份提供者(IdP)和服務(wù)提供者(SP),。用戶代理訪問SP,,當(dāng)SP接收到該訪問請求后便向IdP發(fā)送身份認(rèn)證請求。此時IdP將要求該用戶提供類似于用戶名,、密碼等能夠證明其身份的信息,,并以此作為其合法性的斷言。當(dāng)SP從IdP獲取該身份斷言后,,便可以決定是否為該用戶提供服務(wù),。在此過程中,因為一個IdP可以同時為多個SP提供SAML斷言,,在IdP緩存機制的支持下,,實現(xiàn)了用戶在邏輯安全域中的SSO。
SAML使用SSL/TLS實現(xiàn)點到點的安全性,,使用安全令牌來避免重放攻擊,。僅從協(xié)議角度來看,SAML的工作原理類似于CAS和Kerberos,,CAS協(xié)議依賴于CAS Server,,Kerberos依賴于KDC,而SAML則依賴于IdP,。
2.2 基于OAuth2.0的授權(quán)管理
OAuth(Open Authorization,,開放授權(quán))[5]是一個開放標(biāo)準(zhǔn)的聯(lián)合協(xié)議,旨在幫助用戶將受保護(hù)的資源授權(quán)給第三方使用,,且支持細(xì)粒度的權(quán)限控制,。在授權(quán)過程中,OAuth不需要將用戶名和密碼以及其他認(rèn)證憑證提供給第三方,,增強了授權(quán)過程的安全性,。OAuth標(biāo)準(zhǔn)主要針對個人用戶對資源的開放授權(quán),也在組織內(nèi)部私有云服務(wù)網(wǎng)絡(luò)中發(fā)揮了其功能優(yōu)勢,,可以與OpenID,、SAML等認(rèn)證技術(shù)配合實現(xiàn)開放標(biāo)準(zhǔn)的基于SSO的授權(quán)服務(wù)。
OAuth2.0定義了4種不同的角色:RO(Resource Owner,,資源擁有者)、RS(Resource Server,,資源服務(wù)器),、Client(客戶端)和AS (Authorization Server,授權(quán)服務(wù)器),。其中,,RO是指能夠?qū)κ鼙Wo(hù)資源進(jìn)行授權(quán)的實體,一般是指一個具體的進(jìn)行授權(quán)操作的人或系統(tǒng)進(jìn)程,。根據(jù)授權(quán)管理需要,,授權(quán)操作既可以通過“在線授權(quán)”方式手動執(zhí)行,,也可以通過系統(tǒng)默認(rèn)設(shè)置自動進(jìn)行“離線授權(quán)”。RS用于存放受保護(hù)資源,,并處理對資源的訪問請求,。Client指第三方應(yīng)用(這里的Client作為“客戶端”理解時是針對RS而言的),它在獲得RO的授權(quán)許可后便可以去訪問由RO管理的在RS上的資源,。Client可能是一個Web站點,、一段JavaScript代碼或安裝在本地的一個應(yīng)用程序。不同的Client類型可使用不同的授權(quán)類型進(jìn)行授權(quán),,如授權(quán)碼許可(Authorization Code Grant)授權(quán),、Client憑證許可(Client Credentials Grant)授權(quán)等。AS用于對RO的身份進(jìn)行驗證和資源授權(quán)管理,,并頒發(fā)訪問令牌(Access Token),。在具體應(yīng)用中,AS和RS一般由同一個服務(wù)器來提供服務(wù),。如圖3所示,,OAuth2.0協(xié)議的基本工作流程如下:
(1)Client向RO發(fā)送“授權(quán)請求”(authorization request),請求報文中一般包含要訪問的資源路徑,、操作類型,、Client的身份等信息。
(2)RO同意Client的授權(quán)請求,,并將“授權(quán)許可”(Authorization Grant)發(fā)送給Client,。一般情況下,在AS上會提供權(quán)限分配操作界面,,讓RO進(jìn)行細(xì)粒度的在線授權(quán),,或由系統(tǒng)自動完成離線授權(quán)操作。
(3)Client向AS請求“訪問令牌”(Access Token),。此時,,AS需要驗證Client提交給自己的“授權(quán)許可”,并要求Client提供用于驗證其身份的信息(多為用戶名和密碼),。
(4)AS在通過對Client的身份驗證后,,便向它返回一個“訪問令牌”,只有持有訪問令牌的Client才能訪問資源,。
(5)Client向RS提交“訪問令牌”,。
(6)RS驗證“訪問令牌”的有效性,具體由令牌的頒發(fā)機構(gòu),、令牌頒發(fā)日期,、時間戳等屬性決定。當(dāng)驗證通過后,才允許Client訪問受保護(hù)的資源,。其中,,在令牌的有效期內(nèi),Client可以多次攜帶同一個“訪問令牌”去訪問受保護(hù)的資源,。
在OAuth協(xié)議的整個授權(quán)過程中沒有直接用到第三方(Client)的私有信息,,而是使用“訪問令牌”和數(shù)字簽名方式,提高了協(xié)議的安全性,。同時,,任何第三方都可以使用OAuth AS,任何服務(wù)提供者都可以組建自己的OAuth授權(quán)服務(wù)系統(tǒng),,所以O(shè)Auth是一個開放的標(biāo)準(zhǔn),。目前,OAuth2.0已經(jīng)成為開放平臺認(rèn)證授權(quán)的事實上的標(biāo)準(zhǔn),。
2.3 基于OpenID的身份認(rèn)證
OpenID[6]技術(shù)的出現(xiàn)適應(yīng)了互聯(lián)網(wǎng)中分布式應(yīng)用與分散式控制的認(rèn)證特點,,由于它的開放、分散,、自由以及以用戶為中心的特征,,成為云計算中重要的數(shù)字身份認(rèn)證基本架構(gòu)。正如OpenID在其官方網(wǎng)站的介紹:OpenID以免費,、簡捷方式實現(xiàn)在Internet中單一數(shù)字身份認(rèn)證,,通過OpenID服務(wù),用戶可以登錄所有喜歡的Web站點,。在云計算中,,用戶需要以SSO方式同時登錄多個應(yīng)用系統(tǒng),實現(xiàn)以統(tǒng)一身份認(rèn)證為核心的開放應(yīng)用,,無論是公有云還是私有云環(huán)境,,OpenID都發(fā)揮了其功能優(yōu)勢。
與SAML不同的是,,OpenID是一個以Internet框架為基礎(chǔ)的數(shù)字身份認(rèn)證規(guī)范,,在Internet空間中,以URI(Uuniform Resource Identifier,,統(tǒng)一資源標(biāo)識符)來命名,、定位和標(biāo)識信息資源,OpenID采用了類似的方式,,也以URI來標(biāo)識用戶身份的唯一性,,而放棄了目前大部分系統(tǒng)基于用戶名和密碼驗證的身份認(rèn)證方式,逐步實現(xiàn)用戶身份標(biāo)識與信息空間中資源標(biāo)識的統(tǒng)一,。在OpenID認(rèn)證過程中,請求/應(yīng)答信息通過https協(xié)議在公共網(wǎng)絡(luò)中傳輸,OpenID認(rèn)證服務(wù)器成為整個認(rèn)證的中心,,可以采取冗余方式提供服務(wù)保障,,用戶身份信息全部集中在OpenID認(rèn)證服務(wù)器上,避免了分散存儲帶來的不安全因素,。
OpenID主要由標(biāo)識符(identifier),、依賴方(relying party,RP)和OpenID提供者(OpenID Provider,,OP)組成,。其中,標(biāo)識符為http/https形式的URI(目前在互聯(lián)網(wǎng)中多使用URL)或XRI(eXtensible Resource Identifier,,可擴展的資源標(biāo)識符)[7-8],,XRI是一套與URI兼容的抽象標(biāo)識符體系;RP是需要對訪問者的身份進(jìn)行驗證的Web系統(tǒng)或受保護(hù)的在線資源,,依賴OP的身份認(rèn)證服務(wù),;OP即OpenID認(rèn)證服務(wù)器,在為用戶提供和管理標(biāo)識符的同時,,還為用戶提供在線身份認(rèn)證服務(wù),,是整個OpenID系統(tǒng)的核心。
在采用OpenID的網(wǎng)絡(luò)中,,用戶首先需要向OP申請一個標(biāo)識符,,之后當(dāng)訪問受OpenID保護(hù)的RP時,RP會將該訪問重定向到OP,。OP通過標(biāo)識符對訪問者的身份進(jìn)行驗證,,無誤后將用戶訪問返回到RP(同時,OP也將驗證結(jié)果告知RP),。
3 云計算身份認(rèn)證模型
根據(jù)當(dāng)前云計算的技術(shù)和應(yīng)用現(xiàn)狀,,結(jié)合具體實踐項目,提出了融合SAML2.0,、OAuth2.0和OpenID2.0接入標(biāo)準(zhǔn)和開放接口的云計算身份認(rèn)證模型,,如圖4所示。該模型的建立,,在為當(dāng)前云計算統(tǒng)一身份認(rèn)證提供基本服務(wù)架構(gòu)的基礎(chǔ)上,,也為將來實現(xiàn)不同安全域(不同組織的資源系統(tǒng))之間的資源和管理整合提供了強有力的支持和適應(yīng)能力。例如,,當(dāng)不同的安全域之間需要進(jìn)行整合從而形成更大范圍的邏輯安全域時,,原來的安全域只需要通過各自的身份認(rèn)證平臺進(jìn)行基于身份互信的訪問,各安全域中原來的認(rèn)證方式還可以繼續(xù)使用,。
在圖4所示的模型中,,OAuth是整個資源的授權(quán)管理中心,,無論是單個“安全域”中的私有云服務(wù),還是基于整個邏輯安全域的公有云環(huán)境,,OAuth都能夠滿足授權(quán)管理需要,。本模型中同時提供了可供選擇的SAML和OpenID兩種身份認(rèn)證方式,其主要原因有兩點:(1)考慮到SAML應(yīng)用的廣泛性和用戶的認(rèn)可度,,尤其在通過私有云整合原有資源時,,SAML發(fā)揮了其優(yōu)勢。同時,,SAML也可以為OAuth授權(quán)信息的交換與傳輸提供安全保護(hù),。(2)考慮到用戶對資源標(biāo)識方式的習(xí)慣和接受過程,Open-
ID使用URI和XRI作為標(biāo)識符,,順應(yīng)了Internet信息空間中對資源的定位和標(biāo)識要求,,但考慮到云計算還處于起步階段,還需要考慮用戶和資源建設(shè)與管理者的已有習(xí)慣,,改變是必須的,,但需要一個過程。
圖4所示的云計算統(tǒng)一身份認(rèn)證模型是一個開放的標(biāo)準(zhǔn),,其主要功能是將云資源服務(wù)以安全便捷的方式提供給眾多的用戶,,并通過開放的接入標(biāo)準(zhǔn)將更多的資源和用戶加入其中,不斷擴大邏輯安全域的范圍,,真正將云計算提出的SaaS,、PaaS和IaaS理念變成現(xiàn)實。該模型兼容早期主流的SSO方式,,可對原有系統(tǒng)進(jìn)行平穩(wěn)升級,,在最大限度地保護(hù)用戶原有投資和體驗的同時,擴大了可共享資源的類型,、數(shù)量和范圍,。該模型具有的開放性實現(xiàn)了更多“安全域”的無縫加入,具體體現(xiàn)在具體操作和技術(shù)細(xì)節(jié)兩個方面,。其中,,具體操作規(guī)定了IdP和SP加入邏輯安全域時需要滿足的條件,如怎樣建立信任關(guān)系,、約定身份信息和服務(wù)信息的共享規(guī)則,、規(guī)定互相之間彼此信任和保密等;技術(shù)細(xì)節(jié)主要規(guī)定了IdP和SP加入邏輯安全域時需要滿足的技術(shù)條件以及如何執(zhí)行接入工作的技術(shù)細(xì)節(jié),,如必備的標(biāo)準(zhǔn)類庫及二次開發(fā)接口等,。
通過采用本文提出的模型,在不影響用戶對現(xiàn)有基于OpenSSO的統(tǒng)一身份認(rèn)證系統(tǒng)正常使用的同時,,減少了應(yīng)用開發(fā)的工作量,,并實現(xiàn)了原認(rèn)證系統(tǒng)與新建平臺的有機對接,,而且保留了原有的Agent、反向代理(Reverse Proxy),、API接入等應(yīng)用模式,。基于3種協(xié)議規(guī)范的認(rèn)證和授權(quán),,使得在邏輯安全域中本單位的“安全域”可同時提供IdP和SP雙重服務(wù)功能。
4 結(jié)論
統(tǒng)一身份認(rèn)證與云計算的融合,,使得統(tǒng)一身份認(rèn)證技術(shù)成為云計算的助推器和催化劑,,同時統(tǒng)一身份認(rèn)證技術(shù)也在云計算中找到了新的位置和發(fā)展方向。本文在繼承和發(fā)展身份認(rèn)證與資源授權(quán)領(lǐng)域已有技術(shù),、標(biāo)準(zhǔn)和規(guī)范的同時,,針對云計算安全管理,并聯(lián)系云計算項目研究實際,,提出了云計算統(tǒng)一身份模型,,具有較好的應(yīng)用價值和一定的借鑒意義。從總體來看,,云計算尚處于快速發(fā)展階段,,云計算中與系統(tǒng)安全與用戶管理相關(guān)的大量關(guān)鍵問題還需要深入研究。
參考文獻(xiàn)
[1] 羅軍舟,,金嘉暉,,宋愛波,等.云計算:體系架構(gòu)與關(guān)鍵技術(shù)[J].通信學(xué)報,,2011,,32(7):3-31.
[2] 林闖,蘇文博,,孟坤,,等.云計算安全:架構(gòu)、機制與模型評價[J].計算機學(xué)報,,2013,,36(9):1765-1784.
[3] OASIS.Security Assertion Markup Language(SAML) V2.0 echnical overview(committee draft 02)[EB/OL].(2008-03-25)[2014-09-24].https://www.oasis-open.org/committees/download.php/27819/sstc-saml-tech-overview-2.0-cd-02.pdf.
[4] OASIS.Security Assertion Markup Language(SAML) v2.0(OASIS standard set)[EB/OL].(2005-03-15)[2014-09-24].http://docs.oasis-open.org/security/saml/v2.0/saml-2.0-os.zip.
[5] Internet Engineering Task Force(IETF).The OAuth 2.0 authorization framework(RFC 6749)[EB/OL].(2012-10)[2014-09].http://www.rfc-editor.org/rfc/pdfrfc/rfc6749.txt.pdf.
[6] OpenID authentication 2.0-final[EB/OL].(2007-12-05)[2014-09-24].http://openid.net/specs/openid-authentica-tion-2_0.html.
[7] OASIS.Extensible Resource Identifier(XRI) resolution ver-sion 2.0(committee draft 02)[EB/OL].(2007-10-25)[2014-09-24].http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf.
[8] Joaquin Miller.Yadis specification 1.0[EB/OL].(2006-03-18)[2014-09-24].http://yadis.org/papers/yadis-v1.0.pdf.