卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

基于JASIG CAS統(tǒng)一認(rèn)證平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)

【技術(shù)應(yīng)用】萼于JA一型罩塹二墜鎏堊臺(tái)型和實(shí)現(xiàn)基孑JA—SIGCAS統(tǒng)一認(rèn)證亞臺(tái)的"L又t3計(jì)和實(shí)壩口蔡永州吳敏摘要:在教育、政府、企事業(yè)等大型機(jī)構(gòu)中.存在系統(tǒng)多、管理分散的問(wèn)題。單點(diǎn)登錄(SSO)是

【技術(shù)應(yīng)用】萼于JA一型罩塹二墜鎏堊臺(tái)型和實(shí)現(xiàn)

基孑JA—SIGCAS

統(tǒng)一認(rèn)證亞臺(tái)的"L又t3計(jì)和實(shí)壩

口蔡永州吳敏

摘要:在教育、政府、企事業(yè)等大型機(jī)構(gòu)中.存在系統(tǒng)多、管理分散的問(wèn)題。單點(diǎn)登錄(SSO)是解決大型機(jī)構(gòu)內(nèi)多個(gè)應(yīng)用系統(tǒng)統(tǒng)一用戶身份認(rèn)證的有效技術(shù)。JA—SICCAS使用Java實(shí)現(xiàn),是用于Web的SSO協(xié)議。為了實(shí)現(xiàn)多網(wǎng)站統(tǒng)一認(rèn)證,分析單點(diǎn)登錄服務(wù)軟件JA—

SIG

CAS和CAS認(rèn)證過(guò)程。并結(jié)合平臺(tái)功能需求和安全性考慮。設(shè)計(jì)和實(shí)現(xiàn)基于JA—SIG

CAS的統(tǒng)一認(rèn)證平臺(tái),并針對(duì)應(yīng)用系統(tǒng)給出相應(yīng)的集成方案。

關(guān)鍵詞:CAS;JA—SIG;SSO;統(tǒng)一認(rèn)證;單點(diǎn)登錄

中圖分類(lèi)號(hào):C.434文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009—519512010101-0068-05

doi:10.3969/j.issn.1009—5195.2010.01.016

隨著互聯(lián)網(wǎng)絡(luò)的發(fā)展,越來(lái)越多的Web應(yīng)用程序用于支持各種機(jī)構(gòu)的日常工作。在一些教育系統(tǒng)、政府和企事業(yè)組織中,由于不斷地引進(jìn)各類(lèi)系統(tǒng)。不同系統(tǒng)又分別具有獨(dú)立的用戶管理和認(rèn)證子系統(tǒng)。因而管理不同系統(tǒng)用戶的工作隨著系統(tǒng)和用戶數(shù)量的增長(zhǎng)越來(lái)越繁重。對(duì)于系統(tǒng)終端用戶而言。同一機(jī)構(gòu)的不同業(yè)務(wù)系統(tǒng)需要重復(fù)注冊(cè)和認(rèn)證,不僅使用上不方便并且容易造成混亂。因此,提供一個(gè)統(tǒng)一的用戶身份認(rèn)證機(jī)制。進(jìn)行統(tǒng)一的用戶信息(登錄名、用戶密碼以及各系統(tǒng)公用的用戶屬性信息)管理是十分必要的。單點(diǎn)登錄(Single

sign—

統(tǒng)一用戶注冊(cè)管理以及應(yīng)用系統(tǒng)集成的需求問(wèn)題。

一、JA—SIGCAS及CAS認(rèn)證過(guò)程

JA-SIG

CAS(又稱(chēng)YaleCAS@)基于一個(gè)安全

可靠的認(rèn)證協(xié)議為開(kāi)發(fā)者提供了一個(gè)企業(yè)級(jí)的單點(diǎn)登錄解決方案。它支持包括數(shù)據(jù)庫(kù)、LDAP、X.509證書(shū)、JAAS在內(nèi)的多種后端認(rèn)證方案;提供跨平臺(tái)、多語(yǔ)育的客戶端代碼庫(kù)支持。大部分主流Web開(kāi)發(fā)語(yǔ)言(包括Java、PHP、ASP.NET、Perl、Python等)都有相應(yīng)的CAS客戶端代碼庫(kù)可供使用;此外,CAS是一個(gè)開(kāi)放源碼軟件.提供友好的許可證。

CAS中心認(rèn)證服務(wù)被設(shè)計(jì)成一個(gè)獨(dú)立的Web應(yīng)用程序,用戶通過(guò)登錄URL(I.DginURL)、驗(yàn)證

URL(Validation

on,簡(jiǎn)稱(chēng)SSO)就是為解決多系統(tǒng)統(tǒng)一認(rèn)證問(wèn)題而產(chǎn)生的技術(shù)。統(tǒng)一認(rèn)證服務(wù)(Central

Authentication

Service.簡(jiǎn)稱(chēng)CASao)是其中一種用于Web的SSO協(xié)議,基于此協(xié)議的服務(wù)器軟件主要有兩種實(shí)現(xiàn):使用Java實(shí)現(xiàn)的JA-SIGCAS和使用Ruby實(shí)現(xiàn)的

Ruby

CAS—Server⑦。

URL)以及注銷(xiāo)URL(Imgout

URL,

可選)對(duì)其進(jìn)行訪問(wèn)。CAS認(rèn)證過(guò)程包含兩類(lèi):Web應(yīng)用服務(wù)認(rèn)證和代理認(rèn)證,如圖1。

