openid connect 協議入門指南
opensaml示例
saml在單點登入中大有用處:在saml協議中,一旦使用者身份被主**(身份鑑別伺服器,identity provider,idp)認證過後,該使用者再去訪問其他在主站註冊過的應用(服務提供者,service providers,sp)時,都可以直接登入,而不用再輸入身份和口令。
saml本身是乙個很複雜的協議,這裡只選取最重要的部分為大家講解,更多細節請見官方文件,後續的文章也會進一步解析。
saml協議的核心是: idp和sp通過使用者的瀏覽器的重定向訪問來實現交換資料。sp向idp發出saml身份認證請求訊息,來請求idp鑑別使用者身份;idp向使用者索要使用者名稱和口令,並驗證其是否正確,如果驗證無誤,則向sp返回saml身份認證應答,表示該使用者已經登入成功了,此外應答中里還包括一些額外的資訊,來卻確保應答被篡改和偽造。
現在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協議。saml協議的內容十分複雜,但是涉及到單點登入的內容都是以上述內容為基礎的。
opensaml 使用引導 i : 簡介oauth2.0 協議入門指南opensaml 使用引導 ii : service provider 的實現之authnrequest
opensaml 使用引導 iii: service provider 的實現之artifact與斷言
opensaml 使用引導iv: 安全特性
openid connect 協議入門指南
SAML2 0入門指南
openid connect 協議入門指南 opensaml示例 saml在單點登入中大有用處 在saml協議中,一旦使用者身份被主 身份鑑別伺服器,identity provider,idp 認證過後,該使用者再去訪問其他在主站註冊過的應用 服務提供者,service providers,sp 時...
python入門指南 Python 入門指南
python 入門指南 release 3.6.3 date dec 10,2017 python 是一門簡單易學且功能強大的程式語言。它擁有高效的高階資料結構,並且能夠用簡單而又高效的方式進行物件導向程式設計。python 優雅的語法和動態型別,再結合它的解釋性,使其在大多數平台的許多領域成為編寫...
入門指南 雷射切管快速入門指南
本文是有關管材和雷射管切割的思考的快速入門指南。要求 首先,需要確定對管材尺寸的要求。考慮以下問題 將要加工的管材最大和最小直徑是多少?切割這些管材需要多大功率?它們是薄壁還是厚壁?原材料和成品零件的長度是多少?這些要求將確定所需的雷射切割機型別。管材切割基礎知識 儘管板材和管材是用相似的材料製成的...