聯(lián)合認(rèn)證-SAML(一)
SAML是OASIS制定的一種安全性斷言標(biāo)記語言,它用于在復(fù)雜的環(huán)境下交換用戶的身份識別信息。在SAML誕生之前,如果想在Websphere、Weblogic和SunONE等之間實(shí)現(xiàn)SSO,我們必須分別實(shí)現(xiàn)一個(gè)適配層,來達(dá)成一種相互理解的協(xié)議,在該協(xié)議上,產(chǎn)品能夠共享各自的用戶認(rèn)證/授權(quán)信息。SAML誕生之后,我們免去了這種煩惱。可以預(yù)計(jì),將來大部分產(chǎn)品都可以實(shí)現(xiàn)基于SAML的聯(lián)邦服務(wù)。 事實(shí)上,SAML已經(jīng)在很多商業(yè)/開源產(chǎn)品中得到實(shí)現(xiàn),包括:
IBM Tivoli Access Manager
Weblogic
Oblix NetPoint
SunONE Identity Server
Baltimore, SelectAccess
Entegrity Solutions AssureAccess
Internet2 OpenSAML
Yale CAS 3
Netegrity SiteMinder
Sigaba Secure Messaging Solutions
RSA Security ClearTrust
VeriSign Trust Integration Toolkit
Entrust GetAccess 7
SAML背后是強(qiáng)大的商業(yè)聯(lián)盟和開源聯(lián)盟,盡管Microsoft遲遲未能在SAML2.0觀點(diǎn)上達(dá)成一致,但它也正努力跟進(jìn)SAML標(biāo)準(zhǔn)化過程,由此可見SAML協(xié)議已經(jīng)是勢在必行。
1 SAML的基本概念
理解SAML的概念很重要,個(gè)人認(rèn)為SAML協(xié)議的原理跟CAS/Kerberos很類似,理解上不存在困難,但SAML引入了一些新的概念名詞,因此要先把握清楚這些概念。
斷言,這個(gè)在SAML的”A”,是整個(gè)SAML協(xié)議中出現(xiàn)的最多的字眼,我們可以將斷言看作是一種判斷,并且我們相信這種判斷,因此,做出斷言的一方必須被信賴。校驗(yàn)來自斷言方的斷言必須通過一些手段,比如數(shù)字簽名,以確保斷言的確實(shí)來自斷言方。
SAML目標(biāo)是讓多個(gè)應(yīng)用間實(shí)現(xiàn)聯(lián)邦身份(IdentityFederation),提起聯(lián)邦,大家可以想象一下歐盟,歐盟國家之間的公民都具有一個(gè)聯(lián)邦身份,比如Peter是法國公民,John是比利時(shí)公民,這兩個(gè)公民的身份都能夠互相被共享,恰好,張三是一個(gè)中國公民,但他能像Peter和Jhhn那樣隨意進(jìn)入歐盟國家,顯然不能,因?yàn)樗痪哂袣W盟聯(lián)邦身份。