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