CAS單點登入流程梳理

2021-10-24 14:30:02 字數 1548 閱讀 7696

新的專案中,需要對接單點登入,於是了解了一下cas的登入流程。

按照流程圖,前端需要在初次進頁面的時候,請求伺服器獲取鑑權。

服務端發現這個使用者沒有相關憑證的時候,可以返回相應的狀態碼告知前端需要登入。

前端跳轉到https://*.*/cas/login?service=http://*.*進行登入。

登入完成之後,cas會返回給前端乙個ticket,例如:http://*.*?ticket=st-1212

這時候,重新進入的前端頁面,前端頁面繼續向服務端請求鑑權。

服務端發現這個使用者沒有服務端發放的憑證,但是擁有cas頒發的ticket,這個時候,服務端請求cas驗證登入(注意:由於cas頒發的ticket失效時間特別短,預設是10s,所以我們手動測試的時候,需要注意一下速度)。

請求鏈結demohttps://*.*/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 應用的單點登入框...