目前基于CAS協(xié)議單點(diǎn)登錄系統(tǒng)的研究并不少見(jiàn),但大多側(cè)重于協(xié)議本身和認(rèn)證接口的分析。筆者在已有研究的基礎(chǔ)上提出一個(gè)完整的統(tǒng)一認(rèn)證平臺(tái)解決方案。此平臺(tái)除采用定制擴(kuò)展版本的JA—SIGCAS作為單點(diǎn)登錄認(rèn)證服務(wù)器外.還提供統(tǒng)一用戶注冊(cè)和編輯模塊(針對(duì)終端用戶)、統(tǒng)一用戶管理模塊(針對(duì)平臺(tái)管理員)以及應(yīng)用系統(tǒng)接口模塊(針對(duì)應(yīng)用系統(tǒng)開(kāi)發(fā)人員),從而解決多系統(tǒng)的單點(diǎn)登錄、

圖1

,

’●一一-●

CAS認(rèn)證流程示意圖(翻譯自CAS架構(gòu)文檔)

?68?

現(xiàn)代遠(yuǎn)程教育研究I

2010年1期,總103期I

萬(wàn)方數(shù)據(jù)

,

基于JA—sIG

CAS

~認(rèn)證平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)【技術(shù)應(yīng)用】

1.Web應(yīng)用服務(wù)認(rèn)證

。份,代理應(yīng)用必須通過(guò)PGT向CAS索要PT,在拿到這是用戶在訪問(wèn)受保護(hù)Web應(yīng)用服務(wù)所需要的認(rèn)證。在此過(guò)程中CAS使用如下兩種票據(jù):TGC

(TicketGranting

Cookie。CAS發(fā)放給用戶的身份憑

證。一般情況以Cookie形式發(fā)放,相當(dāng)于用戶與CAS之間的會(huì)話ID.CAS通過(guò)檢查TGC確定用戶是否已經(jīng)登錄并通過(guò)身份)和SST(Service

Ticket,

服務(wù)票據(jù)。CAS發(fā)送給相關(guān)應(yīng)用服務(wù)的用戶身份憑證。為了防止“中間人”攻擊的發(fā)生。ST被設(shè)計(jì)為一次性票據(jù),在一次驗(yàn)證過(guò)程后立刻失效)。

完整的Web應(yīng)用服務(wù)認(rèn)證在圖l中的流程表

示為:1-+2—3_珥。步驟l,用戶瀏覽器向受保護(hù)

Web應(yīng)用服務(wù)發(fā)送初始化請(qǐng)求。步驟2,應(yīng)用將用戶重定向至CAS進(jìn)行認(rèn)證。并在URL中附加服務(wù)ID。若CAS檢測(cè)到TGC,進(jìn)行下一步;若沒(méi)有,提示用戶輸入用戶名、密碼登錄,在用戶成功登錄后發(fā)放TGC并進(jìn)入下一步。步驟3,CAS將用戶定向回Web應(yīng)用地址,并在URL中附帶ST。步驟4,應(yīng)用將ST交給CAS進(jìn)行驗(yàn)證.得到正確的用戶身份。

2.代理認(rèn)證

用戶可能需要訪問(wèn)一些瀏覽器不能直接訪問(wèn)的資源.典型情況如非Web服務(wù)提供的資源.這就需要進(jìn)行代理認(rèn)證.借助一個(gè)Web應(yīng)用服務(wù)作為用戶身份代理對(duì)目標(biāo)服務(wù)進(jìn)行訪問(wèn)。除1’cC和ST外,代理認(rèn)證還需要如下票據(jù):

(1)PT(Proxy

Ticket):代理票據(jù)。代理應(yīng)用通過(guò)

Pr向目標(biāo)應(yīng)用表明代理身份,目標(biāo)服務(wù)在拿到Frr之后需通過(guò)CAS驗(yàn)證其有效性。

(2)PGT(Proxy

Granting

Ticket):由CAS發(fā)放

