cas和saml 揭穿SAML神話和誤解

2021-10-07 19:48:18 字數 4428 閱讀 2704

cas和saml

作為新手,saml規範正在與現有的單點登入技術,身份驗證服務和目錄服務進行比較。 saml是可能利用身份驗證協議的第乙個協議,以利用web基礎結構,其中xml資料通過tcp / ip網路上的http協議移動。

oasis小組將saml開發為用於交換安全資訊的基於xml的框架。 saml與其他安全方法的不同之處主要在於,saml以關於主題的斷言形式表示安全性。 其他方法使用**證書頒發機構來頒發證書,以保證網路中從乙個點到另一點的安全通訊。 使用saml,網路中的任何點都可以斷言它知道使用者或資料的身份。 如果接收方的應用程式信任該斷言,則由它接受。 任何符合saml的軟體都可以宣告其對使用者或資料的身份驗證。 這對於即將到來的業務工作流web服務標準浪潮很重要,在該標準中,安全資料需要在多個系統中移動才能完全處理事務。

在身份管理解決方案中,saml作為伺服器之間的通訊協議扮演著重要的角色。 但是,saml並不是乙個完整的解決方案。 在資訊系統安全領域,身份管理最近以乙個新術語出現,涵蓋了以下計算領域:

saml是兩個伺服器需要共享身份​​驗證資訊時使用的協議規範。 saml規範中沒有任何內容提供商業目錄伺服器否則提供的實際身份驗證服務。

saml是降低許多服務提供商之間可互操作的資訊系統的構建和運營成本的眾多嘗試之一。 在當今競爭激烈,瞬息萬變的環境中,出現了企業聯合會,這些聯合會通過瀏覽器和支援web的應用程式為使用者提供互操作性。 例如,在旅行**上,使用者可以預訂機票和租車,而不必多次登入。 如今,需要成群的軟體開發人員,qa技術人員和it經理來處理複雜且不可靠的後端系統,這些後端系統提供了企業之間的聯合安全性。

在典型的基於web的基礎架構中,執行領先企業系統的軟體需要處理授權伺服器之間的瀏覽器重定向; 伺服器域,公共金鑰基礎結構(pki)加密和數字證書之間的http發布命令; 以及共同商定的機制,用於說明任何給定使用者或組的信任級別。 saml向軟體開發人員展示了如何表示使用者,識別需要傳輸的資料以及定義傳送和接收授權資料的過程。

saml為需要在web基礎結構(xml / http / tcp)上設計和構建可伸縮和聯合系統的系統架構師提供了乙個藍圖。 即使您決定不使用saml,saml規範也會回答許多系統架構師在構建可互操作的,啟用web的系統時需要回答的許多設計問題。

作為示例,請考慮用於將授權請求編碼為xml請求的saml斷言機制。 saml定義了幾種型別的語句:

身份驗證。主題已登入。例如,用於身份驗證的saml宣告可能如下所示:

[email protected] logged in at 2003-02-06t19:22:09z
屬性。標識主題的屬性。 例如,[email protected]的角色為admin。

授權決定。宣告允許物件對資源執行操作。 例如,fcohen @ pushtotest.com被授權get

斷言屬性。一種可選機制,使行業聯盟可以定義特定於其行業的屬性。

此外,saml定義了斷言中的語句共享的斷言屬性,包括:

版本屬性。標識斷言所遵循的saml規範的主要版本和次要版本。

簽名。saml定義了乙個xml簽名元素來標識授權。 它可以包含帶有公共金鑰,到期日期和使用策略的x509證書。 xml簽名還包含簽名值本身,該簽名值由許可權為元素的內容生成。 可以使用x509證書中的授權機構的公鑰資訊來驗證簽名。 通常,saml的複雜性來自基於saml的軟體的部署以及公共金鑰基礎結構(pki)環境和數字證書的設定。

saml還定義了可選的條件元素,以限制授權請求的有效性。 例如,saml令牌可能在指定的utc編碼日期之前有效,而不是notbeforenotonorafter。 請注意,像soap-dsig一樣,soap安全與saml不同。 soap在ws-i和ws-security中都有自己的安全提議,它們使用soap標頭來嵌入安全性,加密和認證令牌。 saml更適合基於tcp的web應用程式上的http。

saml並未定義任何行業的屬性含義。 相反,saml定義了一種命名空間機制,行業協會可以使用該機制來定義其特定行業的屬性。 例如,在航空航天業中,saml屬性role:mechanic定義了航空公司的機械師。 系統兩端的各方需要分別就saml使用的命名空間達成一致。

saml規範標識其自己的命名空間以限定saml屬性和元素。 例如,命名空間"urn:oasis:names:tc:saml:1.0:action:ghpp"定義了saml操作使用的get / head / put / post http操作。 如果saml命名空間格式看起來很奇怪,那可能是因為saml命名空間不遵循soap和xml-rpc中已成為傳統xml命名空間格式的格式。 xml命名空間是uri。 saml使用uri的urn變體,而其他使用url的變體。

saml是在伺服器之間使用的身份驗證協議 。 您仍然需要一些可以真正為您執行登入的東西。 saml只能說「您已登入」。 例如,當ldap伺服器對使用者進行身份驗證時,即使ldap伺服器可能正在使用saml來傳達授權,身份驗證機構還是ldap伺服器。

