面試題 CAS單點登入

2021-09-27 01:25:14 字數 1440 閱讀 6253

單點登入:single sign on,簡稱sso,sso使得在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。

cas框架:cas(central authentication service,即:統一認證服務)是實現sso單點登入的框架。

cas分為兩部分,cas server和cas client。

cas server用來負責使用者的認證工作,就像是把第一次登入使用者的乙個標識

存在這裡,以便此使用者在其他系統登入時驗證其需不需要再次登入。

cas client就是我們自己開發的應用程式,需要接入cas server端。當使用者

訪問我們的應用時,首先需要重定向到cas server端進行驗證,要是原來登陸過,就免去登入,重定向到下游系統,否則進行使用者名稱密碼登陸操作。

ticket granting ticket (tgt) :可以認為是cas server根據使用者名稱密碼生成的一張票,存在server端

ticket-granting cookie (tgc) :其實就是乙個cookie,存放使用者身份資訊,由server發給client端

service ticket (st) :由tgt生成的一次性票據,用於驗證,只能用一次。相當於server發給client一張票,然後client拿著這個票再來找server驗證,看看是不是server簽發的。

1)、 使用者訪問**,第一次來,重定向到 cas server,發現沒有cookie,所以再重定向到cas server端的登入頁面,並且url帶有**位址,便於認證成功後跳轉,形如 http ?/cas-server:8100/login?service=http ?/localhost:8081

注意:service後面這個位址就是登入成功後要重定向的下游系統url。

2)、在登陸頁面輸入使用者名稱密碼認證,認證成功後cas-server生成tgt,再用tgt生成乙個st。 然後再第三次重定向並返回st和cookie(tgc)到瀏覽器

4)、瀏覽器的伺服器收到st後再去cas-server驗證一下是否為自己簽發的,驗證通過後就會顯示頁面資訊,也就是重定向到第1步service後面的那個url

首次登陸完畢。

5)、再登陸另乙個接入cas的**,重定向到cas server,server判斷是第一次來(但是此時有tgc,也就是cookie,所以不用去登陸頁面了),但此時沒有st,去cas-server申請乙個於是重定向到cas-server,形如:http: //cas-server:8100/login?service=http ?/localhost:8082 && tgc(cookie) (傳目標位址和cookie)

6)、cas-server生成了st後重定向給瀏覽器http ?/localhost:8082/?ticket=st-25939-sqfsafgefesaedswqqw5-***x

7)、瀏覽器的伺服器收到st後再去cas-server驗證一下是否為自己簽發的,驗證通過後就會顯示頁面資訊(同第4步)

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 應用的單點登入框...