引言
除非一項(xiàng)服務(wù)僅提供匿名訪問,否則它就需要對(duì)用戶進(jìn)行管理。為了分析和實(shí)現(xiàn)用戶體驗(yàn)的個(gè)性化,服務(wù)需要確定每個(gè)連接用戶的身份。因此,對(duì)用戶身份的管理非常重要。但是,許多傳統(tǒng)的應(yīng)用都在彼此隔絕地解決身份認(rèn)證問題,從而導(dǎo)致了用戶管理存儲(chǔ)及系統(tǒng)的數(shù)量激增。這種各自為戰(zhàn)的身份管理方法會(huì)產(chǎn)生如下一些問題:
1)用戶必須記住和手動(dòng)重新輸入各種各樣數(shù)目繁多的賬戶和憑據(jù)。
2)這種給用戶帶來的額外負(fù)擔(dān)往往會(huì)導(dǎo)致用戶使用弱口令或在不同安全域中重復(fù)使用相同的憑據(jù)。因此,數(shù)據(jù)的敏感性可能就會(huì)受到損害。
3)用戶可能在另外創(chuàng)建賬戶時(shí)會(huì)躊躇不前,這就會(huì)導(dǎo)致網(wǎng)站訪問者的注冊(cè)率和轉(zhuǎn)化率都很低。
4)應(yīng)用提供商需要重新設(shè)計(jì)并管理一個(gè)身份管理系統(tǒng)。這要涉及相當(dāng)多的工作,而這一領(lǐng)域往往并不是Web開發(fā)人員的核心競爭力所在。
5)各自為戰(zhàn)的方式會(huì)失去在經(jīng)過用戶授權(quán)后可以充分利用一些共同的網(wǎng)站需求和共享所獲得的信息的機(jī)會(huì)。
為解決這一問題,人們?cè)?jīng)嘗試了各種各樣的方法,比如目錄同步、實(shí)時(shí)查找等。這些方法雖然解決了一些問題,但又制造出另外一些問題。因此,必須引入新的身份管理方法,其中聯(lián)合身份管理就是目前眾多企業(yè)所采取的身份管理方案,它能夠處理多個(gè)單位、大量應(yīng)用并支持?jǐn)?shù)千甚至數(shù)百萬用戶公共身份的管理。盡管其需要一系列復(fù)雜的技術(shù)和業(yè)務(wù)流程,但目的卻很簡單:跨越管理邊界,自動(dòng)共享身份信息。
1 身份管理的通用架構(gòu)
身份管理是一個(gè)集中式的、自動(dòng)的方法,提供雇員或者其他授權(quán)的個(gè)人對(duì)資源擁有企業(yè)范圍的訪問。其重點(diǎn)是為用戶定義一個(gè)身份,為該身份關(guān)聯(lián)屬性,并完成用戶的身份認(rèn)證。圖1 即為通用的身份管理架構(gòu)。
圖1 通用的身份管理架構(gòu)
圖中說明了通用身份管理結(jié)構(gòu)中的實(shí)體和數(shù)據(jù)流。一個(gè)當(dāng)事人就是一個(gè)身份持有者,也就是一個(gè)想要訪問網(wǎng)絡(luò)資源和服務(wù)的人,用戶設(shè)施、代理程序和服務(wù)器系統(tǒng)都可能作為當(dāng)事人。當(dāng)事人向身份提供者證明自己,身份提供者為當(dāng)事人關(guān)聯(lián)認(rèn)證信息,如屬性等。
數(shù)據(jù)消費(fèi)者是一些實(shí)體,能夠得到并使用由身份和屬性提供者提供的數(shù)據(jù),數(shù)據(jù)消費(fèi)者常被用于支持授權(quán)決定和收集審計(jì)信息,如數(shù)據(jù)庫服務(wù)器或者文件服務(wù)器,需要客戶的證書來決定為該客戶提供什么樣的訪問權(quán)限。
2 聯(lián)合身份管理的通用架構(gòu)
在本質(zhì)上,身份聯(lián)合是身份管理在多個(gè)安全域上的一個(gè)擴(kuò)展,這些域包括自治的內(nèi)部商業(yè)單元、外部的商業(yè)伙伴以及其他第三方的應(yīng)用和服務(wù)。目的是提供數(shù)字身份共享,使得用戶只需要一次認(rèn)證就可以訪問多個(gè)域的應(yīng)用和資源。這些域是相對(duì)自治或者獨(dú)立的,因此可以采用非集中化控制,當(dāng)然,合作的組織之間必須形成一個(gè)基于協(xié)商和相互信任的標(biāo)準(zhǔn)來安全地共享數(shù)字身份。圖2 給出了通用聯(lián)合身份管理結(jié)構(gòu)中的實(shí)體和數(shù)據(jù)流。
圖2 聯(lián)合身份管理架構(gòu)
其中具體的數(shù)據(jù)流為:
①終端用戶的瀏覽器或其他應(yīng)用需要和同一個(gè)域的身份提供者“通話”,終端用戶也提供與身份關(guān)聯(lián)的屬性值;
②一些與身份關(guān)聯(lián)的屬性,如許可的角色,可能由同一個(gè)域的管理員提供;
③用戶想要訪問的服務(wù)提供者的其他域,從資源域的身份提供者處獲取身份信息,認(rèn)證信息和關(guān)聯(lián)信息;
④服務(wù)提供者和遠(yuǎn)程用戶會(huì)話,執(zhí)行基于用戶身份和屬性的訪問控制限制。
身份提供者通過和用戶以及管理者會(huì)話、協(xié)議交換來獲得屬性信息,身份管理使得用戶一次性提供這些信息并將其保存,在滿足授權(quán)和隱私策略時(shí)發(fā)布給數(shù)據(jù)消費(fèi)者。而服務(wù)提供者是一些實(shí)體,能夠得到和使用由身份和屬性提供者維持和提供的數(shù)據(jù),數(shù)據(jù)消費(fèi)者常被用于支持授權(quán)決定和收集審計(jì)信息。一個(gè)服務(wù)提供者可以和用戶以及身份提供者在同一個(gè)域,但聯(lián)合身份管理中服務(wù)提供者和用戶在不同的域。
3 聯(lián)合身份管理的標(biāo)準(zhǔn)
目前涉及聯(lián)合身份管理的標(biāo)準(zhǔn)主要有兩大系列。在消費(fèi)者市場中,開放式認(rèn)證系統(tǒng)(OpenID,Open Identification)很流行;而在企業(yè)市場上,較為普通的是使用安全斷言標(biāo)記語言(SAML,SecurityAssertion Markup Language)。
3.1 OpenID
OpenID 是一個(gè)對(duì)于以用戶為中心的數(shù)字身份的開放式、分散的自由框架。它消除了跨越不同站點(diǎn)的多個(gè)用戶名的需求,簡化了用戶的在線體驗(yàn)。也就是說,它提供了一種可使用某一家服務(wù)提供商來建立賬戶并向其他接受OpenID 身份驗(yàn)證的網(wǎng)站提供登錄功能的框架。即它是一個(gè)聯(lián)合式身份認(rèn)證系統(tǒng),可用于跨不同Web服務(wù)的用戶身份驗(yàn)證工作。用戶可以使用OpenID 身份認(rèn)證提供商網(wǎng)站上的憑據(jù),登錄到OpenID 依賴方的網(wǎng)站上。圖3 顯示了利用谷歌應(yīng)用程序(Google Apps)的Web 應(yīng)用的過程。在這種情況下,Web 應(yīng)用是依賴方,而Google是身份認(rèn)證提供商。
其中的數(shù)據(jù)流為:①用戶要在一個(gè)OpenID 身份提供商處創(chuàng)建一個(gè)賬戶;②用戶訪問一個(gè)OpenID依賴方的網(wǎng)站;③該網(wǎng)站提供了多種登錄選項(xiàng),其中包括指向OpenID 身份認(rèn)證提供商的鏈接。依賴方將用戶指向身份認(rèn)證提供商,進(jìn)行身份認(rèn)證;④用戶使用身份認(rèn)證提供商來驗(yàn)證自己的身份;⑤身份認(rèn)證提供商向依賴方提供一個(gè)令牌,以此來確認(rèn)用戶的身份;⑥用戶現(xiàn)在無需再次輸入密碼就可以訪問依賴方的網(wǎng)站了。
圖3 Google登錄認(rèn)證
3.2 SAML
SAML 是一種基于可擴(kuò)展標(biāo)記語言(XML,eXrensible Markup Language)的標(biāo)準(zhǔn),用于在安全域之間,也就是在身份提供商與服務(wù)提供商之間交換認(rèn)證及授權(quán)數(shù)據(jù)。它與OpenID 類似,也允許服務(wù)提供商僅提供服務(wù)而無須自己實(shí)現(xiàn)一個(gè)身份驗(yàn)證系統(tǒng)。相反,該服務(wù)提供商會(huì)委托身份認(rèn)證提供商來驗(yàn)證用戶的身份。
SAML 是一個(gè)抽象的框架,它規(guī)定了斷言的定義以及用于獲取和傳輸這些斷言的協(xié)議。最重要的是,SAML 的核心規(guī)范并沒有定義任何最終用戶可見的行為。
對(duì)于那些需要與顧客身份存儲(chǔ)相連接的GoogleApps 托管服務(wù),托管在Google 上的應(yīng)用就是依賴方,但客戶要負(fù)責(zé)提供一個(gè)基于SAML 的用戶認(rèn)證服務(wù),因此它就是身份認(rèn)證提供商。圖4 為對(duì)GoogleApps 進(jìn)行SAML 驗(yàn)證的過程,其步驟如下述。
圖4 對(duì)Google Apps進(jìn)行SAML驗(yàn)證
①在開始進(jìn)行身份驗(yàn)證之前,合作伙伴首先要向Google 提供其單點(diǎn)登錄(SSO,Single Sign-On)服務(wù)的統(tǒng)一資源定位符(URL,Uniform ResourceLocator),還要提供一個(gè)公鑰,Google 要使用它來對(duì)SAML相應(yīng)進(jìn)行驗(yàn)證;
②當(dāng)用戶請(qǐng)求訪問一個(gè)托管的Google 時(shí),就會(huì)開始一個(gè)這樣的認(rèn)證過程;
③Google 會(huì)產(chǎn)生一個(gè)SAML 身份驗(yàn)證請(qǐng)求。然后,Google 就會(huì)將用戶瀏覽器重定向到身份認(rèn)證提供商那里,在該SSO 服務(wù)的URL 中,嵌入有SAML 請(qǐng)求和所請(qǐng)求的Google 應(yīng)用的URL;
④身份認(rèn)證提供商會(huì)對(duì)該SAML請(qǐng)求進(jìn)行解碼,然后再驗(yàn)證用戶的身份驗(yàn)證。在驗(yàn)證用戶身份時(shí),可以要求用戶提供一個(gè)有效的登錄系統(tǒng),也可以通過檢查有效的會(huì)話Cookie 來進(jìn)行驗(yàn)證;
⑤身份認(rèn)證提供商生成一個(gè)SAML 響應(yīng),其中包含驗(yàn)證用戶的用戶名。這一響應(yīng)使用非對(duì)稱加密算法的公鑰和私鑰進(jìn)行了數(shù)字簽名。身份認(rèn)證提供商會(huì)對(duì)SAML響應(yīng)進(jìn)行編碼,然后將其返回到用戶瀏覽器,同時(shí)還帶有對(duì)瀏覽器的重定向指令;
⑥瀏覽器將此消息轉(zhuǎn)發(fā)給Google 的斷言消費(fèi)者服務(wù)(ACS,Assertion Consumer Service);⑦Google 的ACS 會(huì)使用驗(yàn)證提供商的公共密鑰來對(duì)SAML響應(yīng)進(jìn)行校驗(yàn)。如果驗(yàn)證成功,ACS 就會(huì)將用戶重定向到目標(biāo)URL中,并登錄到Google Apps的賬戶上。
總之,這兩個(gè)標(biāo)準(zhǔn)很相似。SAML 較為靈活,但實(shí)施起來也較難。OpenID迎合了Web SSO 的需要,它定義了一種專門的用戶交互方式。如果你的目標(biāo)是基于Web 的單點(diǎn)登錄,那么OpenID 就是最簡單的一種解決方案了。在其他情況下,比如在使用后端身份存儲(chǔ)進(jìn)行透明身份驗(yàn)證的情況下,則SAML能夠提供更多的選擇。
4 結(jié)語
集成的身份管理是云計(jì)算所面臨的最大挑戰(zhàn)之一。目前最佳的解決方案是不要建立自己的身份管理解決方案,而是積極采用聯(lián)合式身份識(shí)別解決方案,要使用OpenID 或SAML 來利用別人的身份存儲(chǔ),這樣就可以使得企業(yè)能夠更好地進(jìn)行日志記錄和審計(jì)工作,同時(shí)還能降低與密碼重置和安全訪問現(xiàn)有的異構(gòu)應(yīng)用相關(guān)的成本[7]。同樣,它們還能減少孤兒賬戶的風(fēng)險(xiǎn),從而防止那些已離開公司的前雇員們?cè)L問應(yīng)用。它們用一個(gè)全面的關(guān)于訪問權(quán)限的視圖來取代了那些基于電子表格的報(bào)表機(jī)制,這一視圖能夠讓你清楚地了解安全態(tài)勢,并能幫助你實(shí)現(xiàn)集中式的、全企業(yè)范圍的安全控制。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:云計(jì)算環(huán)境下聯(lián)合身份管理研究
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112159354.html