專利名稱:一種Web應(yīng)用或網(wǎng)站集成登錄的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)軟件應(yīng)用開(kāi)發(fā)領(lǐng)域,具體地說(shuō)是一種Web應(yīng)用或網(wǎng)站集成登錄的方法。
背景技術(shù):
現(xiàn)在隨著信息化技術(shù)的不斷發(fā)展,行業(yè)軟件系統(tǒng)的整合互聯(lián),以及網(wǎng)站間的業(yè)務(wù)的交互,越來(lái)越多。在多個(gè)應(yīng)用或網(wǎng)站中,用戶需要一次登錄就可以訪問(wèn)多個(gè)應(yīng)用或者網(wǎng)站。而不是在每個(gè)應(yīng)用或網(wǎng)站中,多次登錄。這樣就必須提供一種方案來(lái)實(shí)現(xiàn)各應(yīng)用或網(wǎng)站間的一次登錄,來(lái)操作應(yīng)用或網(wǎng)站的業(yè)務(wù),即單點(diǎn)登錄。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)任務(wù)是針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種使用方便、智能化程度高的Web應(yīng)用或網(wǎng)站集成登錄的方法。本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的一種Web應(yīng)用或網(wǎng)站集成登錄的方法, 包括身份提供端及被集成應(yīng)用或網(wǎng)站端,
所述身份提供端為身份提供者,即身份認(rèn)證服務(wù)器,用于提供用戶信息,為有效的用戶生成用戶令牌,傳遞給該用戶訪問(wèn)的應(yīng)用或者網(wǎng)站;
所述被集成應(yīng)用或網(wǎng)站端為服務(wù)提供者,即各種被集成的應(yīng)用或者網(wǎng)站,通過(guò)身份提供端提供的用戶令牌驗(yàn)證用戶,為用戶提供服務(wù)。被集成應(yīng)用或網(wǎng)站端如果發(fā)現(xiàn)用戶尚未登錄,需要重定向到身份提供端的單點(diǎn)登錄服務(wù),并需要攜帶以下參數(shù) a、用戶初次請(qǐng)求的資源URL,
b、被集成應(yīng)用或網(wǎng)站端方提供令牌驗(yàn)證和消費(fèi)服務(wù),用于驗(yàn)證令牌的合法性及根據(jù)令牌生成該網(wǎng)站的安全上下文。Web應(yīng)用或網(wǎng)站間數(shù)據(jù)的傳輸方式,包括通過(guò)Http Get、Post方式或Soap方式進(jìn)行數(shù)據(jù)提交(每種方式可以由用戶自定義選擇),
Get方式里面可以對(duì)用戶令牌進(jìn)行壓縮編碼瀏覽器顯示提交;
Post方式為模板隱式提交;
Soap方式是通過(guò)構(gòu)造信封進(jìn)行傳遞。為加強(qiáng)應(yīng)用或網(wǎng)站間用戶令牌數(shù)據(jù)的安全性,所述用戶令牌中主要包含用戶相關(guān)信息及安全信息,包括
①用戶名用戶在被集成應(yīng)用或網(wǎng)站端上的用戶賬號(hào);
②時(shí)間戳包括身份提供端當(dāng)前時(shí)間和令牌過(guò)期時(shí)間,用于抗重放攻擊;
③身份提供端數(shù)字簽名身份提供端使用自己的私鑰對(duì)令牌內(nèi)容進(jìn)行簽名,用于防止信息的篡改。
被集成應(yīng)用或網(wǎng)站端的令牌消費(fèi)服務(wù)接收到用戶令牌后,需要做以下處理
①驗(yàn)證令牌的時(shí)效性比對(duì)系統(tǒng)時(shí)間和令牌過(guò)期時(shí)間,確定令牌是否過(guò)期;
②驗(yàn)證簽名值根據(jù)身份提供端提供的公鑰對(duì)簽名值進(jìn)行解密,與用戶名和令牌過(guò)期時(shí)間的散列值相比對(duì),確定令牌沒(méi)有被篡改;
校驗(yàn)成功后,則重定向至用戶請(qǐng)求資源URL。本發(fā)明的Web應(yīng)用或網(wǎng)站集成登錄的方法與現(xiàn)有技術(shù)相比具有以下突出的有益效果
(一)本方法在保證身份信息在網(wǎng)絡(luò)間傳遞安全性前提下基本上能夠成為通用集成的模板,并能夠站在盡量減少集成和被集成放交互角度進(jìn)行實(shí)施;
(二)采用了公鑰、時(shí)間戳機(jī)制來(lái)保證安全性,交互次數(shù)減少為一次交互,運(yùn)行的流程性比較固定可以通用。
附圖1是本發(fā)明Web應(yīng)用或網(wǎng)站集成登錄的方法的登錄流程示意圖。
具體實(shí)施例方式參照說(shuō)明書(shū)附圖以具體實(shí)施例對(duì)本發(fā)明的Web應(yīng)用或網(wǎng)站集成登錄的方法作以下詳細(xì)地說(shuō)明。實(shí)施例
本發(fā)明的Web應(yīng)用或網(wǎng)站集成登錄的方法,包括身份提供端及被集成應(yīng)用或網(wǎng)站端, 所述身份提供端為身份提供者,即身份認(rèn)證服務(wù)器,用于提供用戶信息,為有效的用戶生成用戶令牌,傳遞給該用戶訪問(wèn)的應(yīng)用或者網(wǎng)站;
所述被集成應(yīng)用或網(wǎng)站端為服務(wù)提供者,即各種被集成的應(yīng)用或者網(wǎng)站,通過(guò)身份提供端提供的用戶令牌驗(yàn)證用戶,為用戶提供服務(wù)。Web應(yīng)用或網(wǎng)站間數(shù)據(jù)的傳輸方式,提供通過(guò)Http Get、Post請(qǐng)求方式或Soap方式進(jìn)行數(shù)據(jù)傳送,每種方式可以由用戶自定義選擇。其中Get方式里面可以對(duì)用戶令牌進(jìn)行壓縮編碼瀏覽器顯示提交,Post方式為模板隱式提交,Soap方式是通過(guò)構(gòu)造信封進(jìn)行傳遞。被集成應(yīng)用或網(wǎng)站端如果發(fā)現(xiàn)用戶尚未登錄,需要重定向到身份提供端的單點(diǎn)登錄服務(wù),服務(wù)為” /SingleSignOMervice/*”。并需要攜帶以下參數(shù)用戶初次請(qǐng)求的資源URL,使用參數(shù)名為”rela於tate”來(lái)指定,被集成應(yīng)用或網(wǎng)站端方提供令牌驗(yàn)證和消費(fèi)服務(wù),用于驗(yàn)證令牌的合法性及根據(jù)令牌生成該網(wǎng)站的安全上下文,使用參數(shù)名為“ tokenConsumerkrvice ”來(lái)指定。為加強(qiáng)應(yīng)用或網(wǎng)站間用戶令牌數(shù)據(jù)的安全性,用戶令牌主要包含用戶相關(guān)信息及安全信息,主要包括
①用戶名用戶在被集成應(yīng)用或網(wǎng)站端上的用戶賬號(hào)
②時(shí)間戳包括身份提供端當(dāng)前時(shí)間和令牌過(guò)期時(shí)間,用于抗重放攻擊
③身份提供端數(shù)字簽名身份提供端使用自己的私鑰對(duì)令牌內(nèi)容進(jìn)行簽名,用于防止信息的篡改。
其具體的參數(shù)約定和說(shuō)明如下
①用戶名,表明用戶身份,使用參數(shù)”userld"來(lái)指定
②令牌過(guò)期時(shí)間,格式為”yyyy-mm-dd hh:mm:ss. xxx",其中yyyy-mm-dd表示年月日,hh:mm: ss表示時(shí)分秒,XXX表示毫秒數(shù)。使用參數(shù)” expirationTime”來(lái)指定
③簽名值,用于說(shuō)明前兩部分的簽名值,使用參數(shù)”signatureValue”來(lái)指定
④公鑰,使用參數(shù)名為”publicKey”來(lái)指定。被集成應(yīng)用或網(wǎng)站端的令牌消費(fèi)服務(wù)接收到用戶令牌后,需要做以下處理
①驗(yàn)證令牌的時(shí)效性。比對(duì)系統(tǒng)時(shí)間和令牌過(guò)期時(shí)間,確定令牌是否過(guò)期
②驗(yàn)證簽名值。根據(jù)身份提供端提供的公鑰對(duì)簽名值進(jìn)行解密,與用戶名和令牌過(guò)期時(shí)間的散列值相比對(duì),確定令牌沒(méi)有被篡改
如果以上兩步均無(wú)誤,則重定向至用戶請(qǐng)求資源URL。如附圖1所示,身份提供端和被集成應(yīng)用或網(wǎng)站端間交互的流程如下
1.用戶還未登錄,需要用戶輸入身份;
2.用戶輸入身份信息,身份提供端進(jìn)行驗(yàn)證;
3.用戶通過(guò)身份提供端提供的被集成應(yīng)用或網(wǎng)站端的鏈接訪問(wèn)業(yè)務(wù)業(yè)務(wù)服務(wù);
4.被集成應(yīng)用或網(wǎng)站端如果檢查到用戶沒(méi)有在自己的服務(wù)器登錄,則將用戶請(qǐng)求的資源保存在一個(gè)模板變量中(模板實(shí)現(xiàn)html form的提交,里面放置了用戶令牌、用戶請(qǐng)求的操作等變量),然后通過(guò)自定義選擇傳輸方式執(zhí)行身份提供端的單點(diǎn)登錄服務(wù);
5.身份提供端檢查到用戶已經(jīng)在自己的服務(wù)器登錄,根據(jù)用戶信息生成用戶令牌,并將用戶令牌和用戶請(qǐng)求的資源保存到模板變量中,并通過(guò)自定義選擇傳輸方式執(zhí)行被集成應(yīng)用或網(wǎng)站端的用戶認(rèn)證服務(wù);
被集成應(yīng)用或網(wǎng)站端驗(yàn)證用戶令牌,將用戶在本系統(tǒng)上狀態(tài)置為登錄,重定向至用戶請(qǐng)求的資源。
權(quán)利要求
1.一種Web應(yīng)用或網(wǎng)站集成登錄的方法,其特征在于包括身份提供端及被集成應(yīng)用或網(wǎng)站端,所述身份提供端為身份提供者,即身份認(rèn)證服務(wù)器,用于提供用戶信息,為有效的用戶生成用戶令牌,傳遞給該用戶訪問(wèn)的應(yīng)用或者網(wǎng)站;所述被集成應(yīng)用或網(wǎng)站端為服務(wù)提供者,即各種被集成的應(yīng)用或者網(wǎng)站,通過(guò)身份提供端提供的用戶令牌驗(yàn)證用戶,為用戶提供服務(wù)。
2.根據(jù)權(quán)利要求1所述的Web應(yīng)用或網(wǎng)站集成登錄的方法,其特征在于,被集成應(yīng)用或網(wǎng)站端如果發(fā)現(xiàn)用戶尚未登錄,需要重定向到身份提供端的單點(diǎn)登錄服務(wù),并需要攜帶以下參數(shù)a、用戶初次請(qǐng)求的資源URL, b、被集成應(yīng)用或網(wǎng)站端方提供令牌驗(yàn)證和消費(fèi)服務(wù),用于驗(yàn)證令牌的合法性及根據(jù)令牌生成該網(wǎng)站的安全上下文。
3.根據(jù)權(quán)利要求1所述的Web應(yīng)用或網(wǎng)站集成登錄的方法,其特征在于,Web應(yīng)用或網(wǎng)站間數(shù)據(jù)的傳輸方式,包括通過(guò)Http Get、Post方式或Soap方式進(jìn)行數(shù)據(jù)提交,Get方式里面可以對(duì)用戶令牌進(jìn)行壓縮編碼瀏覽器顯示提交;Post方式為模板隱式提交;Soap方式是通過(guò)構(gòu)造信封進(jìn)行傳遞。
4.根據(jù)權(quán)利要求1所述的Web應(yīng)用或網(wǎng)站集成登錄的方法,其特征在于,所述用戶令牌中主要包含用戶相關(guān)信息及安全信息,包括a、用戶名用戶在被集成應(yīng)用或網(wǎng)站端上的用戶賬號(hào);b、時(shí)間戳包括身份提供端當(dāng)前時(shí)間和令牌過(guò)期時(shí)間,用于抗重放攻擊;C、身份提供端數(shù)字簽名身份提供端使用自己的私鑰對(duì)令牌內(nèi)容進(jìn)行簽名,用于防止信息的篡改。
5.根據(jù)權(quán)利要求1所述的Web應(yīng)用或網(wǎng)站集成登錄的方法,其特征在于,被集成應(yīng)用或網(wǎng)站端的令牌消費(fèi)服務(wù)接收到用戶令牌后,需要做以下處理a、驗(yàn)證令牌的時(shí)效性比對(duì)系統(tǒng)時(shí)間和令牌過(guò)期時(shí)間,確定令牌是否過(guò)期;b、驗(yàn)證簽名值根據(jù)身份提供端提供的公鑰對(duì)簽名值進(jìn)行解密,與用戶名和令牌過(guò)期時(shí)間的散列值相比對(duì),確定令牌沒(méi)有被篡改;校驗(yàn)成功后,則重定向至用戶請(qǐng)求資源URL。
全文摘要
本發(fā)明公開(kāi)了一種Web應(yīng)用或網(wǎng)站集成登錄的方法,屬于計(jì)算機(jī)軟件應(yīng)用開(kāi)發(fā)領(lǐng)域。該方法包括身份提供端及被集成應(yīng)用或網(wǎng)站端所述身份提供端為身份提供者,即身份認(rèn)證服務(wù)器,用于提供用戶信息,為有效的用戶生成用戶令牌,傳遞給該用戶訪問(wèn)的應(yīng)用或者網(wǎng)站;所述被集成應(yīng)用或網(wǎng)站端為服務(wù)提供者,即各種被集成的應(yīng)用或者網(wǎng)站,通過(guò)身份提供端提供的用戶令牌驗(yàn)證用戶,為用戶提供服務(wù)。與現(xiàn)有技術(shù)相比,本發(fā)明的Web應(yīng)用或網(wǎng)站集成登錄的方法具有構(gòu)思合理、使用方便、節(jié)省人力、智能化程度高等特點(diǎn),具有很好的推廣應(yīng)用價(jià)值。
文檔編號(hào)H04L29/08GK102404392SQ20111035415
公開(kāi)日2012年4月4日 申請(qǐng)日期2011年11月10日 優(yōu)先權(quán)日2011年11月10日
發(fā)明者周慶勇, 李向陽(yáng), 胡清, 賈德星 申請(qǐng)人:山東浪潮齊魯軟件產(chǎn)業(yè)股份有限公司