文獻(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)兩方面的問(wèn)題,,認(rèn)證決定用戶是否具有對(duì)某一系統(tǒng)或資源的訪問(wèn)權(quán)限,,而授權(quán)則決定用戶能夠訪問(wèn)特定系統(tǒng)或資源的具體內(nèi)容。由于云計(jì)算服務(wù)構(gòu)建在具有極高擴(kuò)展能力的信息基礎(chǔ)架構(gòu)上,,而且服務(wù)通過(guò)動(dòng)態(tài),、靈活的可配置資源按需提供,所以身份認(rèn)證和授權(quán)訪問(wè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ī)范,提出了一種開(kāi)放標(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)通過(guò)虛擬化技術(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)行屬性過(guò)濾,、管理認(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)證用于判定“訪問(wèn)者是誰(shuí)”,,授權(quán)用于決定“訪問(wèn)者能做什么”,,而SSO實(shí)現(xiàn)了用戶在一個(gè)邏輯安全區(qū)域內(nèi)的一次登錄、多次訪問(wèn)能力,,即用戶只要正常登錄了邏輯安全域中的某一應(yīng)用系統(tǒng),就可以自由訪問(wèn)該域中其他應(yīng)用系統(tǒng)中的授權(quán)資源,,SSO同時(shí)包含著認(rèn)證和授權(quán)兩個(gè)過(guò)程,。
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ì)象訪問(wèn)協(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)。用戶代理訪問(wèn)SP,,當(dāng)SP接收到該訪問(wèn)請(qǐng)求后便向IdP發(fā)送身份認(rèn)證請(qǐng)求,。此時(shí)IdP將要求該用戶提供類似于用戶名、密碼等能夠證明其身份的信息,,并以此作為其合法性的斷言,。當(dāng)SP從IdP獲取該身份斷言后,便可以決定是否為該用戶提供服務(wù),。在此過(guò)程中,,因?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,,開(kāi)放授權(quán))[5]是一個(gè)開(kāi)放標(biāo)準(zhǔn)的聯(lián)合協(xié)議,,旨在幫助用戶將受保護(hù)的資源授權(quán)給第三方使用,且支持細(xì)粒度的權(quán)限控制,。在授權(quán)過(guò)程中,,OAuth不需要將用戶名和密碼以及其他認(rèn)證憑證提供給第三方,增強(qiáng)了授權(quán)過(guò)程的安全性,。OAuth標(biāo)準(zhǔn)主要針對(duì)個(gè)人用戶對(duì)資源的開(kāi)放授權(quán),,也在組織內(nèi)部私有云服務(wù)網(wǎng)絡(luò)中發(fā)揮了其功能優(yōu)勢(shì),,可以與OpenID、SAML等認(rèn)證技術(shù)配合實(shí)現(xiàn)開(kāi)放標(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)操作既可以通過(guò)“在線授權(quán)”方式手動(dòng)執(zhí)行,也可以通過(guò)系統(tǒng)默認(rèn)設(shè)置自動(dòng)進(jìn)行“離線授權(quán)”,。RS用于存放受保護(hù)資源,,并處理對(duì)資源的訪問(wèn)請(qǐng)求。Client指第三方應(yīng)用(這里的Client作為“客戶端”理解時(shí)是針對(duì)RS而言的),,它在獲得RO的授權(quán)許可后便可以去訪問(wè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ā)訪問(wèn)令牌(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)文中一般包含要訪問(wèn)的資源路徑、操作類型,、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)求“訪問(wèn)令牌”(Access Token),。此時(shí),AS需要驗(yàn)證Client提交給自己的“授權(quán)許可”,,并要求Client提供用于驗(yàn)證其身份的信息(多為用戶名和密碼),。
(4)AS在通過(guò)對(duì)Client的身份驗(yàn)證后,便向它返回一個(gè)“訪問(wèn)令牌”,,只有持有訪問(wèn)令牌的Client才能訪問(wèn)資源,。
(5)Client向RS提交“訪問(wèn)令牌”。
(6)RS驗(yàn)證“訪問(wèn)令牌”的有效性,,具體由令牌的頒發(fā)機(jī)構(gòu),、令牌頒發(fā)日期、時(shí)間戳等屬性決定,。當(dāng)驗(yàn)證通過(guò)后,,才允許Client訪問(wèn)受保護(hù)的資源。其中,,在令牌的有效期內(nèi),,Client可以多次攜帶同一個(gè)“訪問(wèn)令牌”去訪問(wèn)受保護(hù)的資源。
在OAuth協(xié)議的整個(gè)授權(quán)過(guò)程中沒(méi)有直接用到第三方(Client)的私有信息,,而是使用“訪問(wèn)令牌”和數(shù)字簽名方式,,提高了協(xié)議的安全性。同時(shí),,任何第三方都可以使用OAuth AS,,任何服務(wù)提供者都可以組建自己的OAuth授權(quán)服務(wù)系統(tǒng),所以O(shè)Auth是一個(gè)開(kāi)放的標(biāo)準(zhǔn),。目前,,OAuth2.0已經(jīng)成為開(kāi)放平臺(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),,由于它的開(kāi)放,、分散、自由以及以用戶為中心的特征,,成為云計(jì)算中重要的數(shù)字身份認(rèn)證基本架構(gòu),。正如OpenID在其官方網(wǎng)站的介紹:OpenID以免費(fèi)、簡(jiǎn)捷方式實(shí)現(xiàn)在Internet中單一數(shù)字身份認(rèn)證,,通過(guò)OpenID服務(wù),,用戶可以登錄所有喜歡的Web站點(diǎn)。在云計(jì)算中,,用戶需要以SSO方式同時(shí)登錄多個(gè)應(yīng)用系統(tǒng),,實(shí)現(xiàn)以統(tǒng)一身份認(rèn)證為核心的開(kāi)放應(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)證過(guò)程中,請(qǐng)求/應(yīng)答信息通過(guò)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ì)訪問(wèn)者的身份進(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)訪問(wèn)受OpenID保護(hù)的RP時(shí),,RP會(huì)將該訪問(wèn)重定向到OP。OP通過(guò)標(biāo)識(shí)符對(duì)訪問(wèn)者的身份進(jìn)行驗(yàn)證,,無(wú)誤后將用戶訪問(wèn)返回到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)和開(kāi)放接口的云計(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)的安全域只需要通過(guò)各自的身份認(rèn)證平臺(tái)進(jìn)行基于身份互信的訪問(wè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)可度,尤其在通過(guò)私有云整合原有資源時(shí),,SAML發(fā)揮了其優(yōu)勢(shì),。同時(shí),SAML也可以為OAuth授權(quán)信息的交換與傳輸提供安全保護(hù),。(2)考慮到用戶對(duì)資源標(biāo)識(shí)方式的習(xí)慣和接受過(guò)程,,Open-
ID使用URI和XRI作為標(biāo)識(shí)符,順應(yīng)了Internet信息空間中對(duì)資源的定位和標(biāo)識(shí)要求,,但考慮到云計(jì)算還處于起步階段,,還需要考慮用戶和資源建設(shè)與管理者的已有習(xí)慣,改變是必須的,,但需要一個(gè)過(guò)程,。
圖4所示的云計(jì)算統(tǒng)一身份認(rèn)證模型是一個(gè)開(kāi)放的標(biāo)準(zhǔn),其主要功能是將云資源服務(wù)以安全便捷的方式提供給眾多的用戶,,并通過(guò)開(kāi)放的接入標(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ù)量和范圍,。該模型具有的開(kāi)放性實(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ù)及二次開(kāi)發(fā)接口等。
通過(guò)采用本文提出的模型,,在不影響用戶對(duì)現(xiàn)有基于OpenSSO的統(tǒng)一身份認(rèn)證系統(tǒng)正常使用的同時(shí),,減少了應(yīng)用開(kāi)發(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)鍵問(wèn)題還需要深入研究,。
參考文獻(xiàn)
[1] 羅軍舟,,金嘉暉,宋愛(ài)波,,等.云計(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.