給持有效ST的代理應(yīng)用的票據(jù)。代理應(yīng)用憑P(汀從CAS獲得Prr。此票據(jù)與目標(biāo)服務(wù)、認(rèn)證用戶身份形成唯一關(guān)聯(lián)。PGT是一次性票據(jù)。

(3)PGTlOU(ProxyGrantingTicketIOU):可看

作PGT的索引。代理應(yīng)用必須能自行維護(hù)PGTIOU和pGT的對(duì)應(yīng)關(guān)系表.當(dāng)PGT失效后,對(duì)應(yīng)的PGTl0U也同時(shí)失效.可以從對(duì)應(yīng)關(guān)系表中刪除。

代理認(rèn)證在圖l中的流程表示為:l一2—3—

4-q一5。和Web服務(wù)認(rèn)證相比,代理認(rèn)證多出了

獲取和驗(yàn)證PT的步驟。在圖1步驟2中,代理應(yīng)用除發(fā)送服務(wù)ID外還必須傳遞回調(diào)地址參數(shù)(p舀Ud)。相應(yīng)地,在步驟4中,CAS的返同信息中增加了PGTIOU,同時(shí)通過(guò)回調(diào)地址將對(duì)應(yīng)PGT發(fā)送給代理應(yīng)用;之后,為了向目標(biāo)服務(wù)表明代理身

萬(wàn)方數(shù)據(jù)

Pr之后,進(jìn)入步驟4a和5a,完成代理認(rèn)證過(guò)程。

二、基于JA—SIGCAS的統(tǒng)一認(rèn)證平臺(tái)設(shè)計(jì)

該統(tǒng)一認(rèn)證平臺(tái)的設(shè)計(jì)目標(biāo)是為大型機(jī)構(gòu)提供一個(gè)從用戶注冊(cè)到系統(tǒng)集成的完整的解決方案,因此需要如下功能:第一.支持多個(gè)不同域名站點(diǎn)的單點(diǎn)登錄,如A.corn、B.corn、C.corn等;用戶通過(guò)A站點(diǎn)登錄之后。在未注銷(xiāo)的情況下訪問(wèn)B站點(diǎn)不需要再次輸入用戶名和密碼。單點(diǎn)登錄的認(rèn)證協(xié)議必須從設(shè)計(jì)上保證安全性。第二。使用統(tǒng)一的關(guān)系型數(shù)據(jù)庫(kù)作為用戶數(shù)據(jù)存儲(chǔ)后端。第三。為服務(wù)站點(diǎn)用戶提供統(tǒng)一的注冊(cè)、信息編輯以及密碼取回等操作界面:并為統(tǒng)一認(rèn)證平臺(tái)管理員提供統(tǒng)一用戶管理功能。第四,在實(shí)現(xiàn)上述功能的同時(shí),提供一套完整的應(yīng)用系統(tǒng)集成方案。為應(yīng)用系統(tǒng)開(kāi)發(fā)人員提供基于SOAP的用戶注冊(cè)和信息更新接口。

根據(jù)上述功能需求,我們對(duì)平臺(tái)進(jìn)行了功能模塊劃分。確定了平臺(tái)架構(gòu)設(shè)計(jì)(如圖2所示)。虛線框內(nèi)為統(tǒng)一認(rèn)證平臺(tái)的組成模塊。為了防止外部應(yīng)用直接讀寫(xiě)用戶數(shù)據(jù)庫(kù)帶來(lái)的安全隱患.我們將用戶數(shù)據(jù)庫(kù)直接讀寫(xiě)權(quán)限控制在統(tǒng)一認(rèn)證平臺(tái)以內(nèi)。外部系統(tǒng)讀寫(xiě)相關(guān)信息可以通過(guò)CAS協(xié)議、SoAP接口以及瀏覽器跳轉(zhuǎn).通過(guò)平臺(tái)預(yù)定義模塊進(jìn)行相關(guān)操作。這三種方式均在認(rèn)證平臺(tái)的控制范圍,因此可以從根本上保證用戶數(shù)據(jù)的安全性.防止由于外部應(yīng)用系統(tǒng)的錯(cuò)誤操作帶來(lái)的安全問(wèn)題。此外.

對(duì)平臺(tái)的所有訪問(wèn)活動(dòng)均通過(guò)H冊(cè)進(jìn)行.5個(gè)模

塊均部署同一域名下,共用一個(gè)SSL證書(shū),以確保

認(rèn)證信息在傳輸過(guò)程中的保密性。

圈2基于JA—SlGCAS的統(tǒng)一認(rèn)證平臺(tái)架構(gòu)

?69?

,

【技術(shù)應(yīng)旦!量?。径。炖锾枚嬂飯佐~(yú)型嬰

三、基于JA—SIGCAS統(tǒng)一認(rèn)證平臺(tái)的實(shí)現(xiàn)

在上述模塊中,除JA-SIGCAS外。其余模塊均使用開(kāi)發(fā)效率較高的PHP實(shí)現(xiàn)。下面我們就各組成模塊進(jìn)行介紹:

1.豫戶數(shù)搪薄

JA—SIG

CAS支持多種后端認(rèn)證方案,我們選

擇具有跨平臺(tái)運(yùn)行能力的MySQL數(shù)據(jù)庫(kù)作為統(tǒng)一用戶信息數(shù)據(jù)庫(kù)。

2.JA-SIGCAS

JA—SIG

CAS為統(tǒng)一認(rèn)證平臺(tái)提供單點(diǎn)登錄和

代理認(rèn)證服務(wù),在部署CAS過(guò)程中。我們對(duì)其做了必要的定制和修改。

首先,定制后端認(rèn)證方案。CAS以替換認(rèn)證處理器(AuthenticationHandler)的方式設(shè)定不同的后端認(rèn)證方案,使用MySQL數(shù)據(jù)庫(kù)作為用戶存儲(chǔ)后端涉及到基于JDBC接口的認(rèn)證處理器的一系列相關(guān)配置。另外,為了增強(qiáng)用戶密碼安全性,我們?yōu)槠脚_(tái)使用的認(rèn)證處理器增加了定制的密碼加密器