在完整的身份驗證系統中,您仍然需要編寫策略決策點來確定使用者是否可以訪問網頁。 此外,您仍然需要編寫策略執行點。 這是乙個servlet或應用程式,它接收授權,檢查角色和授權,然後進行斷言。 包括ibm在內的多家公司提供商業策略決策點和策略執行點解決方案。

當授權請求對於http重定向而言過長時,saml定義了一種人工機制。 saml工件長40位元組,包含乙個型別**(源id為20位元組)和乙個20位元組的隨機數,伺服器使用這些隨機數來查詢斷言。 源服務臨時儲存斷言。 目標站點接收該斷言,並從源站點上的工件直接提取所需的資料。 這允許兩個不同的安全伺服器使用構件。

重播攻擊是攔截有效訊息並將其重播回服務的位置。 您可以使用重播攻擊來建立資料完整性問題以及拒絕服務攻擊。

saml通過在傳輸斷言和訊息時要求使用ssl加密,特別是防止斷言的攔截,從而提供了免受重放攻擊的保護。 另外,saml提供了一種數字簽名機制,該機制使斷言具有有效時間範圍,以防止斷言稍後被重播。

最後,工件概要檔案還有兩個附加的重放對策:

saml沒有定義一種機制來查詢接受saml斷言的目標站點。 saml定義了一種用於身份驗證的推送機制:使用者登入到源站點,然後該站點將乙個斷言傳送到目標站點。 此過程需要在源站點和目標站點之間進行數字簽名。 在web環境中,瀏覽器將表單發布到目標站點,並在隱藏的表單變數中包含base64編碼的簽名和斷言。 將來的saml規範可能會包含發現機制。

saml沒有提供匿名身份驗證的規定。 請考慮以下情形:**允許您使用合作夥伴**的功能,但是不允許合作夥伴**知道您的身份。 saml不提供此功能。 可以獲取saml來處理匿名或來賓訪問,但這需要參與的企業同意自己的匿名或來賓授權訪問約定。

saml建立在需要ssl證書的基礎上,以提供saml斷言的數字簽名和加密。 因此,saml帶來了ssl帶來的所有痛苦。

saml是最早要求這種程度的細粒度安全性的協議之一。 例如,xkms提供的細粒度安全性對saml宣告進行身份驗證。 同時,saml通過要求使用http basic或ssl客戶端證書認證的http客戶端授權來為saml工件提供安全性。 工件僅傳送給預期的請求者,並且在檢索之後將其刪除。

已經有許多商業和開源產品提供saml,包括:

這是完全錯誤的。

這根本是錯誤的。 xml簽名是一種規範,旨在滿足將數字簽名與xml文件(包括saml)一起使用的特殊要求。 w3c的xml簽名工作組正在開發一種xml語法,以對幾乎所有內容進行簽名(例如xml文件,soap訊息頭和xml元素),並提供用於建立和驗證數字簽名的協議和過程。

xml簽名中的規範化對於允許多個服務之間的認證是必需的。 例如,考慮當您通過瀏覽器介面從製造商那裡購買個人計算機時,在伺服器端會發生什麼情況。 多種服務處理您的訂單部分:一項提供搜尋以查詢您想要訂購的產品,另一項是提供您的付款資訊的計費服務,而最後一項服務則提供您的運輸資訊。 這三個系統使用saml斷言共享您的記錄。 規範化確保即使三個不同的系統正在處理記錄,記錄中位元組的順序也保持不變。 如果不進行規範化,則記錄可能會更改,並使xml簽名無效,因為xml簽名的任務是確保已簽名的內容完整且具有相同的位元組順序。 使用saml不需要xml簽名或ws-security。

由於已經有許多專注於安全性的公司提供運輸產品,saml有了乙個良好的開端。 saml規範提供了乙個良好的框架,用於在一組聯合服務之間設計啟用web的單點登入服務。 saml規範工作組繼續合理化saml與其他新興標準(包括ws-security)之間的互操作性要求。

作者感謝oblix的首席軟體工程師charles knouse以及軟體開**壇(www.sdforum.org)的web服務特別興趣小組對本文的研究提供的幫助。

翻譯自:

cas和saml

SAML簡介(beegee譯稿)

摘要 saml 和xacml在基於xml的安全認證體系中扮演不同的角色,但同樣重要。設計許可權訪問控 務,特別要實現跨組織 跨域 跨應用系統的統一安全訪問控制,不能不了解saml。saml overview 安全斷言標記語言 saml,security assertion markup langua...

SAML2 0入門指南

openid connect 協議入門指南 opensaml示例 saml在單點登入中大有用處 在saml協議中,一旦使用者身份被主 身份鑑別伺服器,identity provider,idp 認證過後,該使用者再去訪問其他在主站註冊過的應用 服務提供者,service providers,sp 時...

SAML標準提高網路安全性

網際網路安全方面最具挑戰性的乙個問題是維持一次無縫操作和安全環境時,使各不相同的安全系統達到一體化。由於一些公司經常需要通過網路來交換機密的資料或資料,因此,對於安全意義非常重大的web服務來說,對這種功能的要求尤為重要,比如進行電子商務活動。結構化資訊標準促進組織 oasis 建立的安全標準sam...