CAS背景介紹
CAS(Central Authentication Service),是耶魯大學開發的單點登錄系統(SSO,single sign-on),應用廣泛,具有獨立于平臺的,易于理解,支持代理功能。CAS系統在各個大學如耶魯大學、加州大學、劍橋大學、香港科技大學等得到應用。
Spring Framework的Acegi安全系統支持CAS,并提供了易于使用的方案。Acegi安全系統,是一個用于Spring Framework的安全框架,能夠和目前流行的Web容器無縫集成。它使用了Spring的方式提供了安全和認證安全服務,包括使用Bean Context,攔截器和面向接口的編程方式。因此,Acegi安全系統能夠輕松地適用于復雜的安全需求。Acegi安全系統在國內外得到了廣泛的應用,有著良好的社區環境。
CAS的設計目標
(1)為多個Web應用提供單點登錄基礎設施,同時可以為非Web應用但擁有Web前端的功能服務提供單點登錄的功能;
(2)簡化應用認證用戶身份的流程;
(3)將用戶身份認證集中于單一的Web應用,讓用戶簡化他們的密碼管理,從而提高安全性;而且,當應用需要修改身份驗證的業務邏輯時,不需要到處修改代碼。
CAS的實現原理
CAS(Central Authentication Server)被設計成一個獨立的Web應用。實現原理非常簡單,CAS Server2.0.12的實現只有30個類,除了JDK本身外,只使用到一個servlet.jar包。它目前的實現是運行在HTTPS服務器的幾個Java Servlet上(而客戶端可以靈活采用http和https的方式)。
通過CAS2.0.12認證的序列圖如下圖(因圖片顯示問題,暫時去除)。
CAS在應用中的運行硬件環境
University of Delaware: Sun Fire 280R/ 2x750 MHz/ 4 GB memory/ 550.3 GB disk storage
University of Hawaii: a single Sun Netra X1 (UltraSPARC-IIe 500MHz) with 1.0GB RAM dedicated to running CAS. 2.
CAS2.0.12中關于ticket的生成
CAS創建一個位數很長的隨機數(ticket)。CAS把這個ticket和成功登錄的用戶以及用戶要訪問的service聯系起來。例如,如果用戶peon重定向自service S,CAS創建ticket T,這個ticket T允許peon訪問service S。這個ticket是個一次性的憑證;它僅僅用于peon和僅僅用于service S,并且只能使用一次,使用之后馬上會過期,即ticket通過驗證,CAS立即刪除該ticket,使它以后不能再使用。這樣可以保證其安全性。
關于ST,在取一個ST時,即使用deleteTicket(ticketId)同時將一次性的ST刪除;而對于TGT或PT,則通過resetTimer(ticketId)以更新TGT或PT的時間。在CAS服務端返回的ST中只能得出用戶名。
另外,CAS3.0版本也已經發布了,現在最新的版本是3.03,希望CAS3.0在向下兼容的同時,更能向我們提供一些新東西。
posted on 2005-12-29 19:32
Swift 閱讀(2235)
評論(1) 編輯 收藏 所屬分類:
Java安全