(Password

Encoder)。

其次,修改CAS的H1-I-P客戶端代碼。允許代理應(yīng)用使用自簽名的SSL證書(shū)。為了提高信息傳輸過(guò)程中的安全性。CAS協(xié)議規(guī)定CAS服務(wù)器和客戶

端之間的通信必須通過(guò)安全鏈接(H刪)進(jìn)行。為

了執(zhí)行這項(xiàng)規(guī)定,CAS服務(wù)器在與代理應(yīng)用的通信代碼中強(qiáng)制進(jìn)行SSL證書(shū)的合法性檢查。但在實(shí)際使用中.為使用不同域名的每個(gè)代理應(yīng)用購(gòu)買(mǎi)SSL證書(shū)成本是非常高的.另外由于CAS服務(wù)器對(duì)應(yīng)用系統(tǒng)的訪問(wèn)僅限于服務(wù)器間的信息通信。因而為每個(gè)域名購(gòu)買(mǎi)安全證書(shū)也是沒(méi)有必要的,因此,在代理應(yīng)用端使用自簽名的SSL證書(shū)就可以保證傳輸安全性?;谶@些考慮。我們對(duì)CAS的H'ITP客戶端代碼做了相應(yīng)的修改。使用自定義的信任管理器和證書(shū)域名檢查規(guī)則,允許使用自簽名的SSL證書(shū)。

第三。增加基于JavaScript的登錄狀態(tài)檢測(cè)。缺省情況下CAS采用H1TrP跳轉(zhuǎn)的方式進(jìn)行登錄狀態(tài)的檢測(cè),在用戶未登錄的情況下,應(yīng)用站點(diǎn)需先跳轉(zhuǎn)到CAS檢查TGC狀態(tài)再跳轉(zhuǎn)回來(lái).這需要經(jīng)過(guò)兩次H1TI'P重定向,對(duì)于公用的Web服務(wù)。這種方式會(huì)帶來(lái)一個(gè)顯著的問(wèn)題:服務(wù)網(wǎng)站不能被C.oogle、百度等常見(jiàn)搜索引擎索引。為了避免這個(gè)問(wèn)題,我們?yōu)椋茫粒釉黾恿嘶冢剩幔觯幔樱悖颍椋穑舻目缬虻卿?/p>

?70?

萬(wàn)方數(shù)據(jù)

狀態(tài)檢測(cè)方式。使用Java.Script跨域檢查TGC的存在.若檢測(cè)到TGC。則通過(guò)JavaSeript指令完成服務(wù)栗據(jù)的分發(fā).這就避免了用戶在未登錄狀態(tài)不必要s研舭制器實(shí)現(xiàn)此檢測(cè)機(jī)制,該控制器的主體代

的兩次HTrP重定向。具體做法是通過(guò)增加一個(gè)

碼如下:

protected

ModelAndView

handleRequestIntemal(nnal

HttpServletRequestrequest,final

HttpServletResponse

response)

throws

Exception

//獲得應(yīng)用服務(wù)URL

final

String

serviceUrl=request.getParameterr

service");

//檢測(cè)TGC是否存在

finalString

ticketGrantingTicketId=this.

ticketGrantingTicketCookieC,enerator.retrieveC,ookieValue

(request);

//發(fā)送H,I-】[P頭信息

