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