安全斷言置標語言(security assertion markup language;SAML)是一種實現Web服務安全產品之間互操作,保證端到端、機構內部以及從企業到企業的安全性的建議標準。
中文名稱 | 安全斷言置標語言 |
英文名稱 | security assertion markup language;SAML |
定 義 | 一種實現Web服務安全產品之間互操作,保證端到端、機構內部以及從企業到企業的安全性的建議標準。 |
套用學科 | 通信科技(一級學科),網路安全(二級學科) |
基本介紹
- 中文名:安全斷言置標語言
- 外文名:security assertion markup language;SAML
簡介,SAML規範,斷言(Assertions),請求/回響協定(Request/Response),綁定(Bindings),配置(Profiles),SAML單點登錄,SAML特點,
簡介
SAML安全斷言標記語言是組織安全服務技術委員會OASIS發布的一種安全認證XML標準,英文全稱是Security Assertion Markup Language。SAML的主要功能是在不同的安全域之間提供身份認證和授權信息交換SAML主要為用戶跨不同網路平台進行身份認證和授權提供了方便,解決了多個系統共享認證授權信息過程中信息的傳遞問題。SAML定義了用於不同安全域Web服務問安全傳輸信息的XML文檔描述,解決了多次認證帶來了效率問題,能夠允許不同平台的安全系統信息之間的安全交換,也因此提高了網路安全服務的性能。
SAML是一個基於XML的框架,用於在不同的實體間交換有關主體的安全斷言信息,可以提供分散式環境下不同的安全服務的互操作性。
隨著網際網路軟體技術和套用模式的不斷演變,基於Web服務的分散式計算模式正在成為發展的潮流。許多企業和政府部門已開始基於Web服務在網際網路上提供信息共享與套用服務。由於用戶完成一次活動/交易所要訪問的服務可能分布在不同的套用系統中,用戶在進入不同的系統邊界時都需要進行登錄(如多次輸入用戶名和口令),這將影響執行效率並使用戶失去耐心,影響其對服務提供商的信心。如何解決這個問題,就引出了單點登錄的概念。
單點登錄(SingleSign-On,SSO),即用戶在訪問多個系統和多種受限資源時,只需進行一次登錄和身份驗證,不用重複登錄,用戶安全信息轉換為電子身份後自動地傳遞到多個系統,從而提高工作效率和安全性。同時隨著Web服務技術爆炸性地廣為傳播,典型的Web服務正面臨著各種新的問題,傳統的安全保護技術方法已經不能勝任,而一些常用的安全通信機制(如SSL,TLS,IPsec等)也不能滿足Web服務的安全通信,如何提供安全可信的Web服務已成為Web服務套用必須解決的關鍵問題。
SAML規範
SAML規範主要分為四部分,分別是斷言、請求/回響協定、綁定和配置檔案。各個部分關係圖如圖所示。
斷言(Assertions)
斷言(Assertion)是SAML規範的核心,是SAML規範中的基本數據對象,由特定的SAML機構(SAML Authority)產生和頒布。斷言是對Subject身份、屬性、許可權等信息的XML描述,為服務提供者和身份提供者之間提供基礎的信息交換。SAML斷言有以下三種類型:
- 認證斷言(Authentication Assertion)。一種用於表明用戶身份的斷言。當主體成功的通過身份提供者的身份認證,身份提供者將會頒發主體的認證斷言來證明主體身份已經被指定身份提供者成功驗證。認證斷言由主體元素<Subject>元素和認證聲明<AuthnStatement>元素組成。Subject表明了被認證主體的身份,可以是用戶名等用戶身份標識。認證聲明包含了用戶通過認證的信息。認證斷言能夠被信任圈中所有服務提供者參考。用於對Subject身份的識別。
- 屬性斷言(Attribute Assertion)。一種用來指明主體屬性信息的斷言。由主體<Subject>元素和屬性聲明<AttributeStatement>元素組成。Subject表明了被認證主體的身份;AttributeStatement包含了主體的各種屬性,如主體的許可權分組、聯繫方式、角色等。
- 授權決策斷言(Authorization Decision ssertion)。一種指明對訪問請求的授權決策結果的斷言。由主體元素<Subject>和授權決策聲明<AuthzDecisionstatement>組成。AuthzDecisionStatemem用來表明對Subject訪問服務請求的決策結果。
SAML的斷言結構如圖所示,SAML斷言中各屬性的含義如下("<>"代表XML子元素):
- <Issuer>:斷言的頒發者。
- <ds:Signature>:對斷言的簽名結果。使用XML簽名技術既可以用來驗證斷言的頒發者,也可以保護斷言不受惡意篡改。
- <Subject>:斷言的作用目標主體。
- <Conditions>:可選元素,一些條件限制。
- <Advice>:非必須元素,在驗證時可以被忽略。
- <Statement>:說明是哪種聲明。包含下面三種聲明
- <AuthzDecisionstatement>:授權決策聲明。
- <Authnstatement>:認證聲明。
- <Attributestatement>:屬性聲明.
Version:斷言的版本號。
ID:斷言的ID號。
Issuelnstance:頒發斷言的時間。
請求/回響協定(Request/Response)
請求/回響協定規定具體的訊息種類和格式用於SAML數據的傳輸。各個模組之間通過傳送請求訊息與回響訊息達到交換訊息和認證主體等目的。
SAML規範中定義了兩種種訊息格式:請求訊息和回響訊息。請求訊息一般包含主體信息等和查詢(Query)。查詢分為四種是主體查詢(SubjectQuery)、認證查詢fAuthenticationQuery)、屬性查詢(AttributeQuery)和授權決策查詢(AuthorizationtQuery)。回響訊息中一般包含了對應查詢的SAML斷言。
綁定(Bindings)
綁定解決了SAML訊息的傳遞問題,SAML訊息通過綁定標準綁定了訊息收發協定和傳輸協定。SAML標準使用時可以綁定當前許多傳輸通信協定。最常用的綁定方式有H丁rPRedirect綁定、HTTPPost綁定、HTTPArtifact綁定、SOAP綁定、ReverseSOAP綁定等。在SOAP綁定中規定了如何把SAML數據封裝在SOAP訊息中。SMVIL數據被封裝在SOAPBody,增添了SOAPHeader頭部信息,形成一個SOAP訊息,最後依靠HT口協定進行傳輸。圖為SAML基於SOAP綁定的示意圖。
配置(Profiles)
配置是SAML定義的SAML訊息如何關於如何向底層通信協定中插入S—蝴L數據的規則,具體描述了在底層訊息收發和傳輸協定中嵌入、集成、提取聲明的方法。SAML規範有兩種配置檔案:HTTPPOST配置檔案和BrowserArtifact配置檔案。
SAML單點登錄
基於SAML的單點登錄模型通常由三部分組成:
- 主體(Subject):指的是向服務提供者提出訪問請求的實體。
- 身份提供者(Identity Provider),下文中簡稱IDP:指的是提供身份認證服務的實體。負責校驗用戶信息並提供用戶所需的安全憑證或安全斷言。
- 服務提供者(Service provider),簡稱SP:指的是負責保護和提供資源、服務的實體。SP與IDP構成同一個安全域。
基於SAML的單點登錄模型主要由實體、認證權威、屬性權威、策略執行點和策略決策點這幾個部分組成。如圖所示。
- 實體(Access Entity):資源請求者。
- 認證權威(Authenticatiort Authority):負責對處理身份認證請求和產生認證斷言。
- 屬性權威(Attribute Authority):負責保護用戶的屬性信息和生成屬性斷言。
- 策略執行點(Policy Enforcemem Point,簡稱PEP):負責截獲受保護資源請求,同時把從認證權威接收到的SAML認證斷言標識交由PDP。
- 策略決策點(Policy Decision Point,PDP):PDP負責相應安全策略,判斷用戶是否允許具有請求的操作的許可權,並做出授權決策斷言。
總結來說,各個模組主要負責處理用來傳遞用戶身份認證信息、授權決策信息、用戶的屬性信息的SAML數據。簡單來說,基於SAML的單點登錄過程為:用戶A在IDP上登錄傳送認證請求並由IDP產生相應的SAML認證斷言,SP通過斷言對用戶屬性和授權進行確認。
SAML特點
SAML作為一種基於XML的安全信息交換、共享語言,具有如下特點:
- 支持SSO。通過SAML,用戶在進行多個B to C業務時,只需一次登錄。以後的交易中,SAML聲明將在信任域中被自動轉發給支持SAML的可信任合作者,用戶可直接訪問這些商業網站,而無需多次輸入用戶名、密碼等登錄信息。
- 靈活性。SAML支持可擴展機制,允許開發者對其中的一些元素進行擴展和選擇。SAML未定義新的認證技術,而是在現有傳輸、認證、安全技術的基礎上,為開發者提供了一個與平台無關的安全服務框架。開發者可以根據具體情況,決定所採用的相關技術和實現方法。
- 更強的互操作性。SAML對用戶端沒有特殊的要求,用戶可以通過瀏覽器向伺服器傳送請求,無需安裝專門的客戶端軟體。SAML聲明可以直接嵌入SOAP訊息體中並通過SOAP over HTTP傳輸,能夠穿過企業防火牆,從而提供更好的互操作性。