response.setHeader(”Cache-Control”.”no-store");response.setHeader(”Pragma”,"no-cache");response.setDateHeader("Expires",0L);

response.setContentType("text/javascript;charset--uff-8'9;//若應(yīng)用服務(wù)URL或TGC為空。返回空指令

if(servlceUd==null¨ticketGrantingTicketId==nun){returnnull;l

//檢測(cè)到TGC,準(zhǔn)備發(fā)送跳轉(zhuǎn)指令

ServletOutputStreamout=response.getOutputStream0;

恤nal

Web舢】pIi蒯咖Se而ceservice銣囂Ⅱm幢b血j日cI理

extractService(request);

//通過(guò)TGC獲得ST

finalString

ticket=this.centralAuthenticationService.

grantServiceTicket(ticketGl'antingTicketId,service);

//通過(guò)JavaScript發(fā)送跳轉(zhuǎn)指令,發(fā)放ST給應(yīng)用站點(diǎn),完成單點(diǎn)登錄動(dòng)作

?

String

url=service.getResponse(ticket).getUrl0;

out.print("window.10cation="+url+”’1;}

catch(Exceptionex){

l//若此過(guò)程發(fā)生異常,則返回空指令,不做操作。應(yīng)用服務(wù)仍可通過(guò)傳統(tǒng)方式進(jìn)行單點(diǎn)登錄

現(xiàn)代遠(yuǎn)程教育研究f鯽。年1期,總103期I

,

return

null;

最后,進(jìn)行用戶登錄訪問(wèn)頁(yè)面相關(guān)的模板定制,編譯、打包。進(jìn)行該模塊的服務(wù)器部署和測(cè)試工作。?

3.用戶注冊(cè)模塊

JA—SIG

CAS并不包含用戶注冊(cè)模塊.因此我

們?cè)谄脚_(tái)中提供了統(tǒng)一用戶注冊(cè)模塊。用戶在此模塊進(jìn)行統(tǒng)一的注冊(cè)操作(填寫(xiě)用戶名、密碼以及公用的用戶信息屬性)。忘記密碼的用戶也可以通過(guò)該模塊找回密碼。外部應(yīng)用系統(tǒng)可以通過(guò)跳轉(zhuǎn)或者鏈接的形式引導(dǎo)用戶進(jìn)入統(tǒng)一注冊(cè)頁(yè)面。并通過(guò)URL參數(shù)傳遞注冊(cè)來(lái)源,以便注冊(cè)模塊在完成用戶注冊(cè)操作后正確將用戶返回到相關(guān)的應(yīng)用。

值得一提的是。外部應(yīng)用并不一定要通過(guò)統(tǒng)一的用戶注冊(cè)模塊完成用戶注冊(cè)操作。考慮到某些應(yīng)用系統(tǒng)需要其用戶提供額外的用戶信息屬性。我們通過(guò)應(yīng)用系統(tǒng)接口模塊提供用戶注冊(cè)的SOAP接口,以便應(yīng)用系統(tǒng)可以通過(guò)API的方式進(jìn)行注冊(cè),為應(yīng)用系統(tǒng)開(kāi)發(fā)人員提供選擇上的靈活性。

4.用戶信息編輯模塊

用戶在登錄認(rèn)證之后可通過(guò)此模塊進(jìn)行密碼、注冊(cè)信息修改以及通過(guò)Email找回登錄密碼等操作。和注冊(cè)模塊類(lèi)似。外部應(yīng)用系統(tǒng)如果不包括用戶編輯模塊.可通過(guò)跳轉(zhuǎn)或鏈接的形式引導(dǎo)用戶進(jìn)入編輯模塊進(jìn)行修改操作。編輯模塊允許外部應(yīng)用通過(guò)URL傳遞應(yīng)用地址,在完成操作后返回到應(yīng)用系統(tǒng)頁(yè)面。此外。應(yīng)用系統(tǒng)接口模塊同樣提供相關(guān)的SOAP接口供應(yīng)用系統(tǒng)調(diào)用進(jìn)行相關(guān)信息操作。所不同的是,對(duì)于用戶信息的編輯要求做接口調(diào)用時(shí)提供Pr(即代理票據(jù))。

5.統(tǒng)一用戶管理后臺(tái)

這是一個(gè)專(zhuān)為平臺(tái)管理員提供的模塊,提供對(duì)用戶數(shù)據(jù)庫(kù)的管理功能,允許對(duì)用戶進(jìn)行列表查看、搜索、信息編輯、啟用和禁用帳號(hào)等操作。

6.應(yīng)用系統(tǒng)接口(SoAP

Server)

應(yīng)用系統(tǒng)接口模塊為應(yīng)用系統(tǒng)開(kāi)發(fā)人員提供基于SOAP的用戶信息訪問(wèn)和操作接口,這個(gè)模塊的存在既防止了由于外部應(yīng)用隨意讀寫(xiě)數(shù)據(jù)庫(kù)帶來(lái)的安全性問(wèn)題。又為應(yīng)用開(kāi)發(fā)人員提供了操作上的便利。對(duì)于開(kāi)發(fā)人員而言,該模塊就是一個(gè)SOAP服務(wù)器。目前主流的Web開(kāi)發(fā)工具均能找到SoAP客戶端代碼庫(kù).因而通過(guò)SOAP提供遠(yuǎn)程調(diào)用接口完全滿足跨平臺(tái)支持的需求。目前該模塊提供如下

萬(wàn)方數(shù)據(jù)

基于JA—SIGCAS

一認(rèn)證平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)【技術(shù)應(yīng)用】

5個(gè)接口:用戶信息獲取接口、新用戶注冊(cè)接口、登錄用戶信息更新接口、用戶密碼修改接口以及用戶

Email驗(yàn)證狀態(tài)設(shè)置接口。

上述接口中。除了新用戶注冊(cè)接口不需要進(jìn)行用戶身份認(rèn)證之外.其余接口均需要調(diào)用接口的應(yīng)用系統(tǒng)通過(guò)代理認(rèn)證過(guò)程獲得Pr.并在調(diào)用接口時(shí)傳遞Prr參數(shù)以標(biāo)識(shí)相關(guān)操作的目標(biāo)用戶。

在錯(cuò)誤處理方面。我們采用不同的SOAP異常信息來(lái)區(qū)分錯(cuò)誤的類(lèi)型,應(yīng)用開(kāi)發(fā)人員可以根據(jù)在SOAP調(diào)用代碼中捕捉到的異常信息做相應(yīng)的處理。

四、基于JA—SlGCAS統(tǒng)一認(rèn)證平臺(tái)的應(yīng)用

整合方案

如圖2所示。應(yīng)用系統(tǒng)需要將用戶登錄認(rèn)證、用戶注冊(cè)以及用戶信息更新等操作與統(tǒng)一認(rèn)證平臺(tái)進(jìn)行整合。由于不同應(yīng)用系統(tǒng)結(jié)構(gòu)也不盡相同,因此整合應(yīng)用到統(tǒng)一認(rèn)證平臺(tái)的步驟并不是固定不變的。為了降低整合過(guò)程中應(yīng)用系統(tǒng)的修改工作、提高相關(guān)模塊的運(yùn)行效率,我們建議應(yīng)用系統(tǒng)開(kāi)發(fā)人員從以下幾個(gè)方面考慮統(tǒng)一認(rèn)證平臺(tái)具體整合方案:

1.用戶數(shù)據(jù)庫(kù)

對(duì)于新開(kāi)發(fā)的應(yīng)用系統(tǒng),整合CAS認(rèn)證并不一定要求維護(hù)本地用戶數(shù)據(jù)庫(kù)。應(yīng)用系統(tǒng)完全可以直接通過(guò)統(tǒng)一認(rèn)證平臺(tái)提供的多種接口方式進(jìn)行必要的認(rèn)證和用戶數(shù)據(jù)修改工作。但使用遠(yuǎn)程調(diào)用或H1r即跳轉(zhuǎn)的方式資源消耗比直接訪問(wèn)本地?cái)?shù)據(jù)要高。效率相對(duì)也較低,所以通常建議開(kāi)發(fā)人員在整合統(tǒng)一認(rèn)證接口時(shí)考慮建立本地用戶數(shù)據(jù)庫(kù),隨時(shí)將通過(guò)遠(yuǎn)程調(diào)用接口獲取的用戶數(shù)據(jù)同步到本地。在這里。本地?cái)?shù)據(jù)庫(kù)起到緩存的作用,用以提高認(rèn)證后的數(shù)據(jù)訪問(wèn)效率.同時(shí)減輕統(tǒng)一認(rèn)證平臺(tái)的系統(tǒng)負(fù)擔(dān)。

