Saml(安全斷言標記語言)是壹個XML框架,也就是壹組協議,可以用來傳輸安全斷言。比如兩臺遠程機器要通信,為了保證安全,我們可以采取加密等措施,也可以使用SAML來傳輸數據。傳輸的數據是XML的形式,符合SAML規範,所以我們不需要兩機使用什麽樣的系統,只需要了解SAML規範就可以了,這顯然比傳統的方式要好。SAML規範是壹組模式定義。
可以說,在Web服務領域,schema就是規範,在Java領域,API就是規範。
SAML解決的最重要的需求是web瀏覽器單點登錄(SSO)。單點登錄在內部網級別很常見(例如,使用Cookie),但是在內部網之外擴展它壹直是個問題,並且它導致了不可互操作的專有技術的激增。(瀏覽器單點登錄問題的另壹個最新解決方案是OpenID連接協議。)
SAML主要包括三個方面:
1.認證聲明。指示用戶是否已經過身份驗證,通常用於單點登錄。
2.屬性聲明。表示主題的屬性。
3.授權聲明。指示資源的權限。
SAML是指客戶向服務器發送SAML請求,然後服務器返回SAML響應。數據的傳輸以符合SAML規範的XML格式表示。
SAML可以通過SOAP或其他協議傳輸。
因為SAML的規範由幾個部分組成:SAML斷言、SAML Prototol、SAML綁定等等。
因為SAML在兩個有* * *用戶的站點之間建立了信任關系,所以安全性是壹個非常重要的考慮因素。SAML中的安全缺陷可能會危及目標站點用戶的個人信息。SAML依賴於許多成熟的安全標準,包括SSL和X.509,來保護SAML源站點和目標站點之間的通信安全。源站點和目標站點之間的所有通信都是加密的。為了確保參與SAML交互的兩個站點可以驗證彼此的身份,還使用了證書。
在SAML協議中,協議的安全設計非常完備,包括協議中定義的客戶端、SP和IDP的交互流程,SAML中的關鍵交互數據都經過了簽名和密碼加密。
1.簽署SAML數據
為了有效保證SAML交互過程中的數據不被偽造和篡改,它支持對任何SAML數據進行簽名。尤其是重要的SAML身份驗證斷言。
具體來說,本項目采用X.509格式數字證書進行簽名,采用RSA公鑰密碼算法和SHA-256哈希算法,密鑰長度為1024位。
2.2的安全性設計。SAML認證斷言:加密和斷言有效性。
SAML認證斷言包含了大量的用戶賬戶信息,因此有必要對其進行加密。
SAML認證斷言的加密還支持多種對稱加密算法,包括國家秘密算法和AES算法。本項目采用AES算法,密鑰長度為1024位,可以有效保證SAML認證斷言的機密性。
另外,為了防止重放攻擊,在設計中也對認證斷言的有效期進行了限制,認證斷言的有效期是可以配置的,所以建議使用較短的有效期。
首先,妳需要知道壹些基本的服務提供商:
IDP:賬戶認證的服務商,如賽富IDaaS as IDP,主要完成認證。
SP:為用戶提供商業服務的軟件(實體),如禪宗。
瀏覽器:用戶的瀏覽器,用戶可以通過瀏覽器訪問資源並進行相關跳轉,完成身份認證。
“用戶登錄地址”,應用的SAML協議的登錄路徑。
“relayState Address”,應用認證成功後的跳轉地址。
“AssertionConsumerServiceUrl”,其中應用程序接收統壹的身份驗證。
下面簡單介紹壹下使用基於SAML的SSO登錄WebApp1的過程。
這張圖片說明了以下步驟。
用戶試圖訪問WebApp1。
相關文章:什麽是SSO?