SAML2 0入門指南

2021-09-20 11:26:41 字數 1860 閱讀 1781

openid connect 協議入門指南

opensaml示例

saml在單點登入中大有用處:在saml協議中,一旦使用者身份被主**(身份鑑別伺服器,identity provider,idp)認證過後,該使用者再去訪問其他在主站註冊過的應用(服務提供者,service providers,sp)時,都可以直接登入,而不用再輸入身份和口令。

saml本身是乙個很複雜的協議,這裡只選取最重要的部分為大家講解,更多細節請見官方文件,後續的文章也會進一步解析。

saml協議的核心是: idp和sp通過使用者的瀏覽器的重定向訪問來實現交換資料。

sp向idp發出saml身份認證請求訊息,來請求idp鑑別使用者身份;idp向使用者索要使用者名稱和口令,並驗證其是否正確,如果驗證無誤,則向sp返回saml身份認證應答,表示該使用者已經登入成功了,此外應答中里還包括一些額外的資訊,來卻確保應答被篡改和偽造。

image.png

現在alice要通過瀏覽器查閱她的郵件,alice一般會通過瀏覽器訪問乙個網頁,比如 (step1)。因為這是個聯合身份域,所以google不會向使用者索要使用者名稱和密碼,而是將其從定向到idp來認證其身份(step3)。使用者被重定向的url類似於這種:

samlrequest=fvlltuswen0j8q…c%3d

嵌入到http請求中的samlrequest就是saml認證請求訊息。因為saml是基於xml的(通常比較長),完整認證請求訊息要經過壓縮(為url節省空間)和編碼(防止特殊字元)才能傳輸。在壓縮和編碼之前,saml訊息有如下格式:

google.com

;;

上面的內容用最直白的方式解發布來就是:這個來自google的請求,請驗證當前使用者的身份,並將結果返回。

當idp收到訊息並確認要接受認證請求之後,就會要求alice輸入使用者名稱和口令來驗證其身份(如果alice已經登入過了,就會跳過該步驟);當驗證通過之後,alice的瀏覽器將會跳轉回google的特定頁面(assertionconsumerservice,簡稱acs,step6)。同樣,saml身份認證響應的內容也是在壓縮並編碼後以引數的形式傳輸。在壓縮和編碼之前,其結構類如下:

alice

雖然內容很多,但是其主要表達的是:該訊息來自idp.uni.nl,名為alice使用者的身份已經被我驗證,該訊息的有效期為2分鐘。此外,重定向的url中還要有該訊息的簽名以保證其不備篡改,驗證簽名的公鑰和演算法,都是idp和sp提前協商好的。

當google接受到saml認證響應之後,會首先驗證訊息的簽名是否正確(step7)以及是否因超時而失效。然後再從認證訊息中提取出google能識別使用者身份(nameid,即alice),如果以上的步驟都是順利的,使用者將會成功登陸google(step8)。

為了便於解釋,以上例子中的資訊都保持了可讀性,如果想要去看看真實的saml資訊,建議推薦使用火狐瀏覽器的外掛程式工具 saml tracer。該外掛程式將會在瀏覽器中新增乙個視窗來顯示saml訊息,以下是截圖:

saml tracer

希望以上的內容能幫助你理解saml協議。saml協議的內容十分複雜,但是涉及到單點登入的內容都是以上述內容為基礎的。

opensaml 使用引導 i : 簡介

opensaml 使用引導 ii : service provider 的實現之authnrequest

opensaml 使用引導 iii: service provider 的實現之artifact與斷言

opensaml 使用引導iv: 安全特性

oauth2.0 協議入門指南

openid connect 協議入門指南

SAML2 0入門指南 RFC 7522

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

python入門指南 Python 入門指南

python 入門指南 release 3.6.3 date dec 10,2017 python 是一門簡單易學且功能強大的程式語言。它擁有高效的高階資料結構,並且能夠用簡單而又高效的方式進行物件導向程式設計。python 優雅的語法和動態型別,再結合它的解釋性,使其在大多數平台的許多領域成為編寫...

入門指南 雷射切管快速入門指南

本文是有關管材和雷射管切割的思考的快速入門指南。要求 首先,需要確定對管材尺寸的要求。考慮以下問題 將要加工的管材最大和最小直徑是多少?切割這些管材需要多大功率?它們是薄壁還是厚壁?原材料和成品零件的長度是多少?這些要求將確定所需的雷射切割機型別。管材切割基礎知識 儘管板材和管材是用相似的材料製成的...