安全斷言標(biāo)記SAML是一種可擴展標(biāo)識語言_第1頁
安全斷言標(biāo)記SAML是一種可擴展標(biāo)識語言_第2頁
安全斷言標(biāo)記SAML是一種可擴展標(biāo)識語言_第3頁
安全斷言標(biāo)記SAML是一種可擴展標(biāo)識語言_第4頁
安全斷言標(biāo)記SAML是一種可擴展標(biāo)識語言_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

安全斷言標(biāo)記語言(SAML,Security Language)是一種可擴展標(biāo)識語SAML定義三種元件:斷言、協(xié)議以及約束。存在驗證、標(biāo)志、三種斷言。驗證斷言確認用戶的,標(biāo)志斷言包含特定的用戶信息,斷言確認用戶得到。SAML標(biāo)準(zhǔn)&協(xié)協(xié)議定義SAML如何請求和接收斷言。約束定義如何將SAML消息交換映射成簡單對象協(xié)議(SOAP)交換。SAML與多個協(xié)議一起工作,包括超文本傳輸協(xié)議(HTTP、簡單郵件傳輸協(xié)議(SMTP、文件傳輸協(xié)議(FTP,它還支持SOAP、Bizalk以及電子商務(wù)XML(ebXML。結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進組織(OASIS)是SASAML標(biāo)準(zhǔn)&協(xié)SAML是OASS制定的一種安全性斷言標(biāo)記語言,它用于在復(fù)雜的環(huán)境下交換用戶的識別信息。在SAML誕生之前,如果想在ebsphere、eblogc和SunONE等之間實現(xiàn)SSO,須分別實現(xiàn)一個適配層,來達成一種相互理解的協(xié)議,在該協(xié)議上,產(chǎn)品能夠共享各自的用戶認證/信息。SAML誕生之后,我們免去了這種煩惱??梢灶A(yù)計,將來大部分產(chǎn)品都可以實現(xiàn)基于SAML的服務(wù)。事實上 已經(jīng)在很多商業(yè)/開源產(chǎn)品中得到實現(xiàn),包括IBMTivoliAccessManagerOblixNetPointEntegritySolutionsAssureAccessInternet2OpenSAMLYaleCAS3RSASecurityClearTrustEntrustGetAccess7SAML背后是強大的商業(yè)和開源,盡管遲遲未能在SAML2.0觀點上達成一致,但它也正努力跟進SAML標(biāo)準(zhǔn)化過程,由此可見SAML協(xié)議已經(jīng)是勢在必行。理解SAML的概念很重要,個人認為SAML協(xié)議的原理跟CAS/Kerberos很類斷言,這個在SAML的””,是整個SAML協(xié)議中出現(xiàn)的最多的字眼,我們可以將斷言方的斷言必須通過一些,比如數(shù)字簽名,以確保斷言的確實來自斷言方。SAML目標(biāo)是讓多個應(yīng)用間實現(xiàn)(IdentityFederation),提起,大家可以想象一下歐盟,歐盟國家之間的公民都具有一個,比如Peter是法國公民,John是比利時公民,這兩個公民的都能夠互相被共享,恰好,是一個,但他能像Peter和Jhhn那樣隨意進入歐盟國家,顯然不能,因為它不具有歐盟。理解了的概念,我們就可以回到SAML上,SAML解決了環(huán)境中如何識別身份信息共享的標(biāo)準(zhǔn)化問題,比如,法國的Peter進入時,他如何證明自己的呢?SAML就是為了解決這個問題。在環(huán)境中,通常有下面的3種實體Subject)Subject是SAML實體中的第一個重要的概念,Subject包括了UserEntityRelyingParty信任方):SAML中的ServiceProvider角色,也就是提供服務(wù)的一方AssertingParty斷言方):SAML中的IdentityProvider角色,用于提供對的我們看看環(huán)境的一個場景假設(shè)有一個eer(Subec)的法國公民,他需要時(Servicerovider),他在時機場被要求提供,Peter提供了歐盟(ederation)的通行證件,隨即,這個通行證件在時機場被審核,或通過計算機送到歐盟認證中心(IdentiyProvider),該中心有一個由所有歐盟國家共同建立的公民數(shù)據(jù)庫,中心審核了eer的,并斷言“es,eisPeterromFrance”,于是,Peter得到禮貌的回應(yīng)“歡迎光臨時”。如果你將歐盟看作是一個環(huán)境,你會發(fā)現(xiàn)上面的場景跟在環(huán)境應(yīng)用SAML很在環(huán)境下,任何需要的服務(wù)都需要知道服務(wù)請求方的信息(Whoareyou),服務(wù)提供方(ServiceProvider)不負責(zé)審核用戶的,但它依賴于1個甚至多IdentityProvider來完成此任務(wù),見下圖。1個IdnetityProvider可以被多個ServiceProvider共享,當(dāng)然,共享的前提是建立信任關(guān)系(即ServiceProvider要信任IdnetityProvider),就好比如,如果時(ServiceProvider)需要開放對歐盟國家成員,它信任歐盟的IdnetityProvider,它信任歐盟的IdnetityProvider的任何判斷,包括”HeisPeterFromFrance”。至于是否讓Peter入境,那是受權(quán)限策略的控制(注SAML同樣對Authorization斷言做了標(biāo)準(zhǔn)化,此處,我們僅僅關(guān)注Authentication)。22SAML的2在協(xié)議的角度,SAML原理非常類似CAS和Kerberos,CAS協(xié)議依賴于CASServer,Kerberos依賴于KDC,而SAML則依賴于IdentityProvider。根據(jù)ServiceProvider(以下簡稱SP)和IdentityProvider(以下簡稱IDP)的交互方式,SAML可以分為以下幾種模式:一種是SP拉方式,一種是IDP推方式。SAMLSPSubjectSPSP主動到IDP去了解Subject的斷言,而IDP推方式則是IDP主動把Subject的斷言通過某種途徑告訴SP。SAMLPOST/ArtifactBindings方式(SP拉方式該方式的主要特點是,SP獲得客戶端的憑證(是IDP對Subject的一種認可)之后,主動請求IDP對Subject的憑證的斷言。如下圖所示:Subject是根據(jù)憑證去SP的。憑證代表了Subject的,它類似于“來自IDP證明:我就是Peter,法國公民”。SPSubjectSP的受保護資源,SP發(fā)現(xiàn)Subject的請求中沒有包含任何的信息,于是它重定向用戶IDP.協(xié)議執(zhí)行:1,Subject向IDP請求憑證(方式是提交用戶名/2,IDPSubject3Subject的驗證信息正確,他將獲取IDPSP4,SPSubject的憑證,它是提供服務(wù)之前必須驗證次憑證,于是,它產(chǎn)生了一個SAML請求,要求IDP對憑證斷言5IDPSAML6,SPIDPSAMLSubjectSAMLRedirect/POSTBindings(IDPIDPSubject的不是憑證,而是斷言。1,SubjectSP的服務(wù),SP重定向Subject到IDP獲取斷言2,IDP會要求Subject提供能夠證明它自己的(Password,X.509等)3,Subject向IDP提供了自己的帳號。4,IDP驗證之后,會重訂向Subject到原來的SP5,SP校驗IDP的斷言(注意,IDP會對自己的斷言簽名,SP信任IDP的,因此,通過校驗簽名,能夠確信從Subject過來的斷言確實來自IDP的斷言)。SAML2.0特性分6SPSAML2.0特性分IdPSP在OracleWebLogic或者任何其他應(yīng)用服務(wù)器中,中間件的錯誤檢測和解決方案,允許同時為IdP和SP進行SAML安全調(diào)試和/或直接“”日志是一個標(biāo)準(zhǔn)測試過程。為Web應(yīng)用瀏覽器認證使用SAML時,另一種工具是tcpmon。tcpmon是一個在TCP連接上監(jiān)視如果使用Firefox為LiveHTTP頭進行單元測試,tcpmon是一個很好的插件,用來測試要求的SAML驗證的重定向。在HTTP協(xié)議層,為了調(diào)試SP和Idp如何在驗證和斷言處理期間重定向瀏覽器,LiveHTTP標(biāo)題是很有用的。建立伙伴信任關(guān)如參考文章所言,關(guān)鍵配置要求不只配置一個僅有的私鑰。這種處理類型只對開發(fā)模有好處。我們強烈推薦從一個如VeriSign這樣有效的頒發(fā)機構(gòu)獲得一個完全可信的證為可信任伙伴的SAML集成,至少需要兩條關(guān)鍵因用于SP上的斷言消費服務(wù)的私鑰為IdP(見圖一)提供了SSL客戶端驗證功(見圖一)從斷言方來的斷言用來驗證簽名公鑰或可信任的。這個必須在SAML斷言器的表中過,必須為瀏覽器/POST信息所配置。生產(chǎn)環(huán)需要SSO或跨域集成的中間件應(yīng)用通常要求中間件環(huán)境下的高度可擴展性或容錯復(fù)制。就中間件SAML安全模型而言,除了要求源站點和目標(biāo)URLs的模型不受到影響,啟示:SAML2.0特對很多組織來說,最有可能是根據(jù)新特性是否具有足夠的迫使軟件組織決定轉(zhuǎn)SAML20包含一個單點退出協(xié)議,它幾乎同時支持WebSSO參與者會話的注銷。對于SAML11,這種“普遍注銷”功能必須結(jié)合dP內(nèi)在的管理行為來設(shè)計。例如,在驗證單點登陸到多個服務(wù)的提供者后,用戶可以依照提供者的要求自動退出所有服務(wù)提供者。<AuthentcationSaemen>元素已更名為<AuthnSaemen>。<AuthnSateen>元素現(xiàn)在支持了會話的概念,以便支持單點注銷和其他會話管理要求。SAML模式的可擴展性機制已經(jīng)更新了。因為有利于類型擴展,XSD元素的替代者已<xsanyAttribue>,因為可以添加任意屬性而無需創(chuàng)建一個模式擴展,如,對象確認數(shù)據(jù)和SAML屬性。這是一,就像傳入用戶登陸的上下文。例如,一個通過了驗證用戶可能有能力從多個位置驗證應(yīng)用,并且該應(yīng)用可能對非常有了解這個信息。這篇文章曾是基于瀏覽器/POST配置文件。在SAML1.1中這兩個原始的瀏覽器配置文件(Browser/Artifact和Browser/POST)已經(jīng)合并到了單一的瀏覽器SSO的配置文件中了。雖然增強的用戶和SSO配置已經(jīng)加入了,但又產(chǎn)生了兩種不同的配置。SAML1.1SAML2.0不只是跟上當(dāng)前技術(shù)問題,SAML2提供了一個完整的分布式SSO體驗,然而,SAML1.1有一些嚴(yán)重的缺陷。最后,送給持有意見的SAML:集 管理的秘FrankTeti是Ironworks的一位架構(gòu)師,以前屬于Oracle/BEASystemsSOA/BPM的實施。你可SAML:集 管理的秘管理是個復(fù)雜問題。它包括口令、用戶配置和控制管理。本文著重介紹了身份管理中被SAML大大簡化了的一部分,即基于角色的控制(RBAC。越來越多的廠商在支持RBAC,因為它可以讓管理員簡化控制列表。曾經(jīng)過一個數(shù)據(jù):內(nèi)部用戶和外部伙伴同時在使用的口令有多少?回答居然超過15個。當(dāng)然,他們可把這15個口令全記在腦子里,每次需要新的資源、新的應(yīng)用或者新的數(shù)據(jù)庫時,找到相應(yīng)的管理員。管理員會隨叫隨到,永不休假,而且始終會有后備管理離被伴變后是要他們權(quán)限。在這種理想情況下,我們知道,CIO們總是會因為得到了用戶反映的能非常容易地數(shù)據(jù)的夸獎而開心不已。解決這些問題的一個方法是管理。管理是指對用戶配置、口令和控制的管理。權(quán)限通常存放在不同的位置,不同的應(yīng)用和資源有著不同的控制列表。管理必須控制分布在不同位置上的數(shù)據(jù)、人員和資源的使用情況。過去,管理功能由許多不同的系統(tǒng)完成,比如,某一個程序處理用戶的配置,另一個程序管理口令,輕型 協(xié)議(LDAP)可保存驗證信息,而每個應(yīng)用程序(或管理員)則維持不同的用戶控制列表。那時,、同步及更新這些不同功能是一件費力又費錢的事。為此,有人開發(fā)了結(jié)合管理等多項功能的驗證/(AA)eb服務(wù),向整個企業(yè)推聯(lián)合的單登錄方案,加強理這一目邁出第一步。種AAeb服務(wù)是一種系列的多級服務(wù),可以讓用戶登錄一次,然后就可以調(diào)用eb服務(wù)、很多應(yīng)用系統(tǒng)和數(shù)據(jù)資源。這種方法有兩大好處:首先,它有助于簡化管理,因為它把對控制的管理從本地的多個應(yīng)用系統(tǒng)轉(zhuǎn)移到了,如LDAP。其次,它提供了讓eb服務(wù)可以訪問數(shù)據(jù)的一般的方法。使用LDAP作為的辦法可采用erchoSystems公司提供的規(guī)則集。這家軟件公司開發(fā)的EnerSpace產(chǎn)品將SAML服務(wù)和規(guī)則引擎作為安全包的一個部分。之所以選擇erchoSysems,是因為這家公司提供的產(chǎn)品物美價廉,而且愿意遷就各種限制。利用EnerSpace,你可以結(jié)合使用SAML、規(guī)則集以及定制的規(guī)則,把管理的所有部分與作為的LDAP聯(lián)系起來。集中及聯(lián)系配置、口令管理和控制讓生活更簡單。把管理流程與作為參考點和管理中心的LDAP聯(lián)系起來是很自然的事。不過,LDAP通常用于驗證,而不是用于。SAML便于把LDAP驗證和聯(lián)系起來。2002年11月,結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進組織(OASIS)批準(zhǔn)了SAML作為商業(yè)合作伙伴間交換驗證和信息的可擴展標(biāo)記語言(XML)框架,尤其是借助Web服務(wù)交換的信息。AMLebSAML利用基本的Web服務(wù)標(biāo)準(zhǔn),如XML、簡單對象協(xié)議(SOAP)和傳輸層安全(TLS,支持安全交換驗證和信息。RSA、Netegrity、IBM、Oracle、BEA、OblixJericho等廠商已承諾支持SAML,并正在把這項規(guī)范實施到各自的產(chǎn)品中去?!癝AML斷言”(SAMLAssertion)使SOAP消息里面的標(biāo)題通HTTP進行傳輸,在斷言管理方和轉(zhuǎn)發(fā)方之間傳輸安全信息。比如,用戶在某一站點登錄后,SAML斷言會傳輸用戶驗證令牌,其中提供了通過錄站點驗證的。SAML封括驗證令牌和用戶屬性,可以對照用于驗證和控制的規(guī)則引擎進行檢驗。值得一提的是,SAML不負責(zé)驗證,它只負責(zé)傳輸被驗證的信息。另外,SAML可使用不同的驗證管理機構(gòu),比如LDAP、活動和RADIUS,允許使用不同的識別方法,如口令、生物檢測術(shù)、公鑰基礎(chǔ)設(shè)施(PKI、接層(SSL)和Kerberos作為傳輸機制,SAML傳輸用戶已通過驗證的斷言信息。相比之下,SAML既不進行,也不傳輸控制信息。不妨把SAML想像成里由彪形大漢看守的一道門。如果某個可疑的人過來說:“是Joe讓我來的”,這意味著Joe驗證了該人,門衛(wèi)會把他引到玩牌的地方。如果一位光彩照人的女演員過來說:“是Rudolph讓我來的”,門衛(wèi)會先檢查Rudolph的貴賓列表,找到名字后,一路護送她。最后,如果亮一下卡,看一眼掃描裝置,就可能通過了卡和虹膜掃描的驗證。然后,驗證系統(tǒng)會與識別哪些進入的授SAMLSAML的安全 可能會受到三種廣為人知的安全重放(replayattack):如果劫持SAML令牌后進行重放,獲得權(quán),DNS:如果截獲SAML令牌后,發(fā)送虛DNS地址,就會發(fā)生這種HTTP(HTTPReferrerAttack:如果重新使用HTTP標(biāo)記,就會發(fā)利用定時會話可以減小或者消除這三種的。可以采用以下辦法來消除:令牌只用一次,并且把令牌使用情況記入日志,這樣重新使用就會被標(biāo)出來;使用IP地址避免DNS;使用安全超文本傳輸協(xié)議(HTTPS)和SSLTLS,消除HTTP。專家和分析師一致認為,這些風(fēng)險是可以緩解的 為斷言提供了一種安全標(biāo)準(zhǔn)AAWeb服務(wù)按順序執(zhí)行安全操作。使用用戶名和口令對與LDAP服務(wù)器上的信息進行對照,就可以識別及驗證用戶的獨特。每次登錄會話都會創(chuàng)建攜有驗證信息和用戶信息的SAML令牌。用戶通過使用定義控制的規(guī)則,獲得數(shù)據(jù)資源的,而JerichoSystemsEnterSpace規(guī)則引擎負責(zé)評估。這個大體上的流程如圖1所示。評估工作包括解析來自SAML令牌的信息,規(guī)則基于策略創(chuàng)建而成。因為規(guī)則控制,并體現(xiàn)策略,所以引擎通過實施規(guī)則來執(zhí)行策略管理。非常籠統(tǒng)地說,用戶基于LDAP信息、用戶信息和規(guī)則獲得權(quán)限。此外,用戶離開公司后,他們的由LDAP管理的所有賬戶會被注銷,所有權(quán)同時被取消。這樣,你就可以基于作為的LDAP來集中管理。12所示的幾個步驟。用戶登錄到桌面機上的客戶端后,客戶端通過本地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驗證/Web服務(wù)過程的重要參與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)的。AALDAPSAML的安全斷言。SAML令牌用來這種功能類似駕駛執(zhí)照:機動車輛管理局(DMV)就是管理方(好比LDAP,負責(zé)核實你的及駕駛資格。充當(dāng)可信資源,負責(zé)向DMV復(fù)核,然后根據(jù)目前的駕駛資格或者道路規(guī)則,批準(zhǔn)或者某駕駛員是否駕駛。AA服務(wù)在使用規(guī)則引擎評估規(guī)則時,以允許或數(shù)據(jù)資源限定條件的安全策略為基礎(chǔ)。引擎規(guī)則對加強策略管理來說是所在。使用LDAP作為管理方還有助于實現(xiàn)集中管理。不是在單個資源處管理資源,而LDAP和定義用戶角色及相應(yīng)數(shù)據(jù)參數(shù)(如部門和管理級別)的相應(yīng)策略,來管理以下是這個過程的幾個重第1步:用戶登錄。用戶需要數(shù)據(jù)資源,于是使用SOAP客戶端利用用戶名和口令對進行登錄??蛻舳税延脩裘涂诹顚Γㄟ€有可能是其他安全因素)傳送給LDAP進行驗證。 核實用戶后,把信息返回給客戶端2步:SAML令牌。SOAP客戶LDAP信息及其他用戶信息傳送SAML客戶端。該服務(wù)方會按正確格式把信息打包成SAML令牌,SAML客戶端把令牌返回給SOAP客戶端,然后SOAPSAML令牌和用戶請求打包成SOAP請求。第3步:SAML會話開始。SOAP客戶端開啟定時的SAML會話,并發(fā)送SOAP請求給相應(yīng)的eb服務(wù),以滿足用戶需求。eb服務(wù)解析SAML令牌后,通過LDAP核實驗證信息。這樣,用戶只要登錄一次:每個eb服務(wù)都可以充當(dāng)用戶,并獲得數(shù)據(jù)資源的信任,因為eb服務(wù)核實了請求信息。第4步:經(jīng)驗證后,eb服務(wù)發(fā)送請求給運行規(guī)則引擎的SAML服務(wù)器SAML在這一步并不是絕對必要的,但對我們來說很方便。規(guī)則引擎評估用戶參數(shù)后,確定用戶的別。評估工作基于現(xiàn)一組預(yù)定略的規(guī)則進行級別核實信息回給eb服務(wù)。后發(fā)回給SOAP客戶端。SOAP客戶端再把數(shù)據(jù)提供給用戶,同時終止SAML會話。SAML總的說來,我們建立的基于SAML的AAWeb服務(wù)依靠LDAP作為。使用LDAP和執(zhí)行安全策略的規(guī)則引擎可以實現(xiàn)集中管理。集中管理的一個好處是,可以獲得簡化和統(tǒng)一的控制管理。集中管理意味著,你可以在某一個點管理控制列表。比如,終止某個員工的賬戶就可以終止與賬戶(這里是LDAP)相關(guān)的所有。這種Web服務(wù)為斷言、認證和服務(wù)提供了通用服務(wù)。開發(fā)人員可以調(diào)用這種Web服務(wù),允許Web服務(wù)所需的應(yīng)用和SAML傳輸?shù)氖橇钆?,它不是驗證或者機制。為了緩解風(fēng)險,SAML系統(tǒng)使用定時會話、IP地址、HTTPS和SSL/TLS。安全Web服務(wù)非常復(fù)雜,涉及法律、安全和政治等使用LDAP作為可以實現(xiàn)集中管理。規(guī)則引擎為控制和策略管理提供了有效而靈活的方案(它同時支持基于角色和基于屬性的控制??梢院喕芾?,首先是因為可以在LDAP處激活或者禁用賬戶。其次,可以避免費用,因為可以集中及減少驗證應(yīng)用,減少風(fēng)險。最后,可以簡化管理,是因為賬SAML:企業(yè)級的戶管理使用現(xiàn)有的LDAP服務(wù),從而減少了開SAML:企業(yè)級的雖然使用OracleWebLogic作為IdP是顯然可行的,但它沒有一個真實 務(wù)器不提供,類似像Sun管理器所提供的會話管理功能。眾多廠商支持的SAML提供了一個優(yōu)于企業(yè)內(nèi)部網(wǎng)的SSO解決方案。圖一描述了一個使用以下技術(shù)的參考架構(gòu):作為IdP的Sun管理器7.1;SPWebLogic10.3Sun管理器是否會退役而有利于Oracle管理器還有待觀察,而Oracle管理器本身就是Oracle以前從Oblix收購的。雖然通過許多了解SAML的技術(shù)專家在Sun管Sun訪問管理器的源ID是一個難以理解的數(shù)據(jù)類型,它就是以SP站點“protocol://hostname:port”字符串的Base64編碼來表示SHA1,盡管SP不需要知道這個ID。SAML:SAML:IdP和SP用 在SAML的驗證模型里,IdP需要一個作為驗證用戶的“記錄系統(tǒng)”的本地庫。通常,用戶存在于本地LDAP庫中。反過來說,當(dāng)在SP上調(diào)用受保護的資源SP可以使用同一個本地LDAP庫來驗證用戶。不過,雖然這種模式可能適用于Intranet應(yīng)用,但跨站點的網(wǎng)絡(luò)應(yīng)用上是不可行的,并且實際上沒有利用SAMLSSO斷言模型另外,通過配置SP就可以“虛擬用戶”。圖3窗口描述了在WebLogic控制臺上創(chuàng)建一個方來虛擬用戶?;趥魅氲臄嘌?,SP中這個可配置的選項允許SAML斷言器實例化用戶和組的Principal(s)。這個配置也要求SAML驗證提供者為安全界限做一些配置。這個配置使用戶以虛擬用戶登錄這個虛擬用戶,和任何本地的已知用戶都沒有對應(yīng)關(guān)3WebLogic10.3控制臺上創(chuàng)建一個斷言方的視圖長期以來,人們認識到需要提供一種機制在不同的協(xié)作域之間傳遞關(guān)于實體的信息,同時域又不失去對這些信息的所,安全性斷言標(biāo)記語言或者SAML滿足了這種要求。交換的信息可以是關(guān)于或者驗證信息的斷言。這種方式也稱為單點登錄。在 安全系列文章的上一篇中,我談及了與安全有關(guān)的兩個很重要的·易于管·可移植在那篇文章中,我討論了使用XKMS實現(xiàn)安全基礎(chǔ)設(shè)施的易管理性。本文中將探討第二個,可移植的信任。安全斷言標(biāo)記語言或者SAML是一種保證可移植信任的機制。我將從SAML背后的目標(biāo)談起,然后介紹SAML的體系結(jié)構(gòu),最后解釋SAML的概念。您經(jīng)常會遇到需要提供個人信息的eb站點,原因基本上是驗證或者通過個人首選項戶資料庫,結(jié)果就會造成:·對所有這些單獨的站點都要考慮您的信息的安全·多個站點不能協(xié)同為您提供所感的更精細的服務(wù)為了進一步說明上述第二點,我提供一個很典型的例子:旅游預(yù)約。其中包括機票、旅館和出租車的預(yù)定。您可能希望向某家航空公司、某個旅館以及某個汽車出租商預(yù)訂,但是不存在一種機制使您能夠在三個獨立的站點之間無縫移植——可能需要提交證明進行三次驗證(假設(shè)這三家您都有帳戶。SAML被設(shè)計成解這一問題,它允數(shù)經(jīng)過選擇的團保留您的信息,且如,您的信息安全的掌握在您所信任的團體手中,并且可以一些供應(yīng)商通過組織多種低層次服務(wù)所提供的高級服務(wù)。本文將說明SAML如何實現(xiàn)這SAML的主要目標(biāo)包括·建立一種獨立于協(xié)議和平臺的驗證和交換機制(也稱為單點登錄,或 SSO·應(yīng)該獨立部署環(huán)境,能夠用于集中式的、分散式的以及聯(lián)合式的部署場景。SAML是一種控制對已驗證主體的資源進行的機制。對資源的基于特定的策略·基于策略的控制決策·強制實施這些SAML提供了兩種角色處理這些活動:策略決策點(PolicyDecisionPoints,PDPs)和策略實施點(PolicyEnforcementPoints,PEPs。場景:主體希望從目標(biāo)Web站點一些受保護的內(nèi)容。主體前往能夠識別或者已經(jīng)驗證該主體的源Web站點。用戶從源站點出發(fā)嘗試目標(biāo)Web站點上的受保護內(nèi)容,步·主體向源站點驗證并請求到目標(biāo)站點受保護資源的·源站點使用驗證標(biāo)志重定向·主體使用該標(biāo)志向目標(biāo)站點請求受保護的資源·目標(biāo)站點PEP檢查該PDP的權(quán)限·PDP可能內(nèi)部請求源站點使用該標(biāo)志進行SAML驗證斷言·源站點根據(jù)標(biāo)志向目標(biāo)站點提供SAML驗證斷·目標(biāo)站點向主體提供受保護的資源總之,在源站點驗證的主體從SAML獲得一個標(biāo)志并將其提供給目標(biāo)站點。目標(biāo)SAML規(guī)范由以下部分組成·斷言與協(xié)議:該規(guī)范處理定義 編碼的斷言的語法和語義,以及請求和響應(yīng)協(xié)議·綁定與配置文件:該規(guī)范處理SAML請求/響應(yīng)消息到底層通信協(xié)議如SOAP和的映射。控制在底層通信協(xié)議中嵌入和提取SAML信息的一組規(guī)則稱為一個配置文件·一致性規(guī)范:不同的SAML實現(xiàn)可能只實現(xiàn)這些規(guī)范的一部分。一致性規(guī)范設(shè)置了一SAML規(guī)范的實現(xiàn)在能夠稱為一致性實現(xiàn)之前必須滿足這一標(biāo)準(zhǔn)。這樣有助于提高互操作性和兼容性?!ぐ踩偷膯栴}:該規(guī)范涉及SAML體系結(jié)構(gòu)中的安全風(fēng)險,具體而言就是如何應(yīng)對這些風(fēng)險以及無法解決的風(fēng)我將采用問答的形式介紹和SAML有關(guān)的概念。我將逐個回答以下問題以澄清這些基·什么是·誰生產(chǎn)和消費·如何請求斷言,如何發(fā)送響應(yīng)?基本上而言,請求和響應(yīng)協(xié)議·SAML請求響應(yīng)協(xié)議可以綁定到哪些底層的通信傳輸協(xié)議·如何向SOAP這樣的底層通信傳輸協(xié)議中插入SAML斷言·什么是一致性規(guī)范,為何需·如果只實現(xiàn)了標(biāo)準(zhǔn)的子集,也能說該實現(xiàn)是兼容的么·定義一致性的粒度級別是什么·基于SAML的系統(tǒng)的安全風(fēng)險是什么斷言有三種類型·驗證:驗證斷言處理主體在特定時刻、特定機制下的驗證決策:決策斷言管理給定主體資源的權(quán)限。SAML生產(chǎn)斷言。SAML可進一步劃分為驗證、屬性或者PDP。斷言的消費者是客戶或者SAML本身。如何請求斷言,如何發(fā)出響應(yīng)?基本上而言,請求和響應(yīng)協(xié)議SAML請求響應(yīng)協(xié)議為發(fā)送斷言請求和獲取響應(yīng)定義了一種標(biāo)準(zhǔn)消息格式。SAML請·SubjectQuery:允許使用模式定義新的查詢類型,指定一個SAML主體·AuthenticationQuery:請求一個主體的驗證信息。返回驗證斷言作為響應(yīng)AtribueQuery:請求主體的屬性信息。響應(yīng)中包括請求者擁限的那些屬性的屬性斷言。權(quán)該請求者受保護的資源。·AssertionIDReference:根據(jù)唯一標(biāo)識符檢索特定的斷Asertionrtifact:根據(jù)代表斷言的助診文件檢索一個斷言。響應(yīng)消息格式分別對應(yīng)請求的類型。SAMLSAML請求和響應(yīng)消息在標(biāo)準(zhǔn)通信傳輸協(xié)議上的映射。目前只定義了一種綁定,SOAPSAML。SAMLSOAPSAML請求和響應(yīng)消息交換如何映射SOAP消息交換上。SAMLSAMLHTTP的SOAPSAML。實現(xiàn)也可以選擇實現(xiàn)基于其他傳輸協(xié)議系如SMTPFTPSOAP上SAML。SOAP頭會受到SAML斷言的什么影響,以及如何在SOAP消息中處理SAML錯誤?!g覽器發(fā)送配置文件或推式配置文件:SAML斷言在HTML表單中上傳到瀏覽器,用戶提交表單時作為HTTPPOST有效負載傳遞給目標(biāo)站點。這種情況下,源站點從目標(biāo)Web站點請求一個標(biāo)志,后者返回一個決策標(biāo)志。使用這個標(biāo)志將主體重定向到目標(biāo)Web站·瀏覽器助診文件(artifact)SAML助診文件作為URL查詢字符串的一部分帶給目標(biāo)站點,在返回給源站點時明確地一個斷言。對目標(biāo)站點的一些保護內(nèi)容感的主體從源站點發(fā)送一個標(biāo)志(SAML助診文件,目標(biāo)站點使用這個標(biāo)志取得驗證/信息并決定是否允許。一致性規(guī)范有助于客觀地評價SAML實現(xiàn)或應(yīng)用程序SAML規(guī)范的一致程度。以下·確保對一致性和一致性需求有共同·促進驗證和信息交換的互操作性·促進一致性測試開發(fā)中的統(tǒng)如果只實現(xiàn)了標(biāo)準(zhǔn)的子集,也能說該實現(xiàn)是兼容的么是的。對于遵循整個規(guī)范或者規(guī)范子集的 實現(xiàn)來說,可以說是兼容的SAML一致性根據(jù)應(yīng)用程序或?qū)崿F(xiàn)所支持的SAML綁定和配置文件來定義。對于支持·應(yīng)用程序或?qū)崿F(xiàn)是作為SAML消息的生產(chǎn)者、消費者還是兼具兩·應(yīng)用程序或?qū)崿F(xiàn)支持哪些斷言和陳述。SAML允許就驗證和進行陳述,但是沒有規(guī)定如何進行驗證和建立。SAML陳述的消費者必須在信任SAML陳述之前確信底層的基礎(chǔ)設(shè)施。底層的基礎(chǔ)設(shè)施也必須包括作為客戶請求和服務(wù)器響應(yīng)來回傳遞的有效負載的安全性和性。既然SAML是一種多方驗證和系統(tǒng),一個SAML事務(wù)中的合法參與者就有可能是和SAML斷言有關(guān)的風(fēng)險:斷言一旦發(fā)出就不在發(fā)出者的控制之內(nèi)了。比如,消費者可能在未定的時期內(nèi)持續(xù)使用斷言,或者選擇與最初的發(fā)出者不知道的第共享這些信息。與SAML協(xié)議有關(guān)的風(fēng)險:通過要求較低層次上的客戶驗證、客戶發(fā)出的請求需要簽名,或者限制SAML請求只能發(fā)給有限的已知方,可以防止服務(wù)(DOS。與SAML協(xié)議綁定(目前只有SOAP綁定)有·消息·消息·消息·中間TLS/SSLHTTPSOAP有關(guān)的風(fēng)險:這種方法只針對單跳提供安全性、性和。對于多次中轉(zhuǎn),HTTP和TLS/SSL沒有提供足夠的安全性。和SAML配置文件(瀏覽器/助診文件配置文件和瀏覽器/POST配置文件)有關(guān)的·偷竊用戶驗證信·偷竊持票人的標(biāo)·消息·消息·消息·中間1SAML檢索關(guān)于一個主體的斷言。這段代碼來自Verisign所提供的SAML示例實現(xiàn)。1.檢索屬性斷言//SAMLservice//ChangeittotheSAMLserviceproviderurlthatyou//tryingtoconnectstaticfinalStringSERVICE_URL"http://ofthesubjectthatuniquelyidentifiesstaticfinalStringSUBJECT_= //Subjectpasswordtoauthenticatethe//Thekeystoretobeusedforgettingtheprivatekey//thepublicstaticfinalStringKEYSTORE_FILE=//KeystorestaticfinalStringSIGNER_ALIAS=staticfinalStringV_NAME_QUALIFIER=" staticfinalStringV_ATTR_NAMESPACE= staticfinalStringV_ATTR_= staticfinalStringV_ATTR_FIRSTNAME= {NameIdentifiernameIdnewNameIdentifier(SUBJECT_,V_NAME_QUALIFIER,"");String[]confMethods={Identifiers.AUTHN_METHOD_PASSWORD};SubjectConfirmationsconf=newSubjectConfirmation(confMethods,SUBJECT_PASSWORD);Subjectsubject=newSubject(nameId,sconf);AttributeQueryquery=newAttributeQuery(subject,reqAttrs);AttributeStatementProviderprovider=null;tryprovider=}catch(Exceptione)//XXXAuto-generatedcatchblock}AttributeStatement[]statements=null;try{statements=}catch(Exceptione1)//XXXAuto-generatedcatchblock}if(statements.length=={System.out.println("Nostatements}for(inti=0;i<statements.length;i+={AttributeStatementstatement=statements[i];Authenticityauthenticity=statement.getAuthenticity();System.out.println("Statement"+(i+1)+"authenticity:"+//PrintattributeSystem.out.println("---AttributeStatement---System.out.println("Subject:+//PrintattributeAttribute[]attrs=statement.getAttributes();for(intk=0;k<attrs.length;k+=1){Attributeattr=System.out.println("Namespace:"+attr.getAttributeNamespace());System.out.println("Name:"+attr.getAttributeName());Object[]values=attr.getAttributeValues();for(intm=0;m<values.length;m+=1)}}}}privatestaticAttributeStatementProvidergetAttributeStatementProvider()throwsException{//ReadthekeystoreandgetthesigningInputStreamfileInput=newFileInputStream(KEYSTORE_FILE);KeyStorekeystore=PrivateKeykey=keystore.getKey(SIGNER_ALIAS,STORE_PASS.if(key==null)"keynotfoundinkeystore"+}[]certArray=if(certArray==null)"certnotfoundinkeystore"+}X509[]certs=newX509[certArray.length];System.arraycopy(certArray,0,certs,0,certs.length);//CreateSOAPassertionproviderfactorywithsigninginformationSOAPAssertionProviderFactoryfactory=factory.setSigningKey(newRSASigningKey(key));factory.setVerifyingKey(newRSAVerifyingKey(certs));returnfactorynewAttributeStatementProvider();}1中在SOAP協(xié)議上查詢主體屬性的步驟描述如下:·1步:建立關(guān)心其屬性的主體。這是通過創(chuàng)建SubjectIdentifier并定義SubjectConfirmation方法實·第2步:使用主體的e-mailID作為主體的唯一標(biāo)識符?!さ?步:指定驗證用戶所使用的方法。1中使用的是口令驗證·第4步:創(chuàng)建AttributeDesignator對象,該對象指定了希望檢索的屬性。在1中,Verisign的SAML實現(xiàn)把這個數(shù)組保留為空值,檢索與查詢對象相關(guān)的所有屬性值,這些屬性在AttributeDesignator數(shù)組中指定?!?步:使用主體AttributeDesignator數(shù)組創(chuàng)AttributeQuery對象·6SAMLURLAttributeStatementProvider·第7步:使用SOAPAssertionProviderFactory創(chuàng)建AttributeStatementProvider。在創(chuàng)建AttributeStatementProvider之前必須向SOAPAssertionProviderFactory提供簽名密鑰和檢驗密鑰。簽名密鑰是主體的私鑰,檢驗密鑰帶有附加的?!?6AttributeStatementProvider5步建立的查詢。獲得一個AttributeStatement對象數(shù)組。該數(shù)組包含提供程序作為查詢結(jié)果發(fā)送的所有屬性的值。迭代陳本文了SAML的目標(biāo)、體系結(jié)構(gòu)和基本概念。SAML完成了幾件事情,澄清了安全可移植性領(lǐng)域的一些:它定義了表示需要交換的信息的標(biāo)準(zhǔn)機制,定義了交換這類信息品并采用SAML作為標(biāo)準(zhǔn)。Web單點登錄和SAML技nea是edton的首席架構(gòu)師,daon一家全球T服務(wù)公司。nh在軟件開發(fā)生命周期的各個方面有1年的經(jīng)驗,曾經(jīng)設(shè)計過運行在完全不同系統(tǒng)上的客戶組織的集成策略。nh在集成方面的專長建立在理解a技和中件術(shù)。在進入eutnsh先后在an.eecaduaoftae和TheWlasopny做過軟件架構(gòu)師和術(shù)主管??梢酝ㄟ^Web單點登錄和SAML技登錄的執(zhí)行標(biāo)準(zhǔn)。SAML連同Web單點登錄共同構(gòu)成了現(xiàn)代網(wǎng)絡(luò)環(huán)境中的必備條件。和 是兩個知名,擁有大量的用戶。通過分析,這兩個發(fā)現(xiàn)他有30%的用戶是重合的,也就是說,這些用戶在兩個都有用戶名和。因此,他們認為有必要找到法,讓這30%的用戶在登錄其中一個時,其能夠自動被另一識別,并可以另一的資源。最終,他們采用了eb單點登錄解決方案。在大多數(shù)計算機連入網(wǎng)絡(luò)之前,各個系統(tǒng)中像驗證和這類安全服務(wù)的實現(xiàn)完全是此的碼密供所戶以及策略本身均存放于使用這些信息的系統(tǒng)上。最初,系統(tǒng)連接到網(wǎng)絡(luò)上時情況變化不大。每個系統(tǒng)都是一個孤島,各系統(tǒng)都要求用戶擁有一個賬戶才能該系統(tǒng)。這種方法有許多明顯的缺點。舉例來說,設(shè)置多個賬戶,每個賬戶有一個、組或其或有人離開組織時刪除其賬戶,管理員要浪費大量時間。如果出現(xiàn)更強大的認證方法,各系統(tǒng)還必須單獨地去升級。隨著互聯(lián)網(wǎng)的出現(xiàn),多臺機器作為一個eb站點的主機成為一種普遍現(xiàn)象。但僅僅因為用戶要使用不同的機器處理不同的請求而強迫他們多次在網(wǎng)絡(luò)上進行登錄,顯然是令人無法接受的。同樣,門戶也不能要求使用者每不同的應(yīng)用程序就重新登錄。于是單點登錄SingeSgn-on,SSO)出現(xiàn)了。單點登錄最初被視為一種提高生產(chǎn)力的奢侈品,而現(xiàn)在已成為一種必需品。當(dāng)前有越來越多的與控制管理(IAM)需求來自eb應(yīng)用和ebServcesIDC的市場預(yù)測也可以看出,年復(fù)合增長率CAGR最高的兩個子方向之一就是eb單點登錄,達到了208%。單點登錄是一種用于方便用戶網(wǎng)絡(luò)的技術(shù)。無論多么復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),用戶只需在登,不必次輸入用戶名和口令來確定。在此條件下,管理員無需修改或用戶登錄就能方便地實施希望得到的安全控制。SAML:SAML:一統(tǒng)WebSSO江,越來越多的系統(tǒng)通過eb服務(wù)、門戶和集成化應(yīng)用程序彼此,對于保證信息安全交換標(biāo)準(zhǔn)的需求也隨之日益增多。安全斷言標(biāo)記語言(SecuriyAssertonMarkupLanguageSAML)提供了一個健壯且可擴展的數(shù)據(jù)格式集,在各種環(huán)境下交換數(shù)據(jù)和識別信息。SAML的出現(xiàn)大大簡化了eb單點登錄,并被結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進組織(OASIS)批準(zhǔn)為ebSSO的執(zhí)行標(biāo)準(zhǔn)。這里的一個關(guān)鍵概念是,它可滿足SAML的定義,也就是說可使用獨立、受管理的多個信息來源中的信息。SAML連同eb單點登錄共同構(gòu)成現(xiàn)代網(wǎng)絡(luò)環(huán)境中的必備條件。是企業(yè)和管理的關(guān)鍵組成部分,提供了多項業(yè)務(wù)優(yōu)勢。對于企業(yè)而言,增強了與業(yè)務(wù)合作伙伴進行合作、管理供應(yīng)鏈、為客戶提供新型創(chuàng)收服務(wù)的能力,并且保護了企業(yè)資源,降低了成本。對于最終用戶而言,使更加便捷提高了工作效率;提供了更廣泛的信息與服務(wù);有效保護了個人信息。據(jù)的準(zhǔn)確性和及時更新更加。同時,移動信息還會增加數(shù)據(jù)在傳輸中丟失和被竊的可能性。盡管如此,為進行驗證和,還是必須在網(wǎng)絡(luò)上保留許多類型的信息。這也正是身組織可能希望使用不同的產(chǎn)品去管理其數(shù)據(jù),那么自然就需要制訂一個在網(wǎng)絡(luò)上傳送這些數(shù)據(jù)(從數(shù)據(jù)當(dāng)前所在的地方,到現(xiàn)在正需要數(shù)據(jù)的地方)的標(biāo)準(zhǔn)。雖然許多產(chǎn)品提供Web單點登錄,同樣需要一種標(biāo)準(zhǔn)使這種跨不同產(chǎn)品的傳送成為可能,這就是SAML關(guān)注的領(lǐng)域。舉一個簡單的例子:用戶在一個站點上取得認證,當(dāng)用戶需要另一個相關(guān)站點的資源時,目的站點(保護資源的持有者)能夠使用SAML從源站點調(diào)取用戶的信息。此時SAML對信息交換的處理發(fā)生在,因此用戶的資源實際上被不同的安全系統(tǒng)進行了定位。Web安全方面最具性的一個問題是維持一次無縫操作和安全環(huán)境時,使各不相的安全系統(tǒng)達到。比如在電子商務(wù)活動過程中,經(jīng)常需要通過網(wǎng)絡(luò)來交換的資料或OASIS建立的安全標(biāo)準(zhǔn)—SAMLXML(可擴展標(biāo)記語言)Web服務(wù)的架構(gòu)。 通過互聯(lián)網(wǎng)對不同安全系統(tǒng)的信息交換進行處SAML是一種語言,進行單一的XML描述,允許不同安全系統(tǒng)產(chǎn)生的信息進行交換。通常來說,一個企業(yè)在物理或邏輯的范圍已經(jīng)界定了企業(yè)的IT安全;然而,由于合作需要共享更可靠的安全服務(wù)環(huán)境,因此IT安全越來越成為人們關(guān)注的重點問題。SAML正是為解決性問題而發(fā)揮其作用。SAML在傳統(tǒng)意義上的安全界定與商務(wù)站點之間建立了一種安全信息的交換。SAML作為安全信息交換的“中間人”一個站點上的交易業(yè)務(wù)能夠在另一個信任的站點上得到處理完成。由此可見,實現(xiàn)交易雙方商業(yè)協(xié)議或合作的一個先決條件,是要求使用SAML作為共享安全架構(gòu)的一部分。SAML在標(biāo)準(zhǔn)行業(yè)傳輸協(xié)議環(huán)境里工作,例如HTTPSMTP和FTP;同時也服務(wù)于各種各樣的XML文件交換框架,例如SOAP和Bizak。SAML具備的一個最突出的好處,是使用戶能夠通過互聯(lián)網(wǎng)進行安全移動。也就是說,使用SAML標(biāo)準(zhǔn)作為安全認證和共享資料的中間語言,能夠在多個站點之間實現(xiàn)單點登錄。SAML是一種基于XML語言用于傳輸認證及信息的框架,以與主體相關(guān)的斷言形式表達。在這里,主體是一個實體(人或計算機),這個實體在某個安全域中擁有一個特定身定。針以上不同目的,SAML提供以下幾種不同類型的安全斷言:認證斷言 Assertion):認證斷言用來聲稱消息發(fā)布者已經(jīng)認證特定的體 決定斷言 Assertion):一個決定斷言報告了一個具體請求的結(jié)果斷言(AuthorizaionAsertion):斷言聲稱一個主體被給予一個或多個資源的特別。SAML斷言以XML結(jié)構(gòu)描述且具有嵌套結(jié)構(gòu),由此一個斷言可能包括幾個關(guān)于認證、和屬性的不同內(nèi)在斷言(包括認證的斷言僅僅描述那些先前發(fā)生的認證行為)。主流標(biāo)準(zhǔn)主流標(biāo)準(zhǔn):SAML在2005年底,隨著、移動設(shè)備、寬帶業(yè)務(wù)以及應(yīng)用安全領(lǐng)域的四家主要廠商通了最后一回合的互操作性測試,自由(LibertyAlliance)公布了SAML2.0SAML2.020053OASIS批準(zhǔn)。LibertyAlliance的目的是讓盡可能多的廠商把SAML加入到他們的產(chǎn)品線中。通過互操作性測試的有四種產(chǎn)品,分別是IBMTivoliFederatedIdentityManagerNEC的MobileInternetPlatformNTTCommunication的I-dLive寬帶與網(wǎng)絡(luò)服務(wù)工具以RSASecurityFederatedIdentityManager。為了證明其互操作性,每個產(chǎn)品必須能夠與至少兩個廠商共個給定的SAML文件。OracleSun20057SAML2.0互操作性測試。現(xiàn)在,Liberty宣稱已經(jīng)有超過70種產(chǎn)品被授予了SAML。LibertyAllianceConformanceExpertGroup的RogerSulliva說:“互操作性是必須的。的本質(zhì)就是需要至少兩個公司之間能夠進行互操作。只有當(dāng)你可以在網(wǎng)絡(luò)中的任何點Sullivan表示,“我們的目標(biāo)是為制定出事實上的標(biāo)準(zhǔn)?!盨AML并非惟達到這個目標(biāo)的標(biāo)準(zhǔn)。OASIS最近在組建一個旨在建立一套新的安全標(biāo)準(zhǔn)的。而尚在開發(fā)中的WS-Federation規(guī)格說明書卻沒有加入進來,人們預(yù)計它明年會跟進。有些人對WS-ederation的出現(xiàn)是否會在與SAML的結(jié)合部引起標(biāo)準(zhǔn)之間的存在疑慮,Sullivan認為那將是兩敗俱傷的結(jié)局。他說:“假如標(biāo)準(zhǔn)之間不融合,那么廠商就不得不支持所有的標(biāo)準(zhǔn)。”和IBM在建立WS-Federation方面很積極 的產(chǎn)品現(xiàn)在還沒有獲SAML,而IBM的Tivoli產(chǎn)品現(xiàn)在已經(jīng)支持SAML以及WS-FederationWeb服務(wù)安全標(biāo)準(zhǔn)被批準(zhǔn),SullivanSAML會被采納、贊同并獲得優(yōu)勢HP公司軟件技術(shù)顧問在接受采訪時表示,目前業(yè)界基本上是兩大陣營,OASIS/LibertyWS-*SAML2.0WS-Federation,二者其實有些地方是重復(fù)的,未來以前,一直受到標(biāo)準(zhǔn)過多問題的困擾。5個不兼容的協(xié)議(OASISSAML1.011、自由D-FF1.1和1.2以及Shbboeth)給企業(yè)和消費者的應(yīng)用帶來了麻煩,延緩了,部用部構(gòu)每伙性或功能的支持空隙。SAML2.0消除了阻礙進一步采用的最大—多協(xié)議復(fù)雜性,因而大大改變了的局面。SAML2.0將來自每一個前任協(xié)議的各種關(guān)鍵使用情況和特性融入到一項標(biāo)準(zhǔn)中。由于SAML2.05個前任協(xié)議中所有功能性的集合,因此它將淘汰以前的協(xié)SAML2.0說明實現(xiàn)的兩個角色。服務(wù)提供者是為用戶提供應(yīng)用或資源的實體,而提供商負責(zé)認證用戶。服務(wù)提供者和提供者交換信息,以實現(xiàn)單一登錄和退出。這些信息交換可以由提供者或服務(wù)提供者發(fā)起。在進行單一登錄時,提供者負責(zé)創(chuàng)建包含用戶的SAML斷言,然后安全地將這個斷言發(fā)送給服務(wù)提供者。服務(wù)提供者負責(zé)在讓用戶應(yīng)用之前驗證SAML斷言的有效性。SAML,網(wǎng)絡(luò)服務(wù)不需要借助安全認證機構(gòu)就可驗證令牌的有效性,不僅簡化了單點SAML為認證和認證屬性建立了一個數(shù)據(jù)格式,其參數(shù)取決于安全服務(wù)產(chǎn)生的基于政策的認證結(jié)果。使用SAML標(biāo)準(zhǔn)作為安全認證和共享資料的中間語言,能夠在多個站點之間實現(xiàn)單點登錄。SAML針對不同的安全系統(tǒng)提供了一個共有的框架,允許企業(yè)及其供應(yīng)商、客戶與合作伙伴進行安全的認證、和基本信息交換。由于SAML是通過XML對現(xiàn)有的安全模式SAML的消息格式能夠從一個源站點(站點起到SAML認證管理機構(gòu)的作用)將斷言發(fā)送給一個接受者。使電子商務(wù)合作中的事務(wù)處理速度得到加快,并且使認證環(huán)境的復(fù)雜性得到全面的簡化。單點登錄是個熱門概念,所有與控制管理(IAM)產(chǎn)品中都有單點登錄的身影。但是,眾多的單點登錄概念技術(shù)讓我仿佛墜入了五里霧中,在撰寫本文之初,我既分不點登錄之間的區(qū)別,也不明白單點登錄和SAML之間的關(guān)系。還好,通過向?qū)I(yè)請教,我大概明白了一二。Web單點登錄兩大類。如果企業(yè)內(nèi)的應(yīng)用都B/S架構(gòu),或者企業(yè)內(nèi)有C/S架構(gòu)、B/S架構(gòu)和net應(yīng)用,想實現(xiàn)單點登錄,就需要采用企業(yè)內(nèi)部單點登錄解決方案。如果要在不同或不同企業(yè)間,或者同一企業(yè)的不同分支機構(gòu)之間實現(xiàn)單點登錄,Web單點登錄則是更好的選擇。其次,eb單點登錄已經(jīng)有了統(tǒng)一的標(biāo)準(zhǔn),就是SAML20。而企業(yè)內(nèi)部的單點登錄則沒有任何標(biāo)準(zhǔn),由于各企業(yè)內(nèi)部應(yīng)用的復(fù)雜性和獨特性,每個廠商都在按照自己的設(shè)計思路和用戶需求來提供解決方案。第三,國內(nèi)的eb單點登錄應(yīng)用遠遠于國外。據(jù)SA公司的工程師陳海林介紹,在國內(nèi),企業(yè)內(nèi)部單點登錄的應(yīng)用較多,而eb單點登錄才剛剛起步,這和國內(nèi)的互聯(lián)網(wǎng)發(fā)展進程密切相關(guān)。揭開揭開SAML的神秘面,越來越多的系統(tǒng)通過Web服務(wù)、門戶和集成化應(yīng)用程序彼此,對于保證欲共享的交換的標(biāo)準(zhǔn)的需求也隨之日益顯著起來。SAML(安全性斷言標(biāo)記語言,SecurityAssertionMarkupLanguage)提供了一個健壯且可擴展的數(shù)據(jù)格式集,在各種環(huán)境下交換數(shù)據(jù)和識別信息。這里的一個關(guān)鍵概念是,它可滿足SAML的定義,也就是說可使用獨立、受管理的多個信息來源中的信息,從而實現(xiàn)嚴(yán)整這樣的安全服務(wù)。SAML連同單點登錄(SSO)共同構(gòu)成現(xiàn)代網(wǎng)絡(luò)環(huán)境中的必備的條件。立的。因此,執(zhí)行驗證所需的全部代碼以及密鑰、口令、供決策所用的用戶信息以及策略本身均存放于使用這些信息的系統(tǒng)上。最初系統(tǒng)連接到網(wǎng)絡(luò)上時,情況變化不大。每個系統(tǒng)都是一個孤島,各系統(tǒng)都要求用戶擁有一個賬戶才能該系統(tǒng)。這種方法有許多明顯的缺點.舉例來說,設(shè)置多個賬戶,每個賬戶有一個、組或其他屬,或有人離開組織時刪除其賬戶,管理員要浪費大量時間。如果出現(xiàn)更強大的認證方法,各系統(tǒng)還必須單獨地去升級。隨著網(wǎng)的出現(xiàn),多臺機器作為一個eb站點的主機成為一種普遍現(xiàn)象。但僅僅因為用戶要使用不同的機器處理不同的請求而強迫他們多次在網(wǎng)絡(luò)上進行登錄顯然是令人無(SSO)最初被視為一種提高生產(chǎn)力的奢侈品,而現(xiàn)在已成為一種必需品,至少在用戶希望使用的是單一、集成式系統(tǒng)的情況下是如此。歷卡、經(jīng)紀(jì)人知道擁有什么、保險人擁有保險規(guī)則、會計師保存財政和記錄等等。SAML基本原盡管如此,為進行驗證和,還是必須在網(wǎng)絡(luò)上保留許多類型的信息。那也正是身起。不同組織可能希望使用不同的產(chǎn)品去管理其數(shù)據(jù),那么自然就需要制訂一個在網(wǎng)絡(luò)上傳送這些數(shù)據(jù)——從數(shù)據(jù)當(dāng)前所在的地方,到現(xiàn)在正需要數(shù)據(jù)的地方——的標(biāo)準(zhǔn)。雖然許多產(chǎn)品提供eb單點登錄,同樣需要一種標(biāo)準(zhǔn)使這種跨不同產(chǎn)品的傳送成為可能。這就是SAML關(guān)注的領(lǐng)域。SAML基本原SAL 將所有與檢索、傳輸和共享安全信息相關(guān)的功能標(biāo)準(zhǔn)化為以下形式:為用戶提供XML為像WebSSO這樣的常見用例定義精確的消支持眾多種隱私保護機制,包括在不披露用 的情況下確定用戶屬性的功能詳述在Unix、 提供一種系統(tǒng)的元數(shù)據(jù)機制,使得所有參與其中的系統(tǒng)能就所支持的SAML選項進行此外 的設(shè)計特別關(guān)注了靈活性。遇到標(biāo)準(zhǔn)尚未涵蓋的需求時可擴展SAMLSAML的角色、斷言和語一個環(huán)境至少包括三個角色信任方——利用;具代表性的信任方是ServiceProvider,由其決定允許何種求任何環(huán)境下都會有許多和數(shù)個ServiceProvider。也可能存在多個IdentityProvider產(chǎn)生請求的一方請求的用戶是提供的IdentityProvider是可信任的在SAML中,斷言攜帶信息。斷言中包含頭信息、名稱和一個或多個語句。頭信息包含IdentityProvider的名稱和像與有效期等其他信息。兩類最重要的語句為驗證語句——關(guān)于該是一個在特定時間和地點、使用特殊的方法進行過驗證的報告。SAML提供了超過20種不同驗證方法的詳細定義。驗證語句支持SSO,其中IdentityProviderServiceProvider進行登錄。屬性語句——包含與有關(guān)的屬性。一條屬性語句中的典型屬性是組和角色,除此之外一種斷言可同時攜帶這兩種類型的語句。也可以自行定義其他語句類型。實際上, 已經(jīng)定義一個可傳送策略的語句和一個通訊決策結(jié)果的語句SAML的強項之一就是其靈活性。IdentityProvider能對斷言進行數(shù)字簽名。而且它還可選擇使用其它像SSL這樣的方法,以確保信息的完整性。斷言可以包含一個名為SubjectConfirmatin的元素,ServiceProvider使用該元素來確定斷言中的信息是否涉及提出當(dāng)前請求的一方。再強調(diào)一下,SAML允許ServiceProvider采用多種實現(xiàn)此目的。SAMLIdentityProviderServiceProvider能傳送斷言并將其提供給ServiceProvider。第三種選擇是通過另一個節(jié)點斷言。在Web服務(wù)環(huán)境中,SOAP的頭文件可傳送斷言。SAML定義了一組XML格式的請求和應(yīng)答消息,ServceProvider可使用這些消息直接獲取斷言。請求會指定Servcerovider需要的信息,例如“所有的屬性”。響應(yīng)返回一個或多個匹配請求的斷言。為使不同的產(chǎn)品能夠交互操作,還必須詳細說明各種網(wǎng)絡(luò)協(xié)議怎樣傳送請求和應(yīng)答。SAML的SOAP綁定詳細說明了怎樣在SOAP消息體中傳送信PAOS綁定是專為無法接受但可以發(fā)送網(wǎng)絡(luò)請求的移動這樣的設(shè)備設(shè)計的。它向后在HTTP上運行SOAP,在HTTP應(yīng)答中傳送消息。BrowserPOSTArtifactProfile都用于處理標(biāo)準(zhǔn)網(wǎng)絡(luò)瀏覽器的操作。在POSTProfile中,SAML請求在不可見的域中傳送形式上為經(jīng)由瀏覽器郵遞。在ArtifactProfileServiceProviderArtifact的任意位字符串,通過一條專SAML還為支持環(huán)境提供了其他許多有用的機制。一種協(xié)議允許Service議允許兩個IdentityProvider將他們各自擁有的同一用戶賬戶關(guān)聯(lián)在一起。例如,一個IdentityProviderJohnSmithProviderJonathanKSmith(正常情況也有可能使用隱私保護的、臨時性的,避免長期有效的。繼續(xù)我們的示例,一個IdentityProvider知道包含ABC123的斷言表示JohnSmith,另一個Provider則ABC123與JonathanK.Smith關(guān)聯(lián)在一起,但是兩者都不知道對方所使用的賬戶名。以后將使用一個完全不同的防止第偵測使用模式。SAML提供一個輕量級的注銷協(xié)議,通知所有Servicerovder和dentityrovder一個用戶已經(jīng)簽出。其主要目的是為了方便整理資源,而不僅僅是作為一種確保用戶從系統(tǒng)中注銷的機制。還有許多其他有用的SAML特性,其包含的功能如下:SAML標(biāo)準(zhǔn)中還包含各種功能結(jié)合的詳細一致性指標(biāo),和一個討論安全和隱私考慮事項的SAML提供了一組有用的機制,可在規(guī)模龐大的環(huán)境中實現(xiàn) 安全地共享數(shù) (一的需求而言,它還是安全地共享數(shù) (一簡安全是所有 項目在設(shè)計時都要考慮的一個重要因素。無論是選擇最短口令,決安全地共享數(shù) (二何時使用SSL加密HTTP會話,還是通過自動登錄來識別用戶,都經(jīng)常要付出重大的設(shè)計努力,以保護用戶的和他們可能存放于eb站點的其他資料。糟糕的安全性可能帶來。當(dāng)最終用戶努力保持對其個人信息的控制時,他們要令人迷惑的隱私政策,需要牢記眾多站點的不同口令,以及遭遇“式”事件。在宏觀層次上,數(shù)引起了許多復(fù)雜的技術(shù)和社會問題,業(yè)界一些團體如LiberyAllance和IdentiyGang都正試圖通過開發(fā)新的技術(shù)標(biāo)準(zhǔn)來解決它們。在較小的規(guī)模上,可以使用一些工具來為用戶提供更好的安全性。請考慮口令管理問題。用戶他們保存的eb站點,在可以存取他們的資料之前必須經(jīng)過驗證。通過驗證來鑒別用戶,確保他們是所聲稱的用戶。進的大量口令。1998年微軟首先嘗試通過其asportnetwork提供該問題的全球解決方案。assport使得任意eb站點使用用戶提交給Passport的(如用戶名、地址、號)成為可能。Passport是單點登錄(singlesgn-on,SSO)的第一次電子商務(wù)嘗試。它沒有流行起來,部分原因是由于人們對系統(tǒng)封閉性的擔(dān)心。然而,SSO的理念非常引人注目,許多開放標(biāo)準(zhǔn)和商業(yè)計劃都追隨Passport其后。通過SSO,某個eb站點可以與其他站點共戶。SSO對于使用應(yīng)用服務(wù)提供商(ApplcationServcerovider,ASP)軟件服務(wù)的企業(yè)特別有用。ASP在自己的服務(wù)器上宿主應(yīng)用程序,出售其權(quán)作為服務(wù)。公司可以在它的標(biāo)準(zhǔn)服務(wù)器里管理自己的用戶和口令,然后通過SSO授予用戶ASP應(yīng)用程序的權(quán)限。SSO允許公司管理自己用戶的信息,不必為每一員工多個用戶賬號。對用戶來說,SSO的好處在于他們可以在多個應(yīng)用程序中使用一個用戶名和口令,并且在應(yīng)用程序之間切換時無需重新驗證。SSO不僅僅用于eb應(yīng)用程序,它可用于任何類型的應(yīng)用程序,只要有安全地傳送的協(xié)議。這種通信方式的開放標(biāo)準(zhǔn)就是安全性斷言標(biāo)記語言(SAML。安全地共享數(shù) (二SAML為SSO提供了一個安全的協(xié)議。SAML(讀作“am-el”)是允許eb站點安全地共享的一個規(guī)范,它來自ebXML和其他XML標(biāo)準(zhǔn)背后的國際性O(shè)ASS。站點使用SAML的XML詞匯表和請求/應(yīng)答模式,通過HTTP交換。這種信息共享標(biāo)準(zhǔn)化能幫助eb站點與多個合作伙伴集成,避免由于為不同合作伙伴設(shè)計和各自私有的集成通道而引起的爭論。SAML10于2002年1月亮相。本文介紹最終于2003年完成的SAML11。雖然于2005年完成的SAML2.0引入了支持的一些重要新功能,但BEAebLogicServer9.x支持的是SAML1.1,因此本文將重點介紹SAML1.1。我們來看一個非?;镜腟AML示例。顧名思義,SAML的元素是安全性斷言斷言即無需證明的語句。安全性斷言是關(guān)于用戶的語句,只能通過接收斷言發(fā)布者的站點信任獲得支持。在SAML中,發(fā)布斷言的站點叫“發(fā)布者”、“斷言方”、或“源站點”。接收斷圖1顯示了源站點和目標(biāo)站點之間能使用戶通過單點登錄雙方站點的交互安全地共享數(shù) (三圖1:一個安全地共享數(shù) (三<!--ThisrequestwouldbewrappedinaSOAPenvelope--<samlp:Requestxmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol"IssueInstant="2005-03-該請求把自己標(biāo)識為來自SAML請求應(yīng)答協(xié)議名稱空間的SAML1.1請求(MajorVersion和MinorVersion)。SAML為請求-應(yīng)答協(xié)議元素定義了一個名稱空間,為斷言定義了另一個單獨的名稱空間。Request擁有基于請求者IP地址的惟一ID。請求的準(zhǔn)確時間該請求中最有趣的部分是<AsertionArtifac>標(biāo)記中令人費解的字符串。目標(biāo)站點從用戶HTTP請求的查詢字符串中得到該值。由于它用于標(biāo)識瀏覽器,所以也叫“瀏覽器憑證”。注意,該請求沒有要求提交特定用戶的驗證。該請求創(chuàng)建時,目標(biāo)方并沒有用于提交請求

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論