專利名稱:一種跨域的單點登錄實現方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及網絡技術領域,尤其涉及一種跨域的單點登錄實現方法及系統(tǒng)。
背景技術:
目前一個大型的互聯網環(huán)境中通常包括很多應用系統(tǒng),如網絡店鋪系統(tǒng)、支付系統(tǒng)、Web頂系統(tǒng)、桌面客戶端系統(tǒng)、手機客戶端系統(tǒng)、論壇系統(tǒng)、博客系統(tǒng)等等。這些應用系統(tǒng)為網站提供了豐富的互聯網應用,同時也為網站運營方帶來了良好的效益,但是網絡用戶在使用這些應用系統(tǒng)時,并不方便。因為網絡用戶每次使用系統(tǒng)應用都需要輸入用戶名和密碼進行驗證,特別是對于應用系統(tǒng)數目較多、平臺較多(web平臺、桌面平臺、移動終端平臺)的系統(tǒng),該問題尤為突出。對于傳統(tǒng)企業(yè)應用系統(tǒng)來說有很多通用的解決方法,如用戶訪問應用系統(tǒng)A時,會跳轉到認證系統(tǒng)進行登錄,登錄完畢后返回用戶一個認證的憑據,用戶再次訪問應用系統(tǒng)B時,將憑據傳遞給B,B將該憑據傳遞到認證中心進行再次校驗,完成應用系統(tǒng)間的切換,這種認證方式不適合Web2.0的互聯網應用,他的缺點如下反復跳轉,影響用戶體驗;基于過濾器的機制進行應用系統(tǒng)的重定向,采用該方式對于高并發(fā)的互聯網應用來說認證中心成為了瓶頸;無法實現桌面客戶端、移動終端的統(tǒng)一認證。
發(fā)明內容
本發(fā)明提供一種跨域的單點登錄實現方法及系統(tǒng),本發(fā)明所提供的方法和裝置對于高并發(fā)的互聯網應用,用戶終端不需要在登錄任何應用系統(tǒng)時都向認證中心鑒權,從而減小了認證中心的認證壓力。本發(fā)明提供一種跨域的單點登錄實現方法,包括:第一應用系統(tǒng)接收到用戶的登錄信息后,向單點登錄SSO認證系統(tǒng)發(fā)送所述登錄信息,并接收SSO認證系統(tǒng)返回的第一認證狀態(tài)信息及同步登錄串,所述同步登陸串包括所述用戶登錄多個第二應用系統(tǒng)時所需的第二認證狀態(tài)信息;如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過,將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng),使所述用戶登錄所述多個第二應用系統(tǒng)中的任一個時,第二應用系統(tǒng)根據接收到的同步登錄串確定所述用戶是否通過統(tǒng)一認證。根據上述方法本發(fā)明還提供一種跨域的單點登錄實現系統(tǒng),包括SSO認證系統(tǒng)、第一應用系統(tǒng)和多個第二應用系統(tǒng):SSO認證系統(tǒng),用于在接收到第一應用系統(tǒng)發(fā)送來的登錄信息后,驗證所述登錄信息,并返回的第一認證狀態(tài)信息及同步登錄串;第一應用系統(tǒng),用于接收到用戶的登錄信息后,向單點登錄SSO認證系統(tǒng)發(fā)送所述登錄信息,并接收SSO認證系統(tǒng)返回的第一認證狀態(tài)信息及同步登錄串,所述同步登陸串包括所述用戶登錄多個第二應用系統(tǒng)時所需的第二認證狀態(tài)信息,如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過,將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng);第二應用系統(tǒng),用于接收所述同步登錄串,當所述用戶登錄時,根據接收到的同步登錄串確定所述用戶是否通過統(tǒng)一認證。上述技術方案中的一個或兩個,至少具有如下技術效果:本發(fā)明實施例所提供的方法和系統(tǒng)在用戶通過第一應用系統(tǒng)減少用戶應用系統(tǒng)登錄時,請求的反復跳轉;另外,對于高并發(fā)的互聯網應用,用戶終端不用登錄任何應用系統(tǒng)都需向認證中心鑒權,從而減小了認證中心的認證壓力。
圖1為本發(fā)明實施例一種跨域的單點登錄實現方法的流程圖;圖2為應用本發(fā)明實施例所提供的方法用戶進行跨域認證的方法流程圖;圖3為本發(fā)明實施例一種跨域的單點登錄實現方法的系統(tǒng)的結構示意圖。
具體實施例方式本發(fā)明實施例提供一種跨域的單點登錄實現方法,該方法包括:第一應用系統(tǒng)接收到用戶的登錄信息后,向單點登錄SSO認證系統(tǒng)發(fā)送所述登錄信息,并接收SSO認證系統(tǒng)返回的第一認證狀態(tài)信息及同步登錄串,所述同步登陸串包括所述用戶登錄多個第二應用系統(tǒng)時所需的第二認證狀態(tài)信息;如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過,將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng),使所述用戶登錄所述多個第二應用系統(tǒng)中的任一個時,第二應用系統(tǒng)根據接收到的同步登錄串確定所述用戶是否通過統(tǒng)一認證。如圖1所示,本發(fā)明實施例提供一種跨域的單點登錄實現方法,下面結合說明書附圖對本發(fā)明的具體實施方式
進行詳細說明:在本發(fā)明實施例中選擇單點登錄系統(tǒng),實現用戶在多個應用系統(tǒng)間的漫游,其中單點登錄(Single Sign-On, SS0)是身份管理中的一部分。SSO的一種較為通俗的定義是:SSO是指訪問同一服務器不同應用中的受保護資源的同一用戶,只需要登錄一次,即通過一個應用中的安全驗證后,再訪問其他應用中的受保護資源時,不需要重新登錄驗證。步驟101,第一應用系統(tǒng)接收到用戶的登錄信息后,向單點登錄SSO認證系統(tǒng)發(fā)送所述登錄信息,并接收SSO認證系統(tǒng)返回的第一認證狀態(tài)信息及同步登錄串,所述同步登陸串包括所述用戶登錄除所述第一應用系統(tǒng)外的多個第二應用系統(tǒng)時所需的第二認證狀態(tài)息;步驟102,根據所述第一認證狀態(tài)信息確定所述用戶是否認證通過,如果認證通過,則轉入步驟103,否則返回登錄失敗信息。步驟103,將所述認證狀態(tài)信息保存到本地,并將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng),使所述用戶登錄所述多個第二應用系統(tǒng)中的任一個時,第二應用系統(tǒng)根據接收到的同步登錄串確定所述用戶是否通過統(tǒng)一認證。所述第一應用系統(tǒng)通過廣播方式將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng)。在本發(fā)明實施例中廣播方式是最優(yōu)的選擇,在具體的應用中也可以選用多播或者是單播的方式向多個第二應用系統(tǒng)發(fā)送同步登錄串。步驟103在具體應用時,即用戶漫游到除第一應用系統(tǒng)外的其他應用系統(tǒng)(即任意一個第二應用系統(tǒng))后,其他應用系統(tǒng)判斷是否有統(tǒng)一認證系統(tǒng)頒發(fā)的憑證信息,該憑證信息是從接收到的同步登陸串中解析得到的與當前應用系統(tǒng)對應的認證信息。如果當前應用系統(tǒng)的本地存儲有憑證信息,則根據所述憑證信息完成對所述用戶的認證流程。進一步,本發(fā)明實施例所提供的同步登錄串還包括有效期信息,當所述用戶登錄所述多個第二應用系統(tǒng)時,所述多個應用系統(tǒng)根據所述有效期信息確定所述用戶的認證信息是否過期,如果過期,則拒絕所述用戶登錄。在本發(fā)明實施例中,第一應用系統(tǒng)和其他應用系統(tǒng)在解析出所述認證狀態(tài)信息后,需要將認證狀態(tài)信息保存到本地,其中,具體保存在本地session或cookie中。根據上述本發(fā)明實施例提供的實現步驟,SSO的同步登錄串內容格式如下:
< xm1 Version=551.055 encoding=,,utf-8,, >
〈SSOUSER >
<status> 1:成功 0:失敗</status〉
<loginName> 登錄名 </> <uid>用戶 id<uid>
<611^1>用戶電子郵箱</email>
〈certificate〉當獲取用戶妒展信息是,將該值傳遞給SSO同步接口</cetificate>
<6\口知(1>憑證過期時間</expired>
〈passport〉同步登錄憑證〈/passport〉
<synLoginStr><! [CDATA[同步登錄串]]</ synLoginStr >
〈/SS0USER >進一步,為了便于應用系統(tǒng)獲取登錄用戶的詳細信息,本發(fā)明實施例還包括:步驟104,當所述第一應用系統(tǒng)需要獲取用戶的詳細信息時,向單點登錄SSO認證系統(tǒng)發(fā)送用戶獲取詳細信息的請求,并接收返回的用戶詳細信息。在本發(fā)明實施例中,所述用戶詳細信息具體可以包括:昵稱、注冊日期、密碼、郵箱、頭像和省份等,在反饋用戶信息時的具體實現格式可以是:< xm1 version="1.0" encoding="GBK" > <SSOUSER><status> -1:解密用戶名密碼出現異常 -2:用戶信息為空 -3:用戶名或密碼為空 1:正常〈/status〉 <loginName> 登錄名 </loginName><uld>28</uld> <nickName> 昵稱 </nickName><joindate>注冊曰期(2008-12-31 16:53:39)</joindate>〈password〉密 碼 Md5(2277abf5b2c03fc316G662e0226c27c)</password>
〈email〉郵箱〈/email〉 <faceUrl200px>http://頭像 url</faceUrl200px> <faceUrl7Opx>http://頭像 url</faceUrl70px> <lastLogin>2009-03-3000:00:00</lastLogin> 〈province〉省份 id</province><sex>l:男 0:女</sex> <city>城市 id</city><1\11^^11^>真實姓名 </fullName> <birthday>2008-12-3 l</birthday><idCard> 身份證號 </idCard> <telphone> 電話號碼 </telphone> <isReal>實名認證狀態(tài)1:實名認證通過O:未通過</isReal> <usertype>0:普通用戶 1:機構用戶 </usertype> <識8(^>用戶等級</grade><卩0丨111;>用戶積分</point> </SSOUSER>
如圖2所示,當用戶從應用系統(tǒng)A漫游到應用系統(tǒng)B時,應用本發(fā)明實施例所提供的一種跨域的單點登錄實現方法具體實現步驟包括:
步驟201,用戶終端在應用系統(tǒng)A輸入用戶名(普通MSN或其他)及密碼,并選擇登陸類型(登錄類型包括:加密傳輸、非加密傳輸和默認為加密傳輸);
步驟202,應用系統(tǒng)A應用3DES(或稱為Triple DES,是三重數據加密算法(TDEA,Triple Data Encryption Algorithm)塊密碼的通稱)對所述登陸信息加密,并將加密后的登錄信息發(fā)送給SSO登陸接口,其中登錄信息包括登錄名、登錄密碼和登錄類型(即Login Name+Pwd+type);
步驟203, SSO 驗證解密后的(Log in Name) +Pwd
步驟204,驗證通過返回加密的XML (可擴展標記語言Extensible MarkupLanguage, XML)格式同步登陸串(Uid, Log in Name, email);否則返回登錄失敗信息(ERROR);
步驟205,應用系統(tǒng)A接收到SSO系統(tǒng)返回的同步登錄串后,同步到應用系統(tǒng)B,應用系統(tǒng)B建立自己session或cookie執(zhí)行接收到的同步登錄串;
步驟206,若應用系統(tǒng)A或者B需要 額外的用戶數據,則將(Log in Name)+Pwd和需要的用戶信息目錄用DES加密后發(fā)給SSO的數據接口 ;
步驟207,SSO驗證通過應用系統(tǒng)Log in Name+Pwd返回XML用戶詳細信息。
如圖3所示,根據圖1所示的方法,本發(fā)明實施例還提供一種跨域的單點登錄實現系統(tǒng),包括SSO認證系統(tǒng)301、第一應用系統(tǒng)302和多個第二應用系統(tǒng)303:
SSO認證系統(tǒng)301,用于在接收到第一應用系統(tǒng)發(fā)送來的登錄信息后,驗證所述登錄信息,并返回的第一認證狀態(tài)信息及同步登錄串;
第一應用系統(tǒng)302,用于接收到用戶的登錄信息后,向單點登錄SSO認證系統(tǒng)發(fā)送所述登錄信息,并接收SSO認證系統(tǒng)返回的第一認證狀態(tài)信息及同步登錄串,所述同步登陸串包括所述用戶登錄多個第二應用系統(tǒng)時所需的第二認證狀態(tài)信息,如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過,將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng);
所述第一應用系統(tǒng)302如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過后,還用于按照接口標準將所述第一認證狀態(tài)寫入本地session信息或cookie信息。
另外,所述第一應用系統(tǒng)302還用于通過廣播方式將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng)。
第二應用系統(tǒng)303,用于接收所述同步登錄串,當所述用戶登錄時,根據接收到的同步登錄串確定所述用戶是否通過統(tǒng)一認證。
減少用戶應用系統(tǒng)登錄時,請求的反復跳轉;另外,對于高并發(fā)的互聯網應用,用戶終端不用登錄任何應用系統(tǒng)都需向認證中心鑒權,從而減小了認證中心的認證壓力。
本申請實施例中的上述一個或多個技術方案,至少具有如下的技術效果:
本發(fā)明所述的方法并不限于具體實施方式
中所述的實施例,本領域技術人員根據本發(fā)明的技術方案得出其它的實施方式,同樣屬于本發(fā)明的技術創(chuàng)新范圍。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
1.一種跨域的單點登錄實現方法,其特征在于,包括: 第一應用系統(tǒng)接收到用戶的登錄信息后,向單點登錄SSO認證系統(tǒng)發(fā)送所述登錄信息,并接收SSO認證系統(tǒng)返回的第一認證狀態(tài)信息及同步登錄串,所述同步登陸串包括所述用戶登錄多個第二應用系統(tǒng)時所需的第二認證狀態(tài)信息; 如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過,將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng),使所述用戶登錄所述多個第二應用系統(tǒng)中的任一個時,第二應用系統(tǒng)根據接收到的同步登錄串確定所述用戶是否通過統(tǒng)一認證。
2.如權利要求1所述的方法,其特征在于,如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過后,進一步包括: 按照接口標準將所述第一認證狀態(tài)寫入本地session信息或cookie信息。
3.如權利要求1所述的方法,其特征在于,對于統(tǒng)一認證SSO與應用系統(tǒng)間的跨域訪問采用P3P頭的方式進行所述同步登錄串的傳輸。
4.如權利要求1所述的方法,其特征在于,所述同步登錄串還包括有效期信息,當所述用戶登錄所述多個第二應用系統(tǒng)時,所述多個第二應用系統(tǒng)根據所述有效期信息確定所述用戶的認證信息是否過期,如果過期,則拒絕所述用戶登錄。
5.如權利要求1所述的方法,其特征在于,將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng)包括: 所述第一應用系統(tǒng)通過廣播方式將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng)。
6.如權利要求1所述的方法,其特征在于,當所述第一應用系統(tǒng)需要獲取用戶的詳細信息時,向單點登錄SSO認證系統(tǒng)發(fā)送用戶獲取詳細信息的請求,并接收返回的用戶詳細信息。
7.如權利要求1所述的方法,其特征在于,所述登錄信息包括:用戶名信息及密碼信息和登陸類型信息,其中,所述登錄類型包括加密傳輸、非加密傳輸和默認為加密傳輸。
8.一種跨域的單點登錄實現系統(tǒng),其特征在于,包括SSO認證系統(tǒng)、第一應用系統(tǒng)和多個第二應用系統(tǒng): SSO認證系統(tǒng),用于在接收到第一應用系統(tǒng)發(fā)送來的登錄信息后,驗證所述登錄信息,并返回的第一認證狀態(tài)信息及同步登錄串; 第一應用系統(tǒng),用于接收到用戶的登錄信息后,向單點登錄SSO認證系統(tǒng)發(fā)送所述登錄信息,并接收SSO認證系統(tǒng)返回的第一認證狀態(tài)信息及同步登錄串,所述同步登陸串包括所述用戶登錄多個第二應用系統(tǒng)時所需的第二認證狀態(tài)信息,如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過,將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng); 第二應用系統(tǒng),用于接收所述同步登錄串,當所述用戶登錄時,根據接收到的同步登錄串確定所述用戶是否通過統(tǒng)一認證。
9.如權利要求8所述的系統(tǒng),其特征在于,所述第一應用系統(tǒng)如果根據所述第一認證狀態(tài)信息確定所述用戶認證通過后,還用于按照接口標準將所述第一認證狀態(tài)寫入本地session信息或cookie信息。
10.如權利要求8所述的系統(tǒng),其特征在于,所述第一應用系統(tǒng)還用于通過廣播方式將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng)。
全文摘要
本發(fā)明公開了一種跨域的單點登錄實現方法及系統(tǒng),應用于網絡技術領域。該方法包括第一應用系統(tǒng)接收到用戶的登錄信息后,向單點登錄SSO認證系統(tǒng)發(fā)送所述登錄信息,并接收SSO認證系統(tǒng)返回的第一認證狀態(tài)信息及同步登錄串,所述同步登陸串包括所述用戶登錄多個第二應用系統(tǒng)時所需的第二認證狀態(tài)信息;如果確定所述用戶認證通過,將所述同步登錄串發(fā)送到所述多個第二應用系統(tǒng),使所述用戶登錄所述多個第二應用系統(tǒng)中的任一個時,第二應用系統(tǒng)根據接收到的同步登錄串確定所述用戶是否通過統(tǒng)一認證。本發(fā)明公開的方法和系統(tǒng)對于高并發(fā)的互聯網應用,用戶終端不需要在登錄任何應用系統(tǒng)時都向認證中心鑒權,從而減小了認證中心的認證壓力。
文檔編號H04L29/06GK103188207SQ20111044505
公開日2013年7月3日 申請日期2011年12月27日 優(yōu)先權日2011年12月27日
發(fā)明者蔡林 申請人:北大方正集團有限公司, 北京北大方正電子有限公司