而對(duì)于已存在的、需要將認(rèn)證部分整合到統(tǒng)一認(rèn)證平臺(tái)的應(yīng)用系統(tǒng),則不需要另外增加本地用戶數(shù)據(jù)庫(kù)。只需考慮數(shù)據(jù)同步的問(wèn)題。對(duì)于應(yīng)用系統(tǒng)已有的而統(tǒng)一認(rèn)證系統(tǒng)沒(méi)有的用戶,可以通過(guò)SoAP注冊(cè)接口批量導(dǎo)入,用戶的唯一性根據(jù)其注冊(cè)的Email來(lái)確定。

2.本地用戶會(huì)話(Session)管理

直接CAS認(rèn)證過(guò)程需要經(jīng)過(guò)兩次H1frP跳轉(zhuǎn),開(kāi)銷(xiāo)較大.因此建議開(kāi)發(fā)人員在用戶通過(guò)認(rèn)證之

?71?

,

【技術(shù)l芝?。。欤炷?!壘二!恒里壘皇塹二墜里堊壘塑塑生?。?!嬰

后,建立本地會(huì)話用以標(biāo)識(shí)用戶身份,避免經(jīng)常性地跳轉(zhuǎn)至CAS查詢用戶登錄狀態(tài)。另外要注意在用戶進(jìn)行注銷(xiāo)操作時(shí),需要先銷(xiāo)毀本地會(huì)話記錄.再轉(zhuǎn)至CAS注銷(xiāo)接口。

3.用戶信息編輯模塊整合方式

