隨筆 - 19, 文章 - 93, 評論 - 17, 引用 - 0
          數(shù)據(jù)加載中……

          SAML:集中身份管理的秘訣

          SAML:集中身份管理的秘訣

          <>http://www2.ccw.com.cn/05/0505/e/0505e04_1.asp</P>
          SAML:集中身份管理的秘訣
          <>
          <B>■ 曉晨 編譯</B>

          </P>


          <>


          <P>身份管理是個(gè)復(fù)雜問題。它包括口令維護(hù)、用戶配置和訪問控制管理。本文著重介紹了身份管理中被SAML大大簡化了的一部分,即基于角色的訪問控制(RBAC)。越來越多的廠商在支持RBAC,因?yàn)樗梢宰尮芾韱T簡化訪問控制列表。
          <P>曾經(jīng)調(diào)查過一個(gè)數(shù)據(jù):內(nèi)部用戶和外部伙伴同時(shí)在使用的口令有多少?回答居然超過15個(gè)。當(dāng)然,他們可以把這15個(gè)口令全記在腦子里,每次需要訪問新的資源、新的應(yīng)用或者新的數(shù)據(jù)庫時(shí),找到相應(yīng)的管理員。管理員會隨叫隨到,永不休假,而且始終會有后備管理員。當(dāng)用戶離開公司、被解雇或伙伴轉(zhuǎn)眼間變成對手后,管理員總是會被告知要迅速取消他們的訪問權(quán)限。在這種理想情況下,我們知道,CIO們總是會因?yàn)榈玫搅擞脩舴从车哪芊浅H菀椎卦L問數(shù)據(jù)的夸獎而開心不已。
          <P>解決這些問題的一個(gè)方法是身份管理。身份管理是指對用戶配置、口令和訪問控制的管理。訪問權(quán)限通常存放在不同的位置,不同的應(yīng)用和資源有著不同的訪問控制列表。身份管理必須控制分布在不同位置上的數(shù)據(jù)、人員和資源的使用情況。過去,身份管理功能由許多不同的系統(tǒng)完成,比如,某一個(gè)程序處理用戶的配置,另一個(gè)程序管理口令,輕型目錄訪問協(xié)議(LDAP)可保存驗(yàn)證信息,而每個(gè)應(yīng)用程序(或管理員)則維持不同的用戶訪問控制列表。那時(shí),維護(hù)、同步及更新這些不同功能是一件費(fèi)力又費(fèi)錢的事。
          <P>為此,有人開發(fā)了結(jié)合身份管理等多項(xiàng)功能的驗(yàn)證/授權(quán)(AA)Web服務(wù),向整個(gè)企業(yè)推行聯(lián)合的單次登錄方案,向加強(qiáng)身份管理這一目標(biāo)邁出了第一步。這種AA Web服務(wù)是一種系列的多級服務(wù),可以讓用戶登錄一次,然后就可以調(diào)用Web服務(wù)、訪問很多應(yīng)用系統(tǒng)和數(shù)據(jù)資源。這種方法有兩大好處:首先,它有助于簡化身份管理,因?yàn)樗褜υL問控制的管理從本地的多個(gè)應(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ī)則引擎作為安全包的一個(gè)部分。之所以選擇Jericho Systems,是因?yàn)檫@家公司提供的產(chǎn)品物美價(jià)廉,而且愿意遷就各種限制。利用EnterSpace,你可以結(jié)合使用SAML、規(guī)則集以及定制的規(guī)則,把身份管理的所有部分與作為管理中心的LDAP聯(lián)系起來。
          <P>集中及聯(lián)系配置、口令管理和訪問控制讓生活更簡單。把身份管理流程與作為參考點(diǎn)和管理中心的LDAP聯(lián)系起來是很自然的事。不過,LDAP通常用于驗(yàn)證,而不是用于授權(quán)。SAML便于把LDAP驗(yàn)證和訪問授權(quán)聯(lián)系起來。?
          <P><B>SAML的作用</B>
          <P>2002年11月,結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織(OASIS)批準(zhǔn)了SAML作為商業(yè)合作伙伴之間交換驗(yàn)證和授權(quán)信息的可擴(kuò)展標(biāo)記語言(XML)框架,尤其是借助Web服務(wù)交換的信息。有了SAML,多家公司管理的站點(diǎn)之間就可以實(shí)現(xiàn)基于Web的安全兼容,如單次登錄。
          <P>SAML利用基本的Web服務(wù)標(biāo)準(zhǔn),如XML、簡單對象訪問協(xié)議(SOAP)和傳輸層安全(TLS),支持安全交換驗(yàn)證和授權(quán)信息。RSA、Netegrity、IBM、Oracle、BEA、Oblix和Jericho等廠商已承諾支持SAML,并正在把這項(xiàng)規(guī)范實(shí)施到各自的產(chǎn)品中去。
          <P>“SAML斷言”(SAML Assertion)使用SOAP消息里面的標(biāo)題通過HTTP進(jìn)行傳輸,在斷言管理方和轉(zhuǎn)發(fā)方之間傳輸安全信息。比如,用戶在某一站點(diǎn)登錄后,SAML斷言會傳輸用戶驗(yàn)證令牌,其中提供了通過驗(yàn)證登錄遠(yuǎn)程站點(diǎn)驗(yàn)證的手段。SAML封包包括驗(yàn)證令牌和用戶屬性,可以對照用于驗(yàn)證和訪問控制的規(guī)則引擎進(jìn)行檢驗(yàn)。
          <P>值得一提的是,SAML不負(fù)責(zé)驗(yàn)證,它只負(fù)責(zé)傳輸被驗(yàn)證的信息。另外,SAML可使用不同的驗(yàn)證管理機(jī)構(gòu),比如LDAP、活動目錄和RADIUS,允許使用不同的識別方法,如口令、生物檢測術(shù)、公鑰基礎(chǔ)設(shè)施(PKI)、安全套接層(SSL)和Kerberos等等。隨后,作為傳輸機(jī)制,SAML傳輸用戶已通過驗(yàn)證的斷言信息。相比之下,SAML既不進(jìn)行授權(quán),也不傳輸訪問控制信息。
          <P>不妨把SAML想像成電影里由彪形大漢看守的一道門。如果某個(gè)可疑的人過來說:“是Joe讓我來的”,這意味著Joe驗(yàn)證了該人身份,門衛(wèi)會把他引到玩撲克牌的地方。如果一位光彩照人的女演員過來說:“是Rudolph讓我來的”,門衛(wèi)會先檢查Rudolph的貴賓訪問列表,找到她的名字后,一路護(hù)送她觀看賭場。最后,如果詹姆斯·邦德亮一下卡,看一眼掃描裝置,就可能通過了身份卡和虹膜掃描的驗(yàn)證。然后,驗(yàn)證系統(tǒng)會與識別哪些特工有權(quán)進(jìn)入的授權(quán)列表作一個(gè)對照。
          <P><B>SAML的安全風(fēng)險(xiǎn)</B>
          <P>SAML可能會受到三種廣為人知的安全攻擊:
          <P>重放攻擊(replay attack):如果惡意黑客劫持SAML令牌后進(jìn)行重放,獲得非法訪問權(quán),就會發(fā)生這種攻擊;
          <P>DNS欺騙:如果黑客截獲SAML令牌后,發(fā)送虛假的DNS地址,就會發(fā)生這種攻擊;
          <P>HTTP鏈接攻擊(HTTP Referrer Attack):如果黑客重新使用HTTP鏈接標(biāo)記,就會發(fā)生這種攻擊。
          <P>利用定時(shí)會話可以減小或者消除這三種攻擊的威脅。可以采用以下辦法來消除攻擊:令牌只用一次,并且把令牌使用情況記入日志,這樣重新使用就會被標(biāo)出來;使用IP地址避免DNS欺騙;使用安全超文本傳輸協(xié)議(HTTPS)和SSL/TLS,消除HTTP攻擊。專家和分析師一致認(rèn)為,這些風(fēng)險(xiǎn)是可以緩解的;SAML為斷言提供了一種安全標(biāo)準(zhǔn)。
          <P><B>過程簡介</B>
          <P>AA Web服務(wù)按順序執(zhí)行安全操作。使用用戶名和口令對與LDAP服務(wù)器上的信息進(jìn)行對照,就可以識別及驗(yàn)證用戶的獨(dú)特身份。每次登錄會話都會創(chuàng)建攜有驗(yàn)證信息和用戶信息的SAML令牌。用戶通過使用定義訪問控制的規(guī)則,獲得訪問數(shù)據(jù)資源的授權(quán),而Jericho Systems的EnterSpace規(guī)則引擎負(fù)責(zé)評估。
          <P>這個(gè)大體上的流程如圖1所示。評估工作包括解析來自SAML令牌的信息,規(guī)則基于策略創(chuàng)建而成。因?yàn)橐?guī)則控制訪問,并體現(xiàn)策略,所以引擎通過實(shí)施規(guī)則來執(zhí)行策略管理。非常籠統(tǒng)地說,用戶基于LDAP信息、用戶信息和訪問規(guī)則獲得訪問權(quán)限。此外,用戶離開公司后,他們的由LDAP管理的所有賬戶會被注銷,所有訪問權(quán)同時(shí)被取消。這樣,你就可以基于作為管理中心的LDAP來集中管理身份。

          圖1 安全作業(yè)順序
          <P>為了加以說明,不妨看看圖2所示的幾個(gè)步驟。用戶登錄到桌面機(jī)上的客戶端后,客戶端通過本地LDAP(圖中沒有顯示)對其進(jìn)行驗(yàn)證。然后,客戶端向SAML服務(wù)方發(fā)送包括返回驗(yàn)證信息的請求,SAML服務(wù)方對信息打包處理后供Web服務(wù)使用。Web服務(wù)就會通過發(fā)送查詢給LDAP服務(wù)器(圖中沒有顯示)核實(shí)SAML令牌里的驗(yàn)證信息。一旦通過了核實(shí),Web服務(wù)就根據(jù)規(guī)則引擎中的規(guī)則,允許訪問數(shù)據(jù)資源。然后,Web服務(wù)返回響應(yīng)給客戶端,從而完成用戶的請求過程。

          圖2 驗(yàn)證/授權(quán)Web服務(wù)過程的重要參與者
          <P><B>工作原理</B>
          <P>AA服務(wù)是一種復(fù)雜的Web服務(wù),遵守面向服務(wù)架構(gòu)(SOA)的原則。它基于HTTPS上的SOAP,兩者都是非專利性的開放標(biāo)準(zhǔn),獨(dú)立于軟件語言或者廠商系統(tǒng)。它們不需要使用、許可或維護(hù)的費(fèi)用。利用SOA原則進(jìn)行設(shè)計(jì)意味著,你可用模塊化方式構(gòu)建這項(xiàng)Web服務(wù),為了使用和維護(hù)的方便性,必要時(shí)可以刪除或者更換它。因此,你不必改動其他部分,就可以改動架構(gòu)的任何部分。
          <P>AA服務(wù)使用本地域LDAP進(jìn)行驗(yàn)證及隨后基于SAML的安全斷言。SAML令牌用來把斷言傳輸?shù)娇尚刨Y源,再由可信資源允許或拒絕對數(shù)據(jù)資源的訪問。
          <P>這種功能類似駕駛執(zhí)照:機(jī)動車輛管理局(DMV)就是管理方(好比LDAP),負(fù)責(zé)核實(shí)你的身份及駕駛資格。交警充當(dāng)可信資源,負(fù)責(zé)向DMV復(fù)核身份,然后根據(jù)目前的駕駛資格或者道路規(guī)則,批準(zhǔn)或者禁止某駕駛員是否有權(quán)駕駛。
          <P>AA服務(wù)在使用規(guī)則引擎評估授權(quán)規(guī)則時(shí),以允許或拒絕訪問數(shù)據(jù)資源限定條件的安全策略為基礎(chǔ)。引擎規(guī)則對加強(qiáng)策略管理來說是核心所在。
          <P>使用LDAP作為管理方還有助于實(shí)現(xiàn)身份集中管理。不是在單個(gè)資源處管理資源訪問,而是使用LDAP和定義用戶角色及相應(yīng)數(shù)據(jù)參數(shù)(如部門和管理級別)的相應(yīng)策略,來管理用戶訪問列表。
          <P>以下是這個(gè)過程的幾個(gè)重要步驟:
          <P>第1步:用戶登錄。用戶需要訪問數(shù)據(jù)資源,于是使用SOAP客戶端利用用戶名和口令對進(jìn)行登錄。客戶端把用戶名和口令對(還有可能是其他安全因素)傳送給LDAP進(jìn)行驗(yàn)證。LDAP核實(shí)用戶后,把信息返回給客戶端。
          <P>第2步:SAML令牌。SOAP客戶端把返回的LDAP信息及其他用戶信息傳送給SAML客戶端。該服務(wù)方會按正確格式把信息打包成SAML令牌,SAML客戶端把令牌返回給SOAP客戶端,然后SOAP客戶端把SAML令牌和用戶請求打包成SOAP請求。
          <P>第3步:SAML會話開始。SOAP客戶端開啟定時(shí)的SAML會話,并發(fā)送SOAP請求給相應(yīng)的Web服務(wù),以滿足用戶需求。Web服務(wù)解析SAML令牌后,通過LDAP核實(shí)驗(yàn)證信息。這樣,用戶只要登錄一次:每個(gè)Web服務(wù)都可以充當(dāng)用戶代理,并獲得數(shù)據(jù)資源的信任,因?yàn)閃eb服務(wù)核實(shí)了請求信息。
          <P>第4步: 授權(quán)。經(jīng)驗(yàn)證后,Web服務(wù)發(fā)送請求給運(yùn)行規(guī)則引擎的SAML服務(wù)器。SAML在這一步并不是絕對必要的,但對我們來說很方便。規(guī)則引擎評估用戶參數(shù)后,確定授權(quán)用戶的訪問級別。評估工作基于體現(xiàn)一組預(yù)定訪問策略的規(guī)則進(jìn)行。訪問級別核實(shí)信息返回給Web服務(wù)。
          <P>第5步: 請求完成。Web服務(wù)請求數(shù)據(jù)源提供數(shù)據(jù),把請求結(jié)果打包成SOAP響應(yīng),然后發(fā)回給SOAP客戶端。SOAP客戶端再把數(shù)據(jù)提供給用戶,同時(shí)終止SAML會話。SAML令牌期滿,不能重復(fù)使用。
          <P><B>集中就是統(tǒng)一</B>
          <P>總的說來,我們建立的基于SAML的AA Web服務(wù)依靠LDAP作為管理中心。使用LDAP和執(zhí)行安全策略的授權(quán)規(guī)則引擎可以實(shí)現(xiàn)集中身份管理。集中身份管理的一個(gè)好處是,可以獲得簡化和統(tǒng)一的訪問控制管理。
          <P>集中身份管理意味著,你可以在某一個(gè)點(diǎn)管理訪問控制列表。比如,終止某個(gè)員工的賬戶就可以終止與中央賬戶(這里是LDAP)相關(guān)的所有訪問。這種Web服務(wù)為斷言、認(rèn)證和服務(wù)提供了通用服務(wù)。開發(fā)人員可以調(diào)用這種Web服務(wù),允許Web服務(wù)訪問所需的應(yīng)用和數(shù)據(jù)資源。
          <P><B>所汲取經(jīng)驗(yàn)</B>
          <P>SAML傳輸?shù)氖橇钆疲皇球?yàn)證或者授權(quán)機(jī)制。為了緩解風(fēng)險(xiǎn),SAML系統(tǒng)使用定時(shí)會話、IP地址、HTTPS和SSL/TLS。安全Web服務(wù)非常復(fù)雜,涉及法律、安全和政治等方面。
          <P>使用LDAP作為管理中心可以實(shí)現(xiàn)集中身份管理。規(guī)則引擎為訪問控制和策略管理提供了有效而靈活的方案(它同時(shí)支持基于角色和基于屬性的訪問控制)。
          <P>可以簡化身份管理,首先是因?yàn)榭梢栽贚DAP處激活或者禁用賬戶。其次,可以避免費(fèi)用,因?yàn)榭梢约屑皽p少驗(yàn)證應(yīng)用,減少審查風(fēng)險(xiǎn)。最后,可以簡化身份管理,是因?yàn)橘~戶管理使用現(xiàn)有的LDAP服務(wù),從而減少了開銷、加強(qiáng)了同步。
          (計(jì)算機(jī)世界報(bào) 第05期 B25、B26) </P></P>

          posted on 2006-04-20 11:58 BPM 閱讀(761) 評論(0)  編輯  收藏 所屬分類: Java 安全標(biāo)準(zhǔn)

          主站蜘蛛池模板: 乌什县| 弋阳县| 漳浦县| 柳州市| 永和县| 金堂县| 达拉特旗| 正宁县| 尼玛县| 白河县| 河北区| 苏尼特右旗| 沅江市| 南京市| 汉沽区| 南部县| 莲花县| 景东| 新安县| 若羌县| 宜州市| 玉田县| 武平县| 万盛区| 富川| 芜湖市| 无为县| 海伦市| 开鲁县| 崇仁县| 洞口县| 鲜城| 乌兰察布市| 红河县| 高阳县| 陇西县| 江油市| 芜湖市| 任丘市| 延川县| 武隆县|