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