1. 程式人生 > >SSO統一身份認證

SSO統一身份認證

                                                                                    SSO統一身份認證

  1. sso身份認證是什麼?

sso身份認證,不在本系統中登入,跳轉到第三方系統進行登入,登入後,再攜帶登入的使用者資訊在本系統中進行登入。

需要知道的是,本系統,與sso server相比,是作為sso client的。

例子:

整個過程很像,在一個系統中,用qq或者微信賬號進行登入,登入時,會彈出qq輸入賬戶密碼的頁面,qq登入認證成功後,返回本系統。

2.sso認證登入的過程

1)攔截T系統的所有頁面,檢查session中是否含有使用者資訊(術語有的稱之為,使用者未認證,需要sso server認證)

2)使用者未認證,則直接跳轉到sso server(第三方系統),這時候,一般是攜帶一個url的(這個url以為會是currentPage或者index頁面)

3)sso server驗證使用者資訊

sso驗證過程是不用我們操心的,我們只需要關心得到的返回的結果就ok了,比如,qq驗證賬號密碼是否正確,整個過程我們是看不到的,作為sso client一方,也不用我們關心,我們只需要拿到qq驗證的結果(true or false)

4)sso server返回資料

sso server返回資料,一般是不會直接返回結果的,一般會返回一個token,也有的是ticket,即,身份證明。該身份證明是一次性的,我們利用token,呼叫sso server 的遠端介面(SSO Server API

),以獲取使用者資訊

5)SSO Server API,一般會有兩個介面,第一個用於獲取令牌,第二個利用令牌,加上token,得到使用者資訊

  • 獲取令牌

通過post/get,向介面傳送資料,得到返回值,返回值一般會包含三個東西:access_token(得到使用者資訊的介面的api中需要的引數)issucc(是否成功)expires_in(令牌過期時間,從當前時間開始多少秒後過期)

  • 得到使用者資訊

通過post/get,向介面傳送資料,得到返回值,返回值一般包含三個東西;

欄位名

引數說明

error_description

錯誤資訊

succeeded

是否成功

user_login_name

使用者賬號

6)sso登出

本系統在登出相關session和cookie的同時,向sso登出介面傳送post/get請求,登出訪問。