引言
除非一項服務(wù)僅提供匿名訪問,否則它就需要對用戶進行管理。為了分析和實現(xiàn)用戶體驗的個性化,服務(wù)需要確定每個連接用戶的身份。因此,對用戶身份的管理非常重要。但是,許多傳統(tǒng)的應(yīng)用都在彼此隔絕地解決身份認證問題,從而導(dǎo)致了用戶管理存儲及系統(tǒng)的數(shù)量激增。這種各自為戰(zhàn)的身份管理方法會產(chǎn)生如下一些問題:
1)用戶必須記住和手動重新輸入各種各樣數(shù)目繁多的賬戶和憑據(jù)。
2)這種給用戶帶來的額外負擔往往會導(dǎo)致用戶使用弱口令或在不同安全域中重復(fù)使用相同的憑據(jù)。因此,數(shù)據(jù)的敏感性可能就會受到損害。
3)用戶可能在另外創(chuàng)建賬戶時會躊躇不前,這就會導(dǎo)致網(wǎng)站訪問者的注冊率和轉(zhuǎn)化率都很低。
4)應(yīng)用提供商需要重新設(shè)計并管理一個身份管理系統(tǒng)。這要涉及相當多的工作,而這一領(lǐng)域往往并不是Web開發(fā)人員的核心競爭力所在。
5)各自為戰(zhàn)的方式會失去在經(jīng)過用戶授權(quán)后可以充分利用一些共同的網(wǎng)站需求和共享所獲得的信息的機會。
為解決這一問題,人們曾經(jīng)嘗試了各種各樣的方法,比如目錄同步、實時查找等。這些方法雖然解決了一些問題,但又制造出另外一些問題。因此,必須引入新的身份管理方法,其中聯(lián)合身份管理就是目前眾多企業(yè)所采取的身份管理方案,它能夠處理多個單位、大量應(yīng)用并支持數(shù)千甚至數(shù)百萬用戶公共身份的管理。盡管其需要一系列復(fù)雜的技術(shù)和業(yè)務(wù)流程,但目的卻很簡單:跨越管理邊界,自動共享身份信息。
1 身份管理的通用架構(gòu)
身份管理是一個集中式的、自動的方法,提供雇員或者其他授權(quán)的個人對資源擁有企業(yè)范圍的訪問。其重點是為用戶定義一個身份,為該身份關(guān)聯(lián)屬性,并完成用戶的身份認證。圖1 即為通用的身份管理架構(gòu)。

圖1 通用的身份管理架構(gòu)
圖中說明了通用身份管理結(jié)構(gòu)中的實體和數(shù)據(jù)流。一個當事人就是一個身份持有者,也就是一個想要訪問網(wǎng)絡(luò)資源和服務(wù)的人,用戶設(shè)施、代理程序和服務(wù)器系統(tǒng)都可能作為當事人。當事人向身份提供者證明自己,身份提供者為當事人關(guān)聯(lián)認證信息,如屬性等。
數(shù)據(jù)消費者是一些實體,能夠得到并使用由身份和屬性提供者提供的數(shù)據(jù),數(shù)據(jù)消費者常被用于支持授權(quán)決定和收集審計信息,如數(shù)據(jù)庫服務(wù)器或者文件服務(wù)器,需要客戶的證書來決定為該客戶提供什么樣的訪問權(quán)限。
2 聯(lián)合身份管理的通用架構(gòu)
在本質(zhì)上,身份聯(lián)合是身份管理在多個安全域上的一個擴展,這些域包括自治的內(nèi)部商業(yè)單元、外部的商業(yè)伙伴以及其他第三方的應(yīng)用和服務(wù)。目的是提供數(shù)字身份共享,使得用戶只需要一次認證就可以訪問多個域的應(yīng)用和資源。這些域是相對自治或者獨立的,因此可以采用非集中化控制,當然,合作的組織之間必須形成一個基于協(xié)商和相互信任的標準來安全地共享數(shù)字身份。圖2 給出了通用聯(lián)合身份管理結(jié)構(gòu)中的實體和數(shù)據(jù)流。

圖2 聯(lián)合身份管理架構(gòu)
其中具體的數(shù)據(jù)流為:
①終端用戶的瀏覽器或其他應(yīng)用需要和同一個域的身份提供者“通話”,終端用戶也提供與身份關(guān)聯(lián)的屬性值;
②一些與身份關(guān)聯(lián)的屬性,如許可的角色,可能由同一個域的管理員提供;
③用戶想要訪問的服務(wù)提供者的其他域,從資源域的身份提供者處獲取身份信息,認證信息和關(guān)聯(lián)信息;
④服務(wù)提供者和遠程用戶會話,執(zhí)行基于用戶身份和屬性的訪問控制限制。
身份提供者通過和用戶以及管理者會話、協(xié)議交換來獲得屬性信息,身份管理使得用戶一次性提供這些信息并將其保存,在滿足授權(quán)和隱私策略時發(fā)布給數(shù)據(jù)消費者。而服務(wù)提供者是一些實體,能夠得到和使用由身份和屬性提供者維持和提供的數(shù)據(jù),數(shù)據(jù)消費者常被用于支持授權(quán)決定和收集審計信息。一個服務(wù)提供者可以和用戶以及身份提供者在同一個域,但聯(lián)合身份管理中服務(wù)提供者和用戶在不同的域。
3 聯(lián)合身份管理的標準
目前涉及聯(lián)合身份管理的標準主要有兩大系列。在消費者市場中,開放式認證系統(tǒng)(OpenID,Open Identification)很流行;而在企業(yè)市場上,較為普通的是使用安全斷言標記語言(SAML,SecurityAssertion Markup Language)。
3.1 OpenID
OpenID 是一個對于以用戶為中心的數(shù)字身份的開放式、分散的自由框架。它消除了跨越不同站點的多個用戶名的需求,簡化了用戶的在線體驗。也就是說,它提供了一種可使用某一家服務(wù)提供商來建立賬戶并向其他接受OpenID 身份驗證的網(wǎng)站提供登錄功能的框架。即它是一個聯(lián)合式身份認證系統(tǒng),可用于跨不同Web服務(wù)的用戶身份驗證工作。用戶可以使用OpenID 身份認證提供商網(wǎng)站上的憑據(jù),登錄到OpenID 依賴方的網(wǎng)站上。圖3 顯示了利用谷歌應(yīng)用程序(Google Apps)的Web 應(yīng)用的過程。在這種情況下,Web 應(yīng)用是依賴方,而Google是身份認證提供商。
其中的數(shù)據(jù)流為:①用戶要在一個OpenID 身份提供商處創(chuàng)建一個賬戶;②用戶訪問一個OpenID依賴方的網(wǎng)站;③該網(wǎng)站提供了多種登錄選項,其中包括指向OpenID 身份認證提供商的鏈接。依賴方將用戶指向身份認證提供商,進行身份認證;④用戶使用身份認證提供商來驗證自己的身份;⑤身份認證提供商向依賴方提供一個令牌,以此來確認用戶的身份;⑥用戶現(xiàn)在無需再次輸入密碼就可以訪問依賴方的網(wǎng)站了。

