資源描述:
《JAVA實(shí)現(xiàn)單點(diǎn)登錄 圖例及相關(guān)代碼.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、java實(shí)現(xiàn)簡(jiǎn)單的單點(diǎn)登錄摘要:?jiǎn)吸c(diǎn)登錄(SSO)的技術(shù)被越來越廣泛地運(yùn)用到各個(gè)領(lǐng)域的軟件系統(tǒng)當(dāng)中。本文從業(yè)務(wù)的角度分析了單點(diǎn)登錄的需求和應(yīng)用領(lǐng)域;從技術(shù)本身的角度分析了單點(diǎn)登錄技術(shù)的內(nèi)部機(jī)制和實(shí)現(xiàn)手段,并且給出Web-SSO和桌面SSO的實(shí)現(xiàn)、源代碼和詳細(xì)講解;還從安全和性能的角度對(duì)現(xiàn)有的實(shí)現(xiàn)技術(shù)進(jìn)行進(jìn)一步分析,指出相應(yīng)的風(fēng)險(xiǎn)和需要改進(jìn)的方面。本文除了從多個(gè)方面和角度給出了對(duì)單點(diǎn)登錄(SSO)的全面分析,還并且討論了如何將現(xiàn)有的應(yīng)用和SSO服務(wù)結(jié)合起來,能夠幫助應(yīng)用架構(gòu)師和系統(tǒng)分析人員從本質(zhì)上認(rèn)識(shí)單點(diǎn)登錄,從而更好地設(shè)計(jì)
2、出符合需要的安全架構(gòu)。關(guān)鍵字:SSO,Java,J2EE,JAAS1什么是單點(diǎn)登陸單點(diǎn)登錄(SingleSignOn),簡(jiǎn)稱為SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。較大的企業(yè)內(nèi)部,一般都有很多的業(yè)務(wù)支持系統(tǒng)為其提供相應(yīng)的管理和IT服務(wù)。例如財(cái)務(wù)系統(tǒng)為財(cái)務(wù)人員提供財(cái)務(wù)的管理、計(jì)算和報(bào)表服務(wù);人事系統(tǒng)為人事部門提供全公司人員的維護(hù)服務(wù);各種業(yè)務(wù)系統(tǒng)為公司內(nèi)部不同的業(yè)務(wù)提供不同的服務(wù)等等。這些系統(tǒng)的目的都是讓計(jì)算機(jī)來進(jìn)行復(fù)雜繁瑣的計(jì)
3、算工作,來替代人力的手工勞動(dòng),提高工作效率和質(zhì)量。這些不同的系統(tǒng)往往是在不同的時(shí)期建設(shè)起來的,運(yùn)行在不同的平臺(tái)上;也許是由不同廠商開發(fā),使用了各種不同的技術(shù)和標(biāo)準(zhǔn)。如果舉例說國(guó)內(nèi)一著名的IT公司(名字隱去),內(nèi)部共有60多個(gè)業(yè)務(wù)系統(tǒng),這些系統(tǒng)包括兩個(gè)不同版本的SAP的ERP系統(tǒng),12個(gè)不同類型和版本的數(shù)據(jù)庫(kù)系統(tǒng),8個(gè)不同類型和版本的操作系統(tǒng),以及使用了3種不同的防火墻技術(shù),還有數(shù)十種互相不能兼容的協(xié)議和標(biāo)準(zhǔn),你相信嗎?不要懷疑,這種情況其實(shí)非常普遍。每一個(gè)應(yīng)用系統(tǒng)在運(yùn)行了數(shù)年以后,都會(huì)成為不可替換的企業(yè)IT架構(gòu)的一部分,如
4、下圖所示。隨著企業(yè)的發(fā)展,業(yè)務(wù)系統(tǒng)的數(shù)量在不斷的增加,老的系統(tǒng)卻不能輕易的替換,這會(huì)帶來很多的開銷。其一是管理上的開銷,需要維護(hù)的系統(tǒng)越來越多。很多系統(tǒng)的數(shù)據(jù)是相互冗余和重復(fù)的,數(shù)據(jù)的不一致性會(huì)給管理工作帶來很大的壓力。業(yè)務(wù)和業(yè)務(wù)之間的相關(guān)性也越來越大,例如公司的計(jì)費(fèi)系統(tǒng)和財(cái)務(wù)系統(tǒng),財(cái)務(wù)系統(tǒng)和人事系統(tǒng)之間都不可避免的有著密切的關(guān)系。為了降低管理的消耗,最大限度的重用已有投資的系統(tǒng),很多企業(yè)都在進(jìn)行著企業(yè)應(yīng)用集成(EAI)。企業(yè)應(yīng)用集成可以在不同層面上進(jìn)行:例如在數(shù)據(jù)存儲(chǔ)層面上的“數(shù)據(jù)大集中”,在傳輸層面上的“通用數(shù)據(jù)交換平
5、臺(tái)”,在應(yīng)用層面上的“業(yè)務(wù)流程整合”,和用戶界面上的“通用企業(yè)門戶”等等。事實(shí)上,還用一個(gè)層面上的集成變得越來越重要,那就是“身份認(rèn)證”的整合,也就是“單點(diǎn)登錄”。通常來說,每個(gè)單獨(dú)的系統(tǒng)都會(huì)有自己的安全體系和身份認(rèn)證系統(tǒng)。整合以前,進(jìn)入每個(gè)系統(tǒng)都需要進(jìn)行登錄,這樣的局面不僅給管理上帶來了很大的困難,在安全方面也埋下了重大的隱患。下面是一些著名的調(diào)查公司顯示的統(tǒng)計(jì)數(shù)據(jù):?用戶每天平均16分鐘花在身份驗(yàn)證任務(wù)上-資料來源:IDS?頻繁的IT用戶平均有21個(gè)密碼-資料來源:NTAMonitorPasswordSurvey?49
6、%的人寫下了其密碼,而67%的人很少改變它們?每79秒出現(xiàn)一起身份被竊事件-資料來源:NationalSmallBusinessTravelAssoc?全球欺騙損失每年約12B-資料來源:CommFraudControlAssoc?到2007年,身份管理市場(chǎng)將成倍增長(zhǎng)至$4.5B-資料來源:IDS使用“單點(diǎn)登錄”整合后,只需要登錄一次就可以進(jìn)入多個(gè)系統(tǒng),而不需要重新登錄,這不僅僅帶來了更好的用戶體驗(yàn),更重要的是降低了安全的風(fēng)險(xiǎn)和管理的消耗。請(qǐng)看下面的統(tǒng)計(jì)數(shù)據(jù):?提高IT效率:對(duì)于每1000個(gè)受管用戶,每用戶可節(jié)省$70K?
7、幫助臺(tái)呼叫減少至少1/3,對(duì)于10K員工的公司,每年可以節(jié)省每用戶$75,或者合計(jì)$648K?生產(chǎn)力提高:每個(gè)新員工可節(jié)省$1K,每個(gè)老員工可節(jié)省$350?資料來源:Giga?ROI回報(bào):7.5到13個(gè)月?資料來源:Gartner另外,使用“單點(diǎn)登錄”還是SOA時(shí)代的需求之一。在面向服務(wù)的架構(gòu)中,服務(wù)和服務(wù)之間,程序和程序之間的通訊大量存在,服務(wù)之間的安全認(rèn)證是SOA應(yīng)用的難點(diǎn)之一,應(yīng)此建立“單點(diǎn)登錄”的系統(tǒng)體系能夠大大簡(jiǎn)化SOA的安全問題,提高服務(wù)之間的合作效率。2單點(diǎn)登陸的技術(shù)實(shí)現(xiàn)機(jī)制隨著SSO技術(shù)的流行,SSO的產(chǎn)品
8、也是滿天飛揚(yáng)。所有著名的軟件廠商都提供了相應(yīng)的解決方案。在這里我并不想介紹自己公司(SunMicrosystems)的產(chǎn)品,而是對(duì)SSO技術(shù)本身進(jìn)行解析,并且提供自己開發(fā)這一類產(chǎn)品的方法和簡(jiǎn)單演示。有關(guān)我寫這篇文章的目的,請(qǐng)參考我的博客(http://yuwang881.blog.sohu.com/31