單點登入(single sign on , 簡稱 sso )是目前比較流行的服務於企業業務整合的解決方案之一, sso 使得在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。cas(central authentication service)是一款不錯的針對 web 應用的單點登入框架,本文介紹了 cas 的原理、協議、在 tomcat 中的配置和使用,對於採用 cas 實現輕量級單點登入解決方案的入門讀者具有一定指導作用。
1.cas 介紹
cas 是 yale 大學發起的乙個開源專案,旨在為 web 應用系統提供一種可靠的單點登入方法,cas 在 2004 年 12 月正式成為 ja-sig 的乙個專案。cas 具有以下特點:
2.cas 原理和協議
從結構上看,cas 包含兩個部分: cas server 和 cas client。cas server 需要獨立部署,主要負責對使用者的認證工作;cas client 負責處理對客戶端受保護資源的訪問請求,需要登入時,重定向到 cas server。圖1 是 cas 最基本的協議過程:
圖 1. cas 基礎協議
cas client 與受保護的客戶端應用部署在一起,以 filter 方式保護受保護的資源。對於訪問受保護資源的每個 web 請求,cas client 會分析該請求的 http 請求中是否包含 service ticket,如果沒有,則說明當前使用者尚未登入,於是將請求重定向到指定好的 cas server 登入位址,並傳遞 service (也就是要訪問的目的資源位址),以便登入成功過後轉回該位址。使用者在第 3 步中輸入認證資訊,如果登入成功,cas server 隨機產生乙個相當長度、唯
一、不可偽造的 service ticket,並快取以待將來驗證,之後系統自動重定向到 service 所在位址,並為客戶端瀏覽器設定乙個 ticket granted cookie(tgc),cas client 在拿到 service 和新產生的 ticket 過後,在第 5,6 步中與 cas server 進行身份合適,以確保 service ticket 的合法性。
在該協議中,所有與 cas 的互動均採用 ssl 協議,確保,st 和 tgc 的安全性。協議工作過程中會有 2 次重定向的過程,但是 cas client 與 cas server 之間進行 ticket 驗證的過程對於使用者是透明的。
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單點登入原理
之前我們談了如何關於單點登入的一些概述,講到了當跨網域名稱單點登入時,cas的設計具有參考價值,那麼這篇就該談談cas的具體原理了。cas指的是apereo的cas開源專案,三個字母分別是是central authentication service的首字母縮寫。git 官方文件 截止目前版本已經更...