SAML:集中身份管理的秘訣
SAML:集中身份管理的秘訣
<>http://www2.ccw.com.cn/05/0505/e/0505e04_1.asp</P>
SAML:集中身份管理的秘訣
<>
<B>■ 曉晨 編譯</B>
</P>
<>
<P>身份管理是個復(fù)雜問題。它包括口令維護、用戶配置和訪問控制管理。本文著重介紹了身份管理中被SAML大大簡化了的一部分,即基于角色的訪問控制(RBAC)。越來越多的廠商在支持RBAC,因為它可以讓管理員簡化訪問控制列表。
<P>曾經(jīng)調(diào)查過一個數(shù)據(jù):內(nèi)部用戶和外部伙伴同時在使用的口令有多少?回答居然超過15個。當(dāng)然,他們可以把這15個口令全記在腦子里,每次需要訪問新的資源、新的應(yīng)用或者新的數(shù)據(jù)庫時,找到相應(yīng)的管理員。管理員會隨叫隨到,永不休假,而且始終會有后備管理員。當(dāng)用戶離開公司、被解雇或伙伴轉(zhuǎn)眼間變成對手后,管理員總是會被告知要迅速取消他們的訪問權(quán)限。在這種理想情況下,我們知道,CIO們總是會因為得到了用戶反映的能非常容易地訪問數(shù)據(jù)的夸獎而開心不已。
<P>解決這些問題的一個方法是身份管理。身份管理是指對用戶配置、口令和訪問控制的管理。訪問權(quán)限通常存放在不同的位置,不同的應(yīng)用和資源有著不同的訪問控制列表。身份管理必須控制分布在不同位置上的數(shù)據(jù)、人員和資源的使用情況。過去,身份管理功能由許多不同的系統(tǒng)完成,比如,某一個程序處理用戶的配置,另一個程序管理口令,輕型目錄訪問協(xié)議(LDAP)可保存驗證信息,而每個應(yīng)用程序(或管理員)則維持不同的用戶訪問控制列表。那時,維護、同步及更新這些不同功能是一件費力又費錢的事。
<P>為此,有人開發(fā)了結(jié)合身份管理等多項功能的驗證/授權(quán)(AA)Web服務(wù),向整個企業(yè)推行聯(lián)合的單次登錄方案,向加強身份管理這一目標(biāo)邁出了第一步。這種AA Web服務(wù)是一種系列的多級服務(wù),可以讓用戶登錄一次,然后就可以調(diào)用Web服務(wù)、訪問很多應(yīng)用系統(tǒng)和數(shù)據(jù)資源。這種方法有兩大好處:首先,它有助于簡化身份管理,因為它把對訪問控制的管理從本地的多個應(yīng)用系統(tǒng)轉(zhuǎn)移到了管理中心,如LDAP。其次,它提供了讓W(xué)eb服務(wù)可以訪問數(shù)據(jù)的一般的方法。
<P><B>集中是關(guān)鍵</B>
<P>使用LDAP作為管理中心的辦法可采用Jericho Systems公司提供的規(guī)則集。這家軟件公司開發(fā)的EnterSpace產(chǎn)品將SAML服務(wù)和規(guī)則引擎作為安全包的一個部分。之所以選擇Jericho Systems,是因為這家公司提供的產(chǎn)品物美價廉,而且愿意遷就各種限制。利用EnterSpace,你可以結(jié)合使用SAML、規(guī)則集以及定制的規(guī)則,把身份管理的所有部分與作為管理中心的LDAP聯(lián)系起來。
<P>集中及聯(lián)系配置、口令管理和訪問控制讓生活更簡單。把身份管理流程與作為參考點和管理中心的LDAP聯(lián)系起來是很自然的事。不過,LDAP通常用于驗證,而不是用于授權(quán)。SAML便于把LDAP驗證和訪問授權(quán)聯(lián)系起來。?
<P><B>SAML的作用</B>
<P>2002年11月,結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進組織(OASIS)批準(zhǔn)了SAML作為商業(yè)合作伙伴之間交換驗證和授權(quán)信息的可擴展標(biāo)記語言(XML)框架,尤其是借助Web服務(wù)交換的信息。有了SAML,多家公司管理的站點之間就可以實現(xiàn)基于Web的安全兼容,如單次登錄。
<P>SAML利用基本的Web服務(wù)標(biāo)準(zhǔn),如XML、簡單對象訪問協(xié)議(SOAP)和傳輸層安全(TLS),支持安全交換驗證和授權(quán)信息。RSA、Netegrity、IBM、Oracle、BEA、Oblix和Jericho等廠商已承諾支持SAML,并正在把這項規(guī)范實施到各自的產(chǎn)品中去。
<P>“SAML斷言”(SAML Assertion)使用SOAP消息里面的標(biāo)題通過HTTP進行傳輸,在斷言管理方和轉(zhuǎn)發(fā)方之間傳輸安全信息。比如,用戶在某一站點登錄后,SAML斷言會傳輸用戶驗證令牌,其中提供了通過驗證登錄遠(yuǎn)程站點驗證的手段。SAML封包包括驗證令牌和用戶屬性,可以對照用于驗證和訪問控制的規(guī)則引擎進行檢驗。
<P>值得一提的是,SAML不負(fù)責(zé)驗證,它只負(fù)責(zé)傳輸被驗證的信息。另外,SAML可使用不同的驗證管理機構(gòu),比如LDAP、活動目錄和RADIUS,允許使用不同的識別方法,如口令、生物檢測術(shù)、公鑰基礎(chǔ)設(shè)施(PKI)、安全套接層(SSL)和Kerberos等等。隨后,作為傳輸機制,SAML傳輸用戶已通過驗證的斷言信息。相比之下,SAML既不進行授權(quán),也不傳輸訪問控制信息。
<P>不妨把SAML想像成電影里由彪形大漢看守的一道門。如果某個可疑的人過來說:“是Joe讓我來的”,這意味著Joe驗證了該人身份,門衛(wèi)會把他引到玩撲克牌的地方。如果一位光彩照人的女演員過來說:“是Rudolph讓我來的”,門衛(wèi)會先檢查Rudolph的貴賓訪問列表,找到她的名字后,一路護送她觀看賭場。最后,如果詹姆斯·邦德亮一下卡,看一眼掃描裝置,就可能通過了身份卡和虹膜掃描的驗證。然后,驗證系統(tǒng)會與識別哪些特工有權(quán)進入的授權(quán)列表作一個對照。
<P><B>SAML的安全風(fēng)險</B>
<P>SAML可能會受到三種廣為人知的安全攻擊:
<P>重放攻擊(replay attack):如果惡意黑客劫持SAML令牌后進行重放,獲得非法訪問權(quán),就會發(fā)生這種攻擊;
<P>DNS欺騙:如果黑客截獲SAML令牌后,發(fā)送虛假的DNS地址,就會發(fā)生這種攻擊;
<P>HTTP鏈接攻擊(HTTP Referrer Attack):如果黑客重新使用HTTP鏈接標(biāo)記,就會發(fā)生這種攻擊。
<P>利用定時會話可以減小或者消除這三種攻擊的威脅。可以采用以下辦法來消除攻擊:令牌只用一次,并且把令牌使用情況記入日志,這樣重新使用就會被標(biāo)出來;使用IP地址避免DNS欺騙;使用安全超文本傳輸協(xié)議(HTTPS)和SSL/TLS,消除HTTP攻擊。專家和分析師一致認(rèn)為,這些風(fēng)險是可以緩解的;SAML為斷言提供了一種安全標(biāo)準(zhǔn)。
<P><B>過程簡介</B>
<P>AA Web服務(wù)按順序執(zhí)行安全操作。使用用戶名和口令對與LDAP服務(wù)器上的信息進行對照,就可以識別及驗證用戶的獨特身份。每次登錄會話都會創(chuàng)建攜有驗證信息和用戶信息的SAML令牌。用戶通過使用定義訪問控制的規(guī)則,獲得訪問數(shù)據(jù)資源的授權(quán),而Jericho Systems的EnterSpace規(guī)則引擎負(fù)責(zé)評估。
<P>這個大體上的流程如圖1所示。評估工作包括解析來自SAML令牌的信息,規(guī)則基于策略創(chuàng)建而成。因為規(guī)則控制訪問,并體現(xiàn)策略,所以引擎通過實施規(guī)則來執(zhí)行策略管理。非常籠統(tǒng)地說,用戶基于LDAP信息、用戶信息和訪問規(guī)則獲得訪問權(quán)限。此外,用戶離開公司后,他們的由LDAP管理的所有賬戶會被注銷,所有訪問權(quán)同時被取消。這樣,你就可以基于作為管理中心的LDAP來集中管理身份。
圖1 安全作業(yè)順序
<P>為了加以說明,不妨看看圖2所示的幾個步驟。用戶登錄到桌面機上的客戶端后,客戶端通過本地LDAP(圖中沒有顯示)對其進行驗證。然后,客戶端向SAML服務(wù)方發(fā)送包括返回驗證信息的請求,SAML服務(wù)方對信息打包處理后供Web服務(wù)使用。Web服務(wù)就會通過發(fā)送查詢給LDAP服務(wù)器(圖中沒有顯示)核實SAML令牌里的驗證信息。一旦通過了核實,Web服務(wù)就根據(jù)規(guī)則引擎中的規(guī)則,允許訪問數(shù)據(jù)資源。然后,Web服務(wù)返回響應(yīng)給客戶端,從而完成用戶的請求過程。
圖2 驗證/授權(quán)Web服務(wù)過程的重要參與者
<P><B>工作原理</B>
<P>AA服務(wù)是一種復(fù)雜的Web服務(wù),遵守面向服務(wù)架構(gòu)(SOA)的原則。它基于HTTPS上的SOAP,兩者都是非專利性的開放標(biāo)準(zhǔn),獨立于軟件語言或者廠商系統(tǒng)。它們不需要使用、許可或維護的費用。利用SOA原則進行設(shè)計意味著,你可用模塊化方式構(gòu)建這項Web服務(wù),為了使用和維護的方便性,必要時可以刪除或者更換它。因此,你不必改動其他部分,就可以改動架構(gòu)的任何部分。
<P>AA服務(wù)使用本地域LDAP進行驗證及隨后基于SAML的安全斷言。SAML令牌用來把斷言傳輸?shù)娇尚刨Y源,再由可信資源允許或拒絕對數(shù)據(jù)資源的訪問。
<P>這種功能類似駕駛執(zhí)照:機動車輛管理局(DMV)就是管理方(好比LDAP),負(fù)責(zé)核實你的身份及駕駛資格。交警充當(dāng)可信資源,負(fù)責(zé)向DMV復(fù)核身份,然后根據(jù)目前的駕駛資格或者道路規(guī)則,批準(zhǔn)或者禁止某駕駛員是否有權(quán)駕駛。
<P>AA服務(wù)在使用規(guī)則引擎評估授權(quán)規(guī)則時,以允許或拒絕訪問數(shù)據(jù)資源限定條件的安全策略為基礎(chǔ)。引擎規(guī)則對加強策略管理來說是核心所在。
<P>使用LDAP作為管理方還有助于實現(xiàn)身份集中管理。不是在單個資源處管理資源訪問,而是使用LDAP和定義用戶角色及相應(yīng)數(shù)據(jù)參數(shù)(如部門和管理級別)的相應(yīng)策略,來管理用戶訪問列表。
<P>以下是這個過程的幾個重要步驟:
<P>第1步:用戶登錄。用戶需要訪問數(shù)據(jù)資源,于是使用SOAP客戶端利用用戶名和口令對進行登錄。客戶端把用戶名和口令對(還有可能是其他安全因素)傳送給LDAP進行驗證。LDAP核實用戶后,把信息返回給客戶端。
<P>第2步:SAML令牌。SOAP客戶端把返回的LDAP信息及其他用戶信息傳送給SAML客戶端。該服務(wù)方會按正確格式把信息打包成SAML令牌,SAML客戶端把令牌返回給SOAP客戶端,然后SOAP客戶端把SAML令牌和用戶請求打包成SOAP請求。
<P>第3步:SAML會話開始。SOAP客戶端開啟定時的SAML會話,并發(fā)送SOAP請求給相應(yīng)的Web服務(wù),以滿足用戶需求。Web服務(wù)解析SAML令牌后,通過LDAP核實驗證信息。這樣,用戶只要登錄一次:每個Web服務(wù)都可以充當(dāng)用戶代理,并獲得數(shù)據(jù)資源的信任,因為Web服務(wù)核實了請求信息。
<P>第4步: 授權(quán)。經(jīng)驗證后,Web服務(wù)發(fā)送請求給運行規(guī)則引擎的SAML服務(wù)器。SAML在這一步并不是絕對必要的,但對我們來說很方便。規(guī)則引擎評估用戶參數(shù)后,確定授權(quán)用戶的訪問級別。評估工作基于體現(xiàn)一組預(yù)定訪問策略的規(guī)則進行。訪問級別核實信息返回給Web服務(wù)。
<P>第5步: 請求完成。Web服務(wù)請求數(shù)據(jù)源提供數(shù)據(jù),把請求結(jié)果打包成SOAP響應(yīng),然后發(fā)回給SOAP客戶端。SOAP客戶端再把數(shù)據(jù)提供給用戶,同時終止SAML會話。SAML令牌期滿,不能重復(fù)使用。
<P><B>集中就是統(tǒng)一</B>
<P>總的說來,我們建立的基于SAML的AA Web服務(wù)依靠LDAP作為管理中心。使用LDAP和執(zhí)行安全策略的授權(quán)規(guī)則引擎可以實現(xiàn)集中身份管理。集中身份管理的一個好處是,可以獲得簡化和統(tǒng)一的訪問控制管理。
<P>集中身份管理意味著,你可以在某一個點管理訪問控制列表。比如,終止某個員工的賬戶就可以終止與中央賬戶(這里是LDAP)相關(guān)的所有訪問。這種Web服務(wù)為斷言、認(rèn)證和服務(wù)提供了通用服務(wù)。開發(fā)人員可以調(diào)用這種Web服務(wù),允許Web服務(wù)訪問所需的應(yīng)用和數(shù)據(jù)資源。
<P><B>所汲取經(jīng)驗</B>
<P>SAML傳輸?shù)氖橇钆疲皇球炞C或者授權(quán)機制。為了緩解風(fēng)險,SAML系統(tǒng)使用定時會話、IP地址、HTTPS和SSL/TLS。安全Web服務(wù)非常復(fù)雜,涉及法律、安全和政治等方面。
<P>使用LDAP作為管理中心可以實現(xiàn)集中身份管理。規(guī)則引擎為訪問控制和策略管理提供了有效而靈活的方案(它同時支持基于角色和基于屬性的訪問控制)。
<P>可以簡化身份管理,首先是因為可以在LDAP處激活或者禁用賬戶。其次,可以避免費用,因為可以集中及減少驗證應(yīng)用,減少審查風(fēng)險。最后,可以簡化身份管理,是因為賬戶管理使用現(xiàn)有的LDAP服務(wù),從而減少了開銷、加強了同步。
(計算機世界報 第05期 B25、B26) </P></P>
posted on 2006-04-20 11:58 BPM 閱讀(769) 評論(0) 編輯 收藏 所屬分類: Java 安全標(biāo)準(zhǔn)