2 SAML 的 2 種典型模式
在協(xié)議的角度, SAML 原理非常類似 CAS 和 Kerberos , CAS 協(xié)議依賴于 CAS Server , Kerberos 依賴于 KDC ,而 SAML 則依賴于 Identity Provider 。
根據(jù) Service Provider( 以下簡(jiǎn)稱 SP) 和 Identity Provider( 以下簡(jiǎn)稱 IDP) 的交互方式, SAML 可以分為以下幾種模式:一種是 SP 拉方式,一種是 IDP 推方式。
在 SAML 中,最重要的環(huán)節(jié)是 SP 如何獲取對(duì) Subject 的斷言, SP 拉方式是 SP 主動(dòng)到 IDP 去了解 Subject 的身份斷言,而 IDP 推方式則是 IDP 主動(dòng)把 Subject 的身份斷言通過(guò)某種途徑告訴 SP 。
2.1 SAML 的 POST/Artifact Bindings 方式(即 SP 拉方式)
該方式的主要特點(diǎn)是, SP 獲得客戶端的憑證 ( 是 IDP 對(duì) Subject 的一種身份認(rèn)可 ) 之后,主動(dòng)請(qǐng)求 IDP 對(duì) Subject 的憑證的斷言。如下圖所示: Subject 是根據(jù)憑證去訪問(wèn) SP 的。憑證代表了 Subject 的身份,它類似于“來(lái)自 IDP 證明:我就是 Peter ,法國(guó)公民”。
現(xiàn)在,讓我們看看 SP 拉方式是如何進(jìn)行的:
Subject 訪問(wèn) SP 的受保護(hù)資源, SP 發(fā)現(xiàn) Subject 的請(qǐng)求中沒(méi)有包含任何的授權(quán)信息,于是它重定向用戶訪問(wèn) IDP.

協(xié)議執(zhí)行:
1,Subject 向 IDP 請(qǐng)求憑證 ( 方式是提交用戶名 / 密碼 )
2,IDP 通過(guò)驗(yàn)證 Subject 提供的信息,來(lái)確定是否提供憑證給 Subject
3,假如 Subject 的驗(yàn)證信息正確,他將獲取 IDP 的憑證以及將服務(wù)請(qǐng)求同時(shí)提交給 SP 。
4,SP 接受到 Subject 的憑證,它是提供服務(wù)之前必須驗(yàn)證次憑證,于是,它產(chǎn)生了一個(gè) SAML 請(qǐng)求,要求 IDP 對(duì)憑證斷言
5,憑證是 IDP 產(chǎn)生的,它當(dāng)然知道憑證的內(nèi)容,于是它回應(yīng)一個(gè) SAML 斷言給 SP
6,SP 信任 IDP 的 SAML 斷言,它會(huì)根據(jù)斷言結(jié)果確定是否為 Subject 提供服務(wù)。