單點登陸系統和CAS的簡介

---恢復內容開始---瀏覽器

什麼是單點登陸?緩存

單點登陸(Single Sign On),簡稱爲SSO,是目前比較流行的企業業務整合的解決方案之一.SSO的定義是在多個應用系統中,用戶只須要登陸一次就能夠訪問全部相互信任的應用系統.安全

  若是咱們的系統存在於諸多的子系統中,而這些子系統是分別部署在不一樣的服務器中,那麼使用傳統方式的session是沒法解決的,咱們須要使用相關的單點登陸技術來解決.服務器

經過這張圖就能夠簡單的對單點登陸有必定的瞭解:session

1.用戶第一次訪問應用系統的時候,由於尚未登陸,就會被引導到認證系統中進行登陸.框架

2.根據用戶提供的登陸信息,認證系統進行身份校驗,若是經過校驗應該返回給用戶一個認證的憑據--ticket3d

3.用戶再訪問別的應用的時候,就會將這個ticket帶上,做爲本身的憑據,應用系統接收到請求以後,就會把ticket送到認證系統進行校驗,檢查ticket的合法性.若是經過校驗,用戶就能夠在不用再次登陸的狀況下訪問應用系統2和3了.代理

要實現SSO,須要一下主要的功能:blog

  全部應用系統共享一個身份認證系統.\ 資源

  統一的認證系統是SSO的前提之一,認證系統的主要功能是將用戶的登陸信息和用戶信息庫相比較,對用戶進行登陸認證,認證成功後,認證系統應該生成統一的認證標誌(ticket),返還給用戶,另外,認證系統還應該對ticket進行校驗,判斷其有效性.

`  全部應用系統能過識別和提取ticket的信息.

  要實現SSO的功能,讓用戶只登陸一次,就必須讓應用系統可以識別已經登陸過的用戶,應用系統應該能對ticket進行識別和提取,經過與認證系統的通信,能自動判斷當前用戶是否登錄過,從而完成單點登陸的功能.

  優勢:

  1.提升用戶的效率

  用戶再也不被屢次登陸困擾,也不須要記住多個ID密碼,另外,用戶忘記密碼並求助於支持人員的狀況也會減小.

  2.提升開發人員的效率

  SSO爲開發人員提供了一個通用的身份證驗證框架.實際上,若是SSO機制是獨立的,那麼開發人員就徹底不須要爲身份驗證進行操心,他們能夠假設,只要對應用程序的請求附帶一個用戶名,身份驗證就已經完成了.

  3.簡化管理

  若是應用程序加入了單點登陸協議,管理用戶帳號的負擔就會減輕,簡化的程度取決於應用程序,由於SSO只處理身份驗證.因此,應用程序可能仍然須要設置用戶的屬性(好比訪問特權).

缺點:

  1.不利於重構,

  由於涉及到的系統會不少,要重構必需要兼容全部的系統,可能很耗時.

  2.無人看守桌面

  由於只須要登陸一次,全部的受權的應用系統均可以訪問,可能致使一些很重要的信息泄露.

CAS(中央認證服務)

  CAS是Central Authentiction Service 的縮寫,中央認證服務,一種獨立開放指令協議.CAS是Yale大學發起的開源項目.旨在爲Web應用系統提供一種可靠的單點登陸方法,CAS在2004年12月正式稱爲JA-SIG的一個項目.

  特色:

  1.開源的企業級單點登陸解決方案.

  2.CAS Service爲須要獨立部署的Web應用.

  3.CAS Client 支持很是多的客戶端(這裏指單點登陸系統中的各個Web應用),包括Java   .NET PHP  Apache uPortal Ruby等

CAS的原理:

從結構上看,CAS包含兩部分:CAS Server和CAS Client.CAS Server須要獨立部署,主要負責對用戶的認證工做;CAS Client負責處理對客戶端受保護資源的訪問請求,須要登陸時,重定向到CAS Server.這個是CAS最基本的協議過程:

  CAS Client與受保護的客戶端應用部署在一塊兒,以Filter方式保護受保護的資源,對於訪問受保護的資源的每一個Web請求,CAS Client會分析該請求的Http請求中是否包含Server ticket,若是沒有,則說名當前用戶還沒有登陸,因而將請求重定向到指定好的CAS Server登陸地址,並傳遞Service(也就是要訪問的目的資源地址),以便登陸成功後轉回該地址.用戶在第三步中輸入認證信息,若是登陸成功,CAS Server隨機產生一個至關長度,惟一,不可僞造的Service Ticket,並緩存以待未來驗證,以後系統自動重定向到Service所在地址,併爲客戶端瀏覽器設置一個Ticket Granted Cookie(TGC),CAS Client在拿到Service和新產生的Ticket事後,在第五六步中與CAS Server進行身份覈實,以確保Service Ticket的合法性.

在該協議中,全部與CAS的交互均採用SSL協議,確保,ST和TGC的安全性,協議工做過程當中會有兩次重定向的過程,可是CAS Client 與CAS Server之間進行Ticket驗證的過程對於用戶是透明的.

另外,CAS 協議中還提供了Poxy(代理)模式,以適應更加高級,複雜的應用場景.更加詳細的介紹能夠參考官網上的相關文檔.

---恢復內容結束---

相關文章
相關標籤/搜索