■ 南開大學(xué) 梁爾民
如今幾乎每個(gè)云應(yīng)用都要求用戶注冊(cè)或認(rèn)證,用以保證區(qū)別于其他用戶,這是確保用戶能夠保存應(yīng)用中所做工作內(nèi)容的必要選項(xiàng)。
但是,云應(yīng)用要求用戶認(rèn)證還因?yàn)镠TTP協(xié)議是一種無(wú)狀態(tài)的協(xié)議,所以Web應(yīng)用就必須構(gòu)建一種機(jī)制來(lái)維持其狀態(tài),這種機(jī)制可以使用戶的會(huì)話與正在使用該應(yīng)用的其他任何人相互分離。
云身份管理對(duì)于安全從業(yè)者來(lái)說(shuō)有兩方面需要重視。
首先,幾乎每個(gè)應(yīng)用都需要管理云中的身份,應(yīng)用程序必須跟蹤用戶是誰(shuí),并且能夠授權(quán)、認(rèn)證用戶,還要能夠安全地區(qū)分每一個(gè)不同用戶;其次,云身份管理很重要,如果對(duì)其漠不關(guān)心,將帶來(lái)嚴(yán)重的后果。
由于這兩個(gè)動(dòng)因,近年來(lái)出現(xiàn)了大量的與認(rèn)證有關(guān)的安全問(wèn)題,有很多例子讓我們歷歷在目。幸運(yùn)的是,如今高校有很多選擇可以減輕云身份管理和安全威脅。
如今,受益于相關(guān)技術(shù)工具和服務(wù)的發(fā)展,可以緩解某些云中的身份管理問(wèn)題。這些工具和服務(wù)將作為服務(wù)的動(dòng)態(tài)屬性應(yīng)用到用戶身份管理中,而這些挑戰(zhàn)也應(yīng)用到計(jì)算和應(yīng)用的其它方面。不管是被稱為“身份即服務(wù)”還是所謂的“認(rèn)證即服務(wù)”,其觀念都是一樣的:為高?;蚱渌麊挝徊渴鹣嚓P(guān)應(yīng)用的外部服務(wù)供應(yīng)商承擔(dān)著認(rèn)證和注冊(cè)用戶的責(zé)任,并且還要管理用戶的信息。
為了更易于進(jìn)行云身份管理,這些服務(wù)使用了諸如SAML(安全斷言標(biāo)記語(yǔ)言)等經(jīng)過(guò)實(shí)踐檢驗(yàn)的有效標(biāo)準(zhǔn)。這就可以使應(yīng)用程序?qū)?shí)施機(jī)制留給供應(yīng)商來(lái)編寫。
SAML是一種支持安全聲明的標(biāo)準(zhǔn),其實(shí)質(zhì)是一種包含關(guān)于用戶認(rèn)證狀態(tài)信息的XML數(shù)據(jù)結(jié)構(gòu)。從歷史上看,SAML被用于支持諸如單點(diǎn)登錄的應(yīng)用程序。SAML可以使一方聲明為另一方,例如,為委托人(通常為一個(gè)用戶)提供驗(yàn)證的一家服務(wù)提供商。服務(wù)提供商可以解析這種安全聲明,并且可以確保用戶可以在其它地點(diǎn)認(rèn)證,因而無(wú)需重復(fù)認(rèn)證。
OAuth是IETF(互聯(lián)網(wǎng)工程任務(wù)組)維護(hù)的一個(gè)開放標(biāo)準(zhǔn),它一般通過(guò)REST API支持授權(quán)數(shù)據(jù)交換。OAuth可以實(shí)現(xiàn)由一方創(chuàng)建而由另一方解釋的訪問(wèn)令牌,通常使用HTTP Secure作為數(shù)據(jù)交換通道,由此就可以實(shí)現(xiàn)在兩個(gè)無(wú)狀態(tài)組件之間交換認(rèn)證狀態(tài)的信息。
將賬戶管理的細(xì)節(jié)委派給服務(wù)供應(yīng)商,意味著公司不再在應(yīng)用程序中跟蹤記錄相關(guān)數(shù)據(jù),其安全上的好處是將高校管理員從跟蹤口令的職責(zé)中解放出來(lái)。高校還可以更輕松地支持多重認(rèn)證,并且可以享受一種益處:將身份交由專家們進(jìn)行更好的分析。
將云身份管理進(jìn)行外包還有開發(fā)上的好處。首先,開發(fā)人員可以編寫更少的代碼,這就給了開發(fā)人員更多的時(shí)間,有利于更快地部署未來(lái)的應(yīng)用擴(kuò)展或是新的應(yīng)用服務(wù)。
外包云身份的管理還可以給用戶帶來(lái)便利,當(dāng)然,這要依賴于具體的使用情況。例如,如果高校用的是用戶們與之有關(guān)系的身份供應(yīng)商,那么,供應(yīng)商可以允許用戶用現(xiàn)有的賬戶和憑據(jù)登錄。當(dāng)然,主要的問(wèn)題在于有可能發(fā)生單點(diǎn)失效:如果服務(wù)提供商“宕機(jī)”或無(wú)法訪問(wèn),誰(shuí)還能登錄進(jìn)入應(yīng)用呢?
通過(guò)“認(rèn)證即服務(wù)”或“身份即服務(wù)”等方式實(shí)現(xiàn)云身份管理的好處,無(wú)論對(duì)于安全從業(yè)者還是開發(fā)人員都是非常明顯的。那么,該如何實(shí)施呢?在評(píng)估“認(rèn)證即服務(wù)”時(shí),我們需要考慮幾個(gè)因素:
重要的是要記住“認(rèn)證即服務(wù)”的使用背景。高校領(lǐng)導(dǎo)層應(yīng)當(dāng)確認(rèn)是否現(xiàn)在或?qū)?lái)需要與已有的應(yīng)用相集成,還要確認(rèn)已有的用戶賬戶,如活動(dòng)目錄,是否需要與SSO系統(tǒng)集成。
雖然這種建議看起來(lái)并不具有重要意義,但很多高校并沒(méi)有為這些專門的應(yīng)用情形找到理由,將其放在一個(gè)把多種產(chǎn)品整合在一起的地位,或者有一種更為糟糕的情況,就是購(gòu)買了多種擁有相同功能的冗余產(chǎn)品。借助外包的身份管理,如果高校用戶需要與非REST應(yīng)用(例如本地的桌面或中間件)實(shí)現(xiàn)集成,那么對(duì)于包括SAML、OAuth或OpenID Connect在內(nèi)的各種集成選項(xiàng)的訪問(wèn)可能有不少益處。
其次,要考慮云或本地實(shí)施的組織問(wèn)題。例如,如果高校需要與一個(gè)面向外部的Web應(yīng)用整合在一起,云的實(shí)施還是有優(yōu)勢(shì)的,這是由于本地的基礎(chǔ)架構(gòu)并不會(huì)成為單點(diǎn)故障。也就是說(shuō),如果有一個(gè)現(xiàn)有的本地用戶存儲(chǔ)或目錄,高校就要理解有些外部應(yīng)用(那些并不駐留在公司基礎(chǔ)架構(gòu)中的應(yīng)用)的需要,從而獲得對(duì)實(shí)施過(guò)程的訪問(wèn)以發(fā)揮功能。
最后,高校必須關(guān)注功能,用以支持所需要的認(rèn)證類型和現(xiàn)有的用戶賬戶目錄。例如,最好要根據(jù)具體情境和使用情況,增加第二級(jí)或是第三級(jí)的認(rèn)證因子,如令牌或生物特征。要認(rèn)真考慮賬戶信息整合到什么地方,并且要考慮這種整合可能面臨的挑戰(zhàn)。
例如,活動(dòng)目錄的標(biāo)準(zhǔn)方法是非常容易整合的,這種做法與那些為現(xiàn)有應(yīng)用程序定制開發(fā)的用戶數(shù)據(jù)庫(kù)完全相反。
高校用戶應(yīng)和以往一樣,在與供應(yīng)商合作之前,要進(jìn)行需求收集、架構(gòu)規(guī)劃以及與整合有關(guān)的詳細(xì)調(diào)查。從長(zhǎng)遠(yuǎn)來(lái)看,這會(huì)給高校節(jié)省大量的寶貴時(shí)間。