SAML

SAML

安全斷言標記語言(英語:Security Assertion Markup Language,簡稱SAML,發音sam-el)是一個基於XML的開源標準數據格式,它在當事方之間交換身份驗證授權數據,尤其是在身份提供者和服務提供者之間交換。SAML是OASIS安全服務技術委員會的一個產品,始於2001年。其最近的主要更新發布於2005年,但協定的增強仍在通過附加的可選標準穩步增加。

SAML解決的最重要的需求是網頁瀏覽器單點登錄(SSO)。單點登錄在內部網層面比較常見,(例如使用Cookie),但將其擴展到內部網之外則一直存在問題,並使得不可互操作的專有技術激增。(另一種近日解決瀏覽器單點登錄問題的方法是OpenID Connect協定)

基本介紹

  • 中文名:SAML
  • 外文名:Security Assertion Markup Language
  • 釋義:安全聲明標記語言
  • 作用:表明用戶是否已經認證
簡介,原則,歷史,版本,設計,參見,

簡介

安全斷言標記語言(英語:Security Assertion Markup Language,簡稱SAML,發音sam-el)是一個基於XML的開源標準數據格式,它在當事方之間交換身份驗證授權數據,尤其是在身份提供者和服務提供者之間交換。SAML是OASIS安全服務技術委員會的一個產品,始於2001年。其最近的主要更新發布於2005年,但協定的增強仍在通過附加的可選標準穩步增加。
SAML解決的最重要的需求是網頁瀏覽器單點登錄(SSO)。單點登錄在內部網層面比較常見,(例如使用Cookie),但將其擴展到內部網之外則一直存在問題,並使得不可互操作的專有技術激增。(另一種近日解決瀏覽器單點登錄問題的方法是OpenID Connect協定)

原則

SAML規範定義了三個角色:委託人(通常為一名用戶)、身份提供者(IdP),服務提供者(SP)。在用SAML解決的使用案例中,委託人從服務提供者那裡請求一項服務。服務提供者請求身份提供者並從那裡並獲得一個身份斷言。服務提供者可以基於這一斷言進行訪問控制的判斷——即決定委託人是否有權執行某些服務。
在將身份斷言傳送給服務提供者之前,身份提供者也可能向委託人要求一些信息——例如用戶名和密碼,以驗證委託人的身份。SAML規範了三方之間的斷言,尤其是斷言身份訊息是由身份提供者傳遞給服務提供者。在SAML中,一個身份提供者可能提供SAML斷言給許多服務提供者。同樣的,一個服務提供者可以依賴並信任許多獨立的身份提供者的斷言。
SAML沒有規定身份提供者的身份驗證方法;他們大多使用用戶名和密碼,但也有其他驗證方式,包括採用多重要素驗證。諸如輕型目錄訪問協定RADIUSActive Directory等目錄服務允許用戶使用一組用戶名和密碼登錄,這是身份提供者使用身份驗證令牌的一個典型來源。許多流行的網際網路社交網路服務也提供身份驗證服務,理論上他們也可以支持SAML交換。

歷史

OASIS安全服務技術委員會(SSTC)於2001年1月首次舉行會議,提出“定義一個用於交換身份驗證和授權的XML框架。”為完成此目標,下列智慧財產權在該年的頭兩個月內向SSTC進行了捐獻:
  • Security Services Markup Language(S2ML),來自Netegrity
  • AuthXML,來自Securant
  • XML Trust Assertion Service Specification(X-TASS),來自VeriSign
  • Information Technology Markup Language(ITML),來自Jamcracker
在這項工作的基礎上,OASIS於2002年11月宣布“安全斷言標記語言”(SAML)V1.0規範成為一個OASIS標準。
與此同時,大型企業、非營利及政府組織的聯盟Liberty Alliance提出了一個擴展SAML標準的“自由聯盟統一聯合框架”(ID-FF)。與其前身SAML類似,Liberty ID-FF提出了一個標準化、跨域、基於Web的單點登錄框架。此外,Liberty描繪了一個“信任圈”(circle of trust),其中每個參與域被信任將準確記錄識別用戶的過程、所使用的身份驗證類型,以及任何與生成身份驗證憑據相關的策略。信任圈中的其他成員可以查驗這些策略,以決定是否信任此類信息。
雖然ID-FF開發了Liberty,SSTC已開始小規模升級到SAML規範。這使得SSTC在2003年9月批准了SAML V1.1規範。在同月,Liberty將ID-FF貢獻至OASIS,從而為SAML下一版本奠基。2005年3月,SAML V2.0被宣布成為一項OASIS標準。SAML V2.0意味著Liberty ID-FF及其他專有擴展的收斂,以及包括SAML本身的早期版本。大多數SAML實現支持V2.0,並也大多支持V1.1以實現向後兼容。截至2008年1月,SAML V2.0的開發已在政府、高等教育和全球商業企業中普遍存在。

版本

SAML自V1.0以來已進行一次重大及一次次要修訂。
  • SAML 1.0於2002年11月獲準成為OASIS標準
  • SAML 1.1於2003年9月獲準為OASIS標準
  • SAML 2.0於2005年3月成為OASIS標準
Liberty Alliance在2003年9月將其自由聯盟統一聯合框架(ID-FF)貢獻至OASIS SSTC:
  • ID-FF 1.1於2003年4月發布
  • ID-FF 1.2於2003年11月完成
SAML的1.0和1.1版本很類似,僅存在微小差異。
SAML 2.0與SAML 1.1則有著實質性的差異。雖然兩者都是解決相同的使用案例,但SAML 2.0與1.1並不兼容。
儘管ID-FF 1.2已作為SAML 2.0的基礎貢獻至OASIS,但在SAML 2.0與ID-FF 1.2之間有著一些重要的差異。尤其是儘管這兩個規範同根同源,但兩者並不兼容。

設計

SAML 創建在一些現有標準之上:
  • Extensible Markup Language (XML)
  • 大多數SAML交換是以一個標準化的XML方言表示,這也是SAML的名稱(Security Assertion Markup Language)的根源。; XML Schema (XSD): SAML斷言和協定部分採用XML Schema
  • XML Signature
  • SAML 1.1和SAML 2.0都為身份驗證和訊息完整性使用基於XML Signature標準的數字簽名。
  • XML Encryption
  • SAML 2.0使用XML Encryption為加密名稱標識符、加密屬性和加密斷言提供元素(SAML 1.1沒有加密功能)。但XML加密據報有著嚴重的安全問題。
  • Hypertext Transfer Protocol (HTTP)
SAML很大程度上依賴超文本傳輸協定作為其通信協定。
  • SOAP
  • SAML指定使用SOAP,尤其是SOAP 1.1。
SAML定義了基於XML的斷言、協定、綁定和配置。術語SAML核心(SAML Core)指SAML斷言的一般語法和語義,以及用於請求和在系統實體間傳輸這些斷言的協定。SAML協定指來傳輸,而不是如何傳輸(後者由所選擇的綁定決定)。因此SAML核心只定義了“純粹的”SAML斷言,以及SAML的請求和回響元素。
SAML綁定決定SAML請求和回響如何映射到標準的訊息或通信協定。一個重要的、同步的綁定是SAML SOAP綁定。
SAML配置是使用特定斷言、協定和綁定組成的適用於所定義使用情況的一個具體表現形式。

參見

相關詞條

熱門詞條

聯絡我們