CAS 相關的內容好久沒寫了,可能下周會繼續更新一些內容吧。
在上一篇中的單點流程序列圖由于是從官網直接下載來的,上面都是英文,可能有的朋友看不懂,因此修改成中文的。
PS:只修改了一個,第二個圖明天在加...
在這之前,先解釋幾個CAS 相關的術語解釋吧:
1.概念相關①.術語解釋TGT、ST、PGT、PGTIOU、PT,其中CAS1.0協議中就有的票據,PGT、PGTIOU、PT是CAS2.0協議中有的票據。
CAS為用戶簽發的登錄票據,擁有了CAS成功登錄過。CAS認證成功后,TGT對象,放入自己的緩存,CAS生成的cookie,則TGT ,如果有的話,則說明用戶之前登錄過,如果沒有,則用戶需要重新登錄。
http://www.coin163.com/java/cas/ticket.html
· TGC (Ticket-granting cookie):
存放用戶身份認證憑證的cookie,在瀏覽器和CAS Server用來明確用戶身份的憑證。
· ST(Service Ticket)
ST是CAS獲取ST。用戶向CAS會以此cookie值為key查詢緩存中有無TGT,則用此CAS驗證,驗證通過后,允許用戶訪問資源。
· PGT(PRoxy Granting Ticket)
Proxy Service的代理憑據。用戶通過CAS生成一個PGT對象,緩存在 · PGTIOU(全稱 Proxy Granting Ticket I Owe You)
PGTIOU是CAS的serviceValidate接口驗證ST成功后,CAS會生成驗證ST成功的xml消息,返回給Proxy Service,xml消息中含有PGTIOU,proxy service收到Xml消息后,會從中解析出PGTIOU的值,然后以其為key,在map中找出PGT的值,賦值給代表用戶信息的Assertion對象的pgtId,同時在map中將其刪除。
· PT(Proxy Ticket)
PT是用戶訪問Target Service(back-end service)的票據。如果用戶訪問的是一個Web應用,則Web應用會要求瀏覽器提供ST,瀏覽器就會用cookie去CAS獲取ST,而是通過訪問proxy service的接口,憑借proxy service的PGT去獲取一個PT,然后才能訪問到此應用。
②、TGT、ST、PGT、PT之間關系1)ST是CAS上認證成功后,TGT,用TGT對象,然后把ST的值redirect到客戶應用。
2)PGT是ST簽發的。用戶憑借ST去訪問Proxy service,Proxy service去CAS),如果ST驗證成功,則TGT對象。
3)PT是PGT簽發的。Proxy service代理back-end service去CAS根據傳來的pgt參數,獲取到PGT對象,然后調用其grantServiceTicket方法,生成一個PT對象。
2.CAS 基本流程圖(沒有使用PROXY代理)OVER
新聞熱點
疑難解答