单点登录系统和CAS的简介
什么是單點(diǎn)登錄?
單點(diǎn)登錄(Single Sign On),簡稱為SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一.SSO的定義是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng).
如果我們的系統(tǒng)存在于諸多的子系統(tǒng)中,而這些子系統(tǒng)是分別部署在不同的服務(wù)器中,那么使用傳統(tǒng)方式的session是無法解決的,我們需要使用相關(guān)的單點(diǎn)登錄技術(shù)來解決.
通過這張圖就可以簡單的對單點(diǎn)登錄有一定的了解:
1.用戶第一次訪問應(yīng)用系統(tǒng)的時(shí)候,因?yàn)檫€沒有登錄,就會被引導(dǎo)到認(rèn)證系統(tǒng)中進(jìn)行登錄.
2.根據(jù)用戶提供的登錄信息,認(rèn)證系統(tǒng)進(jìn)行身份校驗(yàn),如果通過校驗(yàn)應(yīng)該返回給用戶一個(gè)認(rèn)證的憑據(jù)--ticket
3.用戶再訪問別的應(yīng)用的時(shí)候,就會將這個(gè)ticket帶上,作為自己的憑據(jù),應(yīng)用系統(tǒng)接收到請求之后,就會把ticket送到認(rèn)證系統(tǒng)進(jìn)行校驗(yàn),檢查ticket的合法性.如果通過校驗(yàn),用戶就可以在不用再次登錄的情況下訪問應(yīng)用系統(tǒng)2和3了.
要實(shí)現(xiàn)SSO,需要一下主要的功能:
所有應(yīng)用系統(tǒng)共享一個(gè)身份認(rèn)證系統(tǒng).
統(tǒng)一的認(rèn)證系統(tǒng)是SSO的前提之一,認(rèn)證系統(tǒng)的主要功能是將用戶的登錄信息和用戶信息庫相比較,對用戶進(jìn)行登錄認(rèn)證,認(rèn)證成功后,認(rèn)證系統(tǒng)應(yīng)該生成統(tǒng)一的認(rèn)證標(biāo)志(ticket),返還給用戶,另外,認(rèn)證系統(tǒng)還應(yīng)該對ticket進(jìn)行校驗(yàn),判斷其有效性.
所有應(yīng)用系統(tǒng)能過識別和提取ticket的信息.
要實(shí)現(xiàn)SSO的功能,讓用戶只登錄一次,就必須讓應(yīng)用系統(tǒng)能夠識別已經(jīng)登錄過的用戶,應(yīng)用系統(tǒng)應(yīng)該能對ticket進(jìn)行識別和提取,通過與認(rèn)證系統(tǒng)的通訊,能自動(dòng)判斷當(dāng)前用戶是否登陸過,從而完成單點(diǎn)登錄的功能.
優(yōu)點(diǎn):
1.提高用戶的效率:用戶不再被多次登錄困擾,也不需要記住多個(gè)ID密碼,另外,用戶忘記密碼并求助于支持人員的情況也會減少.
? ?2.提高開發(fā)人員的效率:SSO為開發(fā)人員提供了一個(gè)通用的身份證驗(yàn)證框架.實(shí)際上,如果SSO機(jī)制是獨(dú)立的,那么開發(fā)人員就完全不需要為身份驗(yàn)證進(jìn)行操心,他們可以假設(shè),只要對應(yīng)用程序的請求附帶一個(gè)用戶名,身份驗(yàn)證就已經(jīng)完成了.
? ?3.簡化管理:如果應(yīng)用程序加入了單點(diǎn)登錄協(xié)議,管理用戶賬號的負(fù)擔(dān)就會減輕,簡化的程度取決于應(yīng)用程序,因?yàn)镾SO只處理身份驗(yàn)證.所以,應(yīng)用程序可能仍然需要設(shè)置用戶的屬性(比如訪問特權(quán)).
缺點(diǎn):
? ?1.不利于重構(gòu):因?yàn)樯婕暗降南到y(tǒng)會很多,要重構(gòu)必須要兼容所有的系統(tǒng),可能很耗時(shí).
? ?2.無人看守桌面:因?yàn)橹恍枰卿浺淮?所有的授權(quán)的應(yīng)用系統(tǒng)都可以訪問,可能導(dǎo)致一些很重要的信息泄露.
CAS(中央認(rèn)證服務(wù))
CAS是Central Authentiction Service 的縮寫,中央認(rèn)證服務(wù),一種獨(dú)立開放指令協(xié)議.CAS是Yale大學(xué)發(fā)起的開源項(xiàng)目.旨在為Web應(yīng)用系統(tǒng)提供一種可靠的單點(diǎn)登錄方法,CAS在2004年12月正式稱為JA-SIG的一個(gè)項(xiàng)目.
特點(diǎn):
1.開源的企業(yè)級單點(diǎn)登錄解決方案.
2.CAS Service為需要獨(dú)立部署的Web應(yīng)用.
3.CAS Client 支持非常多的客戶端(這里指單點(diǎn)登錄系統(tǒng)中的各個(gè)Web應(yīng)用),包括Java ? .NET PHP ?Apache uPortal Ruby等
?
總結(jié)
以上是生活随笔為你收集整理的单点登录系统和CAS的简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RocketMQ中的Topic和JMS的
- 下一篇: 引入幂等性后对系统有什么影响?