圖3 Google登錄認證
3.2 SAML
SAML 是一種基于可擴展標記語言(XML,eXrensible Markup Language)的標準,用于在安全域之間,也就是在身份提供商與服務(wù)提供商之間交換認證及授權(quán)數(shù)據(jù)。它與OpenID 類似,也允許服務(wù)提供商僅提供服務(wù)而無須自己實現(xiàn)一個身份驗證系統(tǒng)。相反,該服務(wù)提供商會委托身份認證提供商來驗證用戶的身份。
SAML 是一個抽象的框架,它規(guī)定了斷言的定義以及用于獲取和傳輸這些斷言的協(xié)議。最重要的是,SAML 的核心規(guī)范并沒有定義任何最終用戶可見的行為。
對于那些需要與顧客身份存儲相連接的GoogleApps 托管服務(wù),托管在Google 上的應(yīng)用就是依賴方,但客戶要負責(zé)提供一個基于SAML 的用戶認證服務(wù),因此它就是身份認證提供商。圖4 為對GoogleApps 進行SAML 驗證的過程,其步驟如下述。

圖4 對Google Apps進行SAML驗證
①在開始進行身份驗證之前,合作伙伴首先要向Google 提供其單點登錄(SSO,Single Sign-On)服務(wù)的統(tǒng)一資源定位符(URL,Uniform ResourceLocator),還要提供一個公鑰,Google 要使用它來對SAML相應(yīng)進行驗證;
②當用戶請求訪問一個托管的Google 時,就會開始一個這樣的認證過程;
③Google 會產(chǎn)生一個SAML 身份驗證請求。然后,Google 就會將用戶瀏覽器重定向到身份認證提供商那里,在該SSO 服務(wù)的URL 中,嵌入有SAML 請求和所請求的Google 應(yīng)用的URL;
④身份認證提供商會對該SAML請求進行解碼,然后再驗證用戶的身份驗證。在驗證用戶身份時,可以要求用戶提供一個有效的登錄系統(tǒng),也可以通過檢查有效的會話Cookie 來進行驗證;
⑤身份認證提供商生成一個SAML 響應(yīng),其中包含驗證用戶的用戶名。這一響應(yīng)使用非對稱加密算法的公鑰和私鑰進行了數(shù)字簽名。身份認證提供商會對SAML響應(yīng)進行編碼,然后將其返回到用戶瀏覽器,同時還帶有對瀏覽器的重定向指令;
⑥瀏覽器將此消息轉(zhuǎn)發(fā)給Google 的斷言消費者服務(wù)(ACS,Assertion Consumer Service);⑦Google 的ACS 會使用驗證提供商的公共密鑰來對SAML響應(yīng)進行校驗。如果驗證成功,ACS 就會將用戶重定向到目標URL中,并登錄到Google Apps的賬戶上。
總之,這兩個標準很相似。SAML 較為靈活,但實施起來也較難。OpenID迎合了Web SSO 的需要,它定義了一種專門的用戶交互方式。如果你的目標是基于Web 的單點登錄,那么OpenID 就是最簡單的一種解決方案了。在其他情況下,比如在使用后端身份存儲進行透明身份驗證的情況下,則SAML能夠提供更多的選擇。
4 結(jié)語
集成的身份管理是云計算所面臨的最大挑戰(zhàn)之一。目前最佳的解決方案是不要建立自己的身份管理解決方案,而是積極采用聯(lián)合式身份識別解決方案,要使用OpenID 或SAML 來利用別人的身份存儲,這樣就可以使得企業(yè)能夠更好地進行日志記錄和審計工作,同時還能降低與密碼重置和安全訪問現(xiàn)有的異構(gòu)應(yīng)用相關(guān)的成本[7]。同樣,它們還能減少孤兒賬戶的風(fēng)險,從而防止那些已離開公司的前雇員們訪問應(yīng)用。它們用一個全面的關(guān)于訪問權(quán)限的視圖來取代了那些基于電子表格的報表機制,這一視圖能夠讓你清楚地了解安全態(tài)勢,并能幫助你實現(xiàn)集中式的、全企業(yè)范圍的安全控制。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的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)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標題:云計算環(huán)境下聯(lián)合身份管理研究
本文網(wǎng)址:http://www.oesoe.com/html/support/1112159354.html
