統(tǒng)一認(rèn)證平臺(tái)已經(jīng)提供了用戶信息編輯模塊,所以通常情況下應(yīng)用系統(tǒng)僅需要將編輯操作鏈接指向該模塊地址即可。特殊情況下。例如應(yīng)用系統(tǒng)需要用戶填寫(xiě)額外的用戶信息。則需要在本地?cái)?shù)據(jù)庫(kù)保存此類(lèi)數(shù)據(jù).并自行提供針對(duì)本系統(tǒng)的用戶編輯模塊。保存相關(guān)數(shù)據(jù)時(shí)。若涉及到統(tǒng)一用戶數(shù)據(jù)庫(kù)的數(shù)據(jù),需通過(guò)SOAP接口將相關(guān)數(shù)據(jù)同步到統(tǒng)一用戶數(shù)據(jù)庫(kù)。開(kāi)發(fā)人員可以根據(jù)需要在方便性與靈活性之間作出選擇。

參考文獻(xiàn):

【I]Singlesign--onixB/0L】.[2009-9-30].http://en.wikipedia.

org/wiki/Singh_sign-on.

如果沒(méi)有特別標(biāo)明CAS協(xié)議。CAS縮寫(xiě)均表示JA—SIG

CAS。

(霪)http://code.google.com/p/rubycas-server/(勤A-sIGCAS最初于2001年由耶魯大學(xué)(Yale

University)

開(kāi)發(fā)。因而又稱(chēng)YaleCAS。關(guān)于JA—固GCAS的發(fā)展歷史可以參閱其官方網(wǎng)站。

(勁A—SIGCAS基于Spring框架開(kāi)發(fā).關(guān)于該框架的信

息可參見(jiàn):http://www.springsource.o,g/。

[21CAS

Architecture[EB/OL].[2009-9-301.http://www.

jasig.org/cas/casl-architecture,2009.

【3]CAS

Architecture[EB/OL].[2009—9-301.http://www.

五、結(jié)束語(yǔ)

本文介紹的基于JA-SIGCAS的統(tǒng)一認(rèn)證平臺(tái)從統(tǒng)一用戶認(rèn)證管理以及應(yīng)用系統(tǒng)整合出發(fā),目標(biāo)在于提供一個(gè)完整的多網(wǎng)站統(tǒng)一認(rèn)證解決方案。平臺(tái)可為大型機(jī)構(gòu)多個(gè)Web應(yīng)用系統(tǒng)提供統(tǒng)一的可靠用戶認(rèn)證和用戶管理功能.為系統(tǒng)終端用戶提供使用上的便利,同時(shí)為應(yīng)用系統(tǒng)開(kāi)發(fā)人員提供跨平臺(tái)、多語(yǔ)言支持以及便于實(shí)施的整合方案。研究下一步將對(duì)CAS模塊進(jìn)行性能上的優(yōu)化,提高平臺(tái)延展性使其能夠支持海量用戶數(shù)據(jù)。

jasig.org/cas/cas2-architecture,2009.

f4舟腳&刪,H【榭d

G曲瞰,Andy

Newman、AldlewPeno

(2005).CAS

Protocol【EB/OH.【2009-9-301.http://www.jasig.

org/cas/protoc01.

【5】沈杰,朱程榮(2007).基于Yale—CAS的單點(diǎn)登錄的設(shè)計(jì)與實(shí)現(xiàn)【J】.計(jì)算機(jī)技術(shù)與發(fā)展,17(12):144—146.

責(zé)任編輯汪燕

作者簡(jiǎn)介:

蔡永州,碩士研究生,中國(guó)科學(xué)技術(shù)大學(xué)現(xiàn)代教育

技術(shù)中心,安徽合肥230026

吳敏,教授,巾國(guó)科學(xué)技術(shù)大學(xué)現(xiàn)代教育技術(shù)中心,

安徽合肥230026

收稿日期:2009_09—30

注釋?zhuān)?/p>

(D由于縮寫(xiě)CAS既可以表示CAS協(xié)議.叉可以表示

JA—SIGCAS(即CAS服務(wù)器軟件)。為避免混淆,本文約定:

(上接第36頁(yè))

參考文獻(xiàn):

【11陳麗(2004).遠(yuǎn)程教育學(xué)基礎(chǔ)IM].北京:高等教育出版

社:16—21.

作者簡(jiǎn)介:

泰換魚(yú),碩’f:研究生,徐州師范大學(xué)信息傳播學(xué)院,

汀蘇徐州221009

【2】周禮良(2005).現(xiàn)代遠(yuǎn)程教育學(xué)習(xí)論[MI.長(zhǎng)沙:中南大

學(xué)出版社:41—42.

楊成,教授,碩:}:生導(dǎo)師,徐州師范大學(xué)信息傳播

學(xué)院,江蘇徐州221009

收稿日期:2009一ll一30

牢基金項(xiàng)目:江蘇省教育科學(xué)“十一五”規(guī)劃2008年課題《D/2008/01/186)。徐州師范大學(xué)人文社會(huì)科學(xué)培育課題(07PYW03):江蘇教育技術(shù)30年發(fā)展史研究(1978—2008l。

【31中國(guó)網(wǎng)教學(xué)習(xí)卡重拳出擊國(guó)內(nèi)遠(yuǎn)程教育市場(chǎng)掀波瀾【EB/OL].f2009—06-0l】.http://blog.163.com/kyhlhl23/blog/

static/7880863620095144827174/.

【4凋靈丹,湯立新(2008).高校優(yōu)質(zhì)資源共享與提升高等

教育質(zhì)量的研究【J1.職教探索與研究,(3):38-41.

責(zé)任編輯江穎

?72?

現(xiàn)代遠(yuǎn)程教育研究I

2010年1期,總103期l

萬(wàn)方數(shù)據(jù)

,

基于JA-SIG CAS統(tǒng)一認(rèn)證平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)

