新的專案中,需要對接單點登入,於是了解了一下cas
的登入流程。
按照流程圖,前端需要在初次進頁面的時候,請求伺服器獲取鑑權。
服務端發現這個使用者沒有相關憑證的時候,可以返回相應的狀態碼告知前端需要登入。
前端跳轉到https://*.*/cas/login?service=http://*.*
進行登入。
登入完成之後,cas
會返回給前端乙個ticket
,例如:http://*.*?ticket=st-1212
這時候,重新進入的前端頁面,前端頁面繼續向服務端請求鑑權。
服務端發現這個使用者沒有服務端發放的憑證,但是擁有cas
頒發的ticket
,這個時候,服務端請求cas
驗證登入(注意:由於cas
頒發的ticket
失效時間特別短,預設是10s
,所以我們手動測試的時候,需要注意一下速度)。
請求鏈結demo
:https://*.*/cas/servicevalidate?service=http://*.*?ticket=st1212
驗證通過的話,會返回xml
資訊,結果如下:
<
cas:serviceresponse
xmlns:cas
=''>
<
cas:authenticationsuccess
>
<
cas:user
>
login_name
cas:user
>
cas:authenticationsuccess
>
cas:serviceresponse
>
驗證失敗,返回xml
資訊,結果如下:
<
cas:serviceresponse
xmlns:cas
=''>
<
cas:authenticationfailure
code
='invalid_ticket'
>
ticket 'st-12148040' not recognized
cas:authenticationfailure
>
cas:serviceresponse
>
如若驗證通過,則生成相關憑證給前端。
當前端發起任何服務端的請求時,都需要帶上服務端的憑證,如若發現失效,則重複整個登入流程。
登出相對比較簡單了,直接通過https://*.*/cas/logout?service=http://*.*
即可。
CAS單點登入
出現這個頁面說明服務端部署成功。cas預設的使用者名稱casuser,密碼 mellon,登陸成功 如果我們不希望用8080埠訪問cas,可以修改埠 1 修改tomcat的埠 開啟tomcat 目錄 conf server.xml 找到下面的配置 將埠8080,改為9000 2 修改cas配置檔案 ...
cas單點登入
開門見山,如下圖為cas登入的序列圖 cas實現單點登入的主要票據有兩個,乙個是tgt,乙個是st。因為是做單點登入的,所以客戶端應該是有多個的,當其中乙個登入之後,在同一瀏覽器中在登陸其他客戶端使用者是感知不到再次登入的,原因是第一次登入成功後cookie記錄乙個tgt,這個cookie在瀏覽器中...
CAS單點登入
單點登入 single sign on 簡稱 sso 是目前比較流行的服務於企業業務整合的解決方案之一,sso 使得在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。cas central authentication service 是一款不錯的針對 web 應用的單點登入框...