作者:

作者單位:

刊名:

英文刊名:

年,卷(期):

被引用次數(shù):蔡永州, 吳敏, Cai Yongzhou, Wu Min中國(guó)科學(xué)技術(shù)大學(xué)現(xiàn)代教育技術(shù)中心,安徽合肥,230026現(xiàn)代遠(yuǎn)程教育研究MODERN DISTANCE EDUCATION RESEARCH2010,""(1)0次

參考文獻(xiàn)(5條)

1. Single sign-on 2009

2. CAS 1 Architecture 2009

3. CAS 2 Architecture 2009

4. Susan Bramhall. Howard Gilbert. Andy Newman. Andrew Petro CAS Protocol 2009

5. 沈杰. 朱程榮 基于Yale-CAS的單點(diǎn)登錄的設(shè)計(jì)與實(shí)現(xiàn) 2007(12)

相似文獻(xiàn)(1條)

1.學(xué)位論文 蔡永州 基于JASIG-CAS的統(tǒng)一認(rèn)證平臺(tái)研究及其系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn) 2010

隨著互聯(lián)網(wǎng)絡(luò)的發(fā)展,越來(lái)越多的Web 應(yīng)用程序被用于支持各種機(jī)構(gòu)的日常工作。在一些教育系統(tǒng)、政府和企事業(yè)等組織,由于不斷地引進(jìn)各類(lèi)系統(tǒng),不同系統(tǒng)又分別具有獨(dú)立的用戶管理和認(rèn)證子系統(tǒng),因而管理不同系統(tǒng)用戶的工作隨著系統(tǒng)和用戶數(shù)量的增長(zhǎng)越來(lái)越顯得繁重。對(duì)于系統(tǒng)終端用戶而言,同一機(jī)構(gòu)的不同業(yè)務(wù)系統(tǒng)需要重復(fù)的注冊(cè)和認(rèn)證,不僅使用上不方便并且容易造成混亂。為上述大型機(jī)構(gòu)提供一個(gè)可靠的統(tǒng)一用戶身份認(rèn)證機(jī)制、使其能夠進(jìn)行統(tǒng)一的用戶信息(登錄名、用戶密碼以及各系統(tǒng)公用的用戶屬性信息)管理是本文研究的主要問(wèn)題。
  

本文首先調(diào)研和分析了主流的統(tǒng)一認(rèn)證平臺(tái)單點(diǎn)登錄解決方案的技術(shù)基礎(chǔ),并對(duì)各方案的優(yōu)點(diǎn)與缺點(diǎn)進(jìn)行了分析。其次,從統(tǒng)一認(rèn)證平臺(tái)的功能需求、性能需求、開(kāi)發(fā)模式、架構(gòu)方案、技術(shù)開(kāi)發(fā)框架和系統(tǒng)配置環(huán)境等軟件工程角度,對(duì)統(tǒng)一認(rèn)證平臺(tái)做了分析與設(shè)計(jì),依據(jù)系統(tǒng)需求提出了系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)與系統(tǒng)設(shè)計(jì)框架結(jié)構(gòu)。再次,論述了基于JA-SIG CAS的統(tǒng)一認(rèn)證平臺(tái)的認(rèn)證應(yīng)用思想與技術(shù)方法,剖析了基于JA-SIG CAS的統(tǒng)一認(rèn)證平臺(tái)各模塊的設(shè)計(jì)與實(shí)現(xiàn)。接著,從高性能需求的角度探討了統(tǒng)一認(rèn)證平臺(tái)的可延展部署架構(gòu)。最后,作者對(duì)本文的研究結(jié)論進(jìn)行概括,并指出研究中存在的問(wèn)題,給后續(xù)研究者提供參考。
  

在這里增加二、三句對(duì)你上述工作的成果進(jìn)行評(píng)測(cè)和評(píng)價(jià)。作者期望基于JA-SIG CAS的統(tǒng)一認(rèn)證平臺(tái)能夠?yàn)榇笮吞峁┲С侄嗥脚_(tái)的優(yōu)化的應(yīng)用系統(tǒng)整合方案,提高用戶的系統(tǒng)管理效率。

本文鏈接:http://d.wanfangdata.com.cn/Periodical_xdycjyyj201001016.aspx

下載時(shí)間:2010年12月9日

標(biāo)簽: