專利名稱:一種基于web單點登錄的集成認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及TOB安全認(rèn)證領(lǐng)域。更具體地講,本發(fā)明涉及一種在多個WEB 應(yīng)用服務(wù)器之間實現(xiàn)用戶單點登錄與集中認(rèn)證的方法。
背景技術(shù):
單點登錄(Single Sign On)簡稱為SS0,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。企業(yè)中可能會存在許多不同的應(yīng)用系統(tǒng),如果每個應(yīng)用系統(tǒng)都維護(hù)自己的用戶信息,對于用戶來說,登錄每個應(yīng)用系統(tǒng)都要輸入自己的用戶名和密碼,有時用戶可能為不同的應(yīng)用設(shè)置的不同的用戶名和密碼,這樣顯然不適合。SSO能夠?qū)崿F(xiàn)在一個系統(tǒng)登錄后在其他系統(tǒng)均能訪問的效果,而企業(yè)也會將所有的用戶信息組織到一起,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。它達(dá)到了可以將這次主要的登錄映射到其他應(yīng)用中用于同一個用戶登錄的機(jī)制。
發(fā)明內(nèi)容
本發(fā)明提供了一種在多個TOB應(yīng)用服務(wù)器之間實現(xiàn)來訪用戶的單點登錄與集中認(rèn)證的方法。該方法當(dāng)用戶第一次訪問應(yīng)用系統(tǒng)1的時候,因為還沒有登錄,會被引導(dǎo)到認(rèn)證服務(wù)系統(tǒng)中進(jìn)行登錄;然后根據(jù)用戶提供的登錄信息,認(rèn)證系統(tǒng)進(jìn)行身份效驗,如果通過效驗,會返回給用戶一個認(rèn)證的憑據(jù);當(dāng)此用戶再訪問別的應(yīng)用的時候就會將這個憑據(jù)帶上,作為自己認(rèn)證的憑據(jù),其它應(yīng)用系統(tǒng)在接受到請求之后會把這個憑據(jù)送到認(rèn)證系統(tǒng)進(jìn)行效驗,檢查憑據(jù)的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問應(yīng)用系統(tǒng)2和應(yīng)用系統(tǒng)3 了。3. 1名詞解釋① IT 身份憑據(jù),全寫為Identity Ticket,代表一個用戶的身份。一個用戶在一個固定時期內(nèi)只能擁有一個IT。身份憑據(jù)具有全局性,執(zhí)久性,唯一性。② ST 服務(wù)憑據(jù),全寫為krvice Ticket,代表一個用戶訪問某個應(yīng)用系統(tǒng)時的臨時身份。一個用戶在一個固定時期內(nèi)可能擁有多個ST。服務(wù)憑據(jù)具有局部性,執(zhí)久性,非唯一性。③ Browser 瀏覽器,即通常意義上的客戶端。(4) AppSys/PortalSys 應(yīng)用系統(tǒng)/門戶系統(tǒng),全寫為ApplicationSystem/PortalSystem,它代表一個應(yīng)用級的信息系統(tǒng)。這個信息系統(tǒng)需要與其它信息系統(tǒng)相配合,共同完成單點登錄(SSO)。⑤ SSOAgent:
SSO代理,為完成單點登錄,在應(yīng)用系統(tǒng)/門戶系統(tǒng)端部署的一個SSO代理,負(fù)責(zé)本應(yīng)用系統(tǒng)SSO所有功能。⑥AS:認(rèn)證服務(wù)器,全寫為Authentication Server,主要負(fù)責(zé)用戶信息的認(rèn)證、維護(hù)所有相關(guān)憑據(jù)生命周期等等。在本方案中,邏輯上只有一個認(rèn)證服務(wù)器。(7) LoginPage 用戶登錄頁,認(rèn)證服務(wù)器端以表單形式提供,用于用戶輸入用戶名、密碼、選擇用戶證書(若實施H(I)等,以完成SSO登錄。⑧ DataSource 數(shù)據(jù)源,保存有用戶信息的數(shù)據(jù)源,用于校驗用戶信息的合法性。3. 2憑據(jù)特征①身份憑據(jù)IT 身份憑據(jù)信息組成1)憑據(jù)索引號可認(rèn)為是憑據(jù)的唯一 ID,按特定算法生成。2)認(rèn)證結(jié)果信息封裝認(rèn)證結(jié)果信息。主要包括請求的服務(wù)信息(如請求的 SSOAgent入口鏈接等)、認(rèn)證時間、認(rèn)證成功需返回的用戶屬性信息。3)憑據(jù)策略信息對憑據(jù)本身施加的一些安全性策略。 身份憑據(jù)索引號生成算法1)采用⑶ID算法。2)采用字串生成算法以及擴(kuò)展的鹽值算法。 身份憑據(jù)存儲方式DAS認(rèn)證服務(wù)端支持多種存儲方式,如緩存、RDB數(shù)據(jù)庫、LDAP等等2)Browser客戶端可執(zhí)久化的Cookie。3) SSOAgent 端不存儲。②服務(wù)憑據(jù)ST 服務(wù)憑據(jù)信息組成1)憑據(jù)索引號可認(rèn)為是憑據(jù)的唯一 ID,按特定算法生成。2)請求的服務(wù)信息如SSOAgent入口鏈接等。3)憑據(jù)策略信息對憑據(jù)本身施加的一些安全性策略。 服務(wù)憑據(jù)索引號生成算法1)采用⑶ID算法。2)采用字串生成算法以及擴(kuò)展的鹽值算法。 服務(wù)憑據(jù)存儲方式DAS認(rèn)證服務(wù)端支持多種存儲方式,如緩存、RDB數(shù)據(jù)庫、LDAP等等2)Browser客戶端不存儲。3) SSOAgent 端不存儲。3. 3使用說明① user 首次登錄 AppSys/PortalSys 前置條件
Browser端沒有存儲user的身份憑證IT ;AppSys/PortalSys端沒有user的 Session狀態(tài)(即user未登錄該信息系統(tǒng));認(rèn)證服務(wù)器AS端中的user身份憑證IT情況未知(或有或無,或有效或無效)。 流程描述(請見附圖1)第1步user在Browser上點擊一個AppSys/PortalSys的入口鏈接URL,向應(yīng)用系統(tǒng)/門戶系統(tǒng)發(fā)出登錄請求(注此入口鏈接是SSOAgent專為SSO而向外界提供的入口,不同于原有應(yīng)用系統(tǒng)入口)。第2步=SSOAgent端接到此請求后,經(jīng)判斷user此時并未登錄(Session中無 user相關(guān)狀態(tài));或者此請求并未包含一個ST;或者此請求包含一個ST但已失效。則此時 SSOAgent會向Browser端發(fā)送重定向指令,重定向到AS端,要求user進(jìn)行登錄。第3步AS端接到Browser端的重定向請求后,經(jīng)判斷此請求中并未包含user 的身份憑據(jù)IT (存在于Browser端的一個Cookie),則此時AS會向Browser端發(fā)送一個 LoginPage 登錄頁。第4步USer在Browser端填入用戶名、密碼等信息,提交給AS端進(jìn)行身份驗證。第5步AS端收到user的身份信息后,進(jìn)行驗證過程。如果驗證成功,則AS端會為user生成一個身份憑據(jù)IT,保存在AS端,為user要進(jìn)行訪問的應(yīng)用系統(tǒng)/門戶系統(tǒng)生成一個服務(wù)憑證ST,也保存在AS端,然后向Browser端發(fā)出一個重定向指令,重定向到原來的應(yīng)用系統(tǒng)/門戶系統(tǒng)的SSOAgent入口鏈接URL ;在此重定向過程中同時將user的身份憑據(jù)IT返回給Browser端,將服務(wù)憑證ST以參數(shù)形式附加在重定向入口鏈接URL后面返回給SSOAgent。如果驗證不成功,則AS會向Browser端重新發(fā)送一個LoginPage登錄頁, 回到本流程第4步。第6步=SSOAgent端收到Browser端的重定向請求后,經(jīng)判斷此時請求中包含一個服務(wù)憑據(jù)ST。則此時SSOAgent會向AS端發(fā)出驗證該ST是否有效的請求(因為ST由 AS產(chǎn)生,所以由其驗證)。第7步AS端收到驗證ST的請求后,會檢驗ST。經(jīng)過一系列檢驗過程后,如果該 ST有效,則會向SSOAgent返回此ST所代表的用戶信息;如果該ST無效,則也向SSOAgent 返回此ST無效的信息。第8步=SSOAgent收到該ST的驗證結(jié)果后會做出相應(yīng)地動作。如果結(jié)果是ST有效,則SSOAgent會記錄下用戶Session狀態(tài),同時向Browser端返回AppSys/PortalSys的首頁或歡迎頁面;如果結(jié)果是ST無效,則SSOAgent會向Browser端發(fā)送重定向指令,重定向到AS端,要求user進(jìn)行登錄,之后回到本流程第3步。② user 第二次登錄 AppSys/PortalSys 前置條件Browser 端已經(jīng)存儲了 user 的身份憑證 IT (Cookie 形式);AppSys/PortalSys 端沒有user的kssion狀態(tài)(即user未登錄該信息系統(tǒng),這里特指第二次登錄);認(rèn)證服務(wù)器AS端中的user身份憑證IT情況未知(或有或無,或有效或無效)。 流程描述(請見附圖2)第1步user在Browser上點擊一個AppSys/PortalSys的入口鏈接URL,向應(yīng)用系統(tǒng)/門戶系統(tǒng)發(fā)出登錄請求(注此入口鏈接是SSOAgent專為SSO而向外界提供的入口,不同于原有應(yīng)用系統(tǒng)入口)。第2步=SSOAgent端接到此請求后,經(jīng)判斷user此時并未登錄(Session中無 user相關(guān)狀態(tài));或者此請求并未包含一個ST;或者此請求包含一個ST但已失效。則此時 SSOAgent會向Browser端發(fā)送重定向指令,重定向到AS端,要求user進(jìn)行登錄。第3步AS端接到Browser端重定向的請求后,經(jīng)判斷此請求中已包含一個 user的身份憑據(jù)IT (即Browser端的Cookie),則此時AS會對此IT進(jìn)行驗證過程。如果此IT有效,則會更新此IT并保存,同時為user要進(jìn)行訪問的AppSys/PortalSys生成一個ST并保存,然后向Browser端發(fā)出一個重定向指令,重定向到原來的應(yīng)用系統(tǒng)/門戶系統(tǒng)的SSOAgent入口鏈接URL ;在此重定向過程中同時將更新后的user身份憑據(jù)IT返回給 Browser端,將服務(wù)憑證ST以參數(shù)形式附加在重定向入口鏈接后面返回給SSOAgent,之后回到流程一第6步。如果此IT無效,則此時AS會向Browser端發(fā)送一個LoginPage登錄頁,之后回到用流程第4步。③驗證過程 用戶名/密碼驗證過程在AS認(rèn)證服務(wù)器端,當(dāng)接收到Browser發(fā)送過來的用戶名/密碼后,會向用戶信息數(shù)據(jù)源進(jìn)行驗證。 身份憑據(jù)IT驗證過程在AS認(rèn)證服務(wù)器端,當(dāng)接收到Browser發(fā)送過來的身份憑據(jù)后,會根據(jù)身份憑據(jù)索引號檢索出身份憑據(jù),然后根據(jù)此憑據(jù)中的策略信息進(jìn)行驗證。驗證過程大體如下1)當(dāng)前系統(tǒng)時間大于身份憑據(jù)的有效期時間,則認(rèn)為此身份憑據(jù)失效。2)當(dāng)前系統(tǒng)時間和票據(jù)的最后使用時間相相差大于指定的間隔時間,則認(rèn)為此身份憑據(jù)失效。3)身份憑據(jù)使用次數(shù)大于指定次數(shù),則認(rèn)為此身份憑據(jù)失效。4)其它策略,如永不過期策略等。 服務(wù)憑據(jù)ST驗證過程在AS認(rèn)證服務(wù)器端,當(dāng)接收到SSOAgent發(fā)送過來的服務(wù)憑據(jù)后,會根據(jù)服務(wù)憑據(jù)索引號檢索出服務(wù)憑據(jù),然后根據(jù)此憑據(jù)中的策略信息進(jìn)行驗證。驗證過程與身份憑據(jù)驗證過程一致,此處略。3. 4認(rèn)證安全性①憑據(jù)安全性在本方法中一共存在兩種憑據(jù)(IT和ST),這兩種憑據(jù)都具有權(quán)威性、保密性、完整性,所以對相關(guān)憑據(jù)進(jìn)行安全保護(hù)至關(guān)重要。 存儲方面取決于憑證信息的公開程度。如果完全公開,則可對憑據(jù)相關(guān)數(shù)據(jù)進(jìn)行加密存儲并傳輸給Browser (針對IT)和SSOAgent (針對ST);如果不公開,則可采用對憑據(jù)生成唯一索引號形式進(jìn)行傳輸,此時Browser和SSOAgent得到的不是憑據(jù)本身,而是憑據(jù)索引號。 策略方面對憑據(jù)本身因安全因素而施加的一些安全策略,取決于方案本身實際系統(tǒng)的安全程度。具體詳細(xì)策略舉例如下(1)有效期策略憑據(jù)有效期為多少、憑據(jù)有效期能否延長或縮短、每次驗證憑據(jù)后有效期能否自動延長(延長多少)(2)閥值次數(shù)策略在憑據(jù)有效期內(nèi),憑據(jù)最大使用次數(shù)是多少、達(dá)到最大次數(shù)后憑據(jù)是否自動失效或成為睡眠憑據(jù)(3)使用時限策略憑據(jù)在哪些特定時間范圍內(nèi)才可使用、使用最小時間間隔大小(4)憑據(jù)偵測策略對于違法使用憑據(jù)的情況進(jìn)行自動偵測,并給出相關(guān)處理(比如極短時間內(nèi)異常地進(jìn)行多次認(rèn)證、多次驗證憑據(jù)等等;)②通信安全性在本方法中應(yīng)用級通信協(xié)議主要是采用HTTP協(xié)議,所以為保證用戶名、密碼、憑據(jù)信息不被竊取、盜用,可采用SSL協(xié)議以加強(qiáng)通信信道的安全性。在本方案中共存在四個信道,安全程度大致如下O BrowserOAS 本信道中傳輸用戶名、密碼、身份憑據(jù)IT、服務(wù)憑據(jù)ST,安全強(qiáng)度最高,強(qiáng)烈建議應(yīng)用SSL。O ASODataSource 本信道中傳輸用戶名、密碼,并且可能跨越安全域,安全強(qiáng)度較高,建議應(yīng)用SSL(注如果DataSource提供的認(rèn)證接口提供加密傳輸,也可不應(yīng)用 SSL)。O BrowserOSSOAgent 本信道中傳輸服務(wù)憑據(jù)ST,安全強(qiáng)度適中,可以應(yīng)用SSL。O SSOAgentOAS 本信道中傳輸服務(wù)憑據(jù)ST、用戶信息,安全強(qiáng)度適中,可以應(yīng)用 SSL。③服務(wù)器安全性重點體現(xiàn)在服務(wù)器本身提供的安全解決方案上,比如IIS、Wfeblogic、DBServer等等,從宏觀上大體可以分為以下兩類 服務(wù)器基于域/IP地址的訪問控制 服務(wù)器基于本地文件系統(tǒng)的訪問控制
四
圖1當(dāng)用戶第一次訪問應(yīng)用系統(tǒng)時,認(rèn)證流程圖。圖2當(dāng)用戶第二次訪問應(yīng)用系統(tǒng)時,認(rèn)證流程圖。
權(quán)利要求
1.一種在多個WEB應(yīng)用服務(wù)器之間實現(xiàn)用戶單點登錄與集中認(rèn)證的方法,該方法設(shè)置獨立的認(rèn)證服務(wù)器,并在WEB應(yīng)用服務(wù)器上設(shè)置認(rèn)證代理,所述方法包括步驟用戶上點擊一個WEB系統(tǒng)的入口鏈接URL,向應(yīng)用系統(tǒng)發(fā)出登錄請求認(rèn)證代理接到此請求后,判斷用戶認(rèn)證狀態(tài),并將沒有經(jīng)認(rèn)證的用戶請求重定向到認(rèn)證服務(wù)端。認(rèn)證服務(wù)器接到用戶請求后,判斷此Http請求中并未包含用戶的身份憑據(jù),則認(rèn)證服務(wù)器會要求用戶進(jìn)行身份認(rèn)證。用戶填入用戶名、密碼等信息,提交給認(rèn)證服務(wù)器進(jìn)行身份驗證。認(rèn)證服務(wù)器驗證用戶身份后。如果驗證成功,認(rèn)證服務(wù)器將會生成該用戶的身份憑據(jù)和針對用戶當(dāng)前請求應(yīng)用系統(tǒng)的服務(wù)憑據(jù),并保存在認(rèn)證服務(wù)器上,而后在用戶瀏覽器中保存身份憑據(jù);同時向用戶瀏覽器發(fā)出一個重定向指令,重定向到用戶之前請求應(yīng)用系統(tǒng)的認(rèn)證代理,并將服務(wù)憑證以URL參數(shù)形式發(fā)送給認(rèn)證代理。如果驗證不成功,回到本流程上一步。應(yīng)用系統(tǒng)的認(rèn)證代理收到服務(wù)憑證后,會向認(rèn)證服務(wù)器發(fā)出驗證該服務(wù)憑證的請求。認(rèn)證服務(wù)器收到驗證服務(wù)憑證的請求后,會檢驗服務(wù)憑證。若通過驗證,認(rèn)證服務(wù)器將向應(yīng)用系統(tǒng)的認(rèn)證代理發(fā)送該用戶的信息;否則,認(rèn)證服務(wù)器會返回驗證失敗的通知。應(yīng)用系統(tǒng)的認(rèn)證代理收到服務(wù)票據(jù)的驗證結(jié)果后,根據(jù)驗證結(jié)果及用戶信息來控制用戶訪問。用戶訪問除當(dāng)前應(yīng)用系統(tǒng)外的其他應(yīng)用系統(tǒng)時,所訪問應(yīng)用系統(tǒng)的認(rèn)證代理還會將用戶重定向到認(rèn)證服務(wù)器進(jìn)行認(rèn)證,這時認(rèn)證服務(wù)器會通過用戶瀏覽器中的身份憑證,判斷該用戶是否通過認(rèn)證及認(rèn)證是否過期,從而決定該用戶是否需要重新認(rèn)證。
2.如權(quán)利要求1所述的方法,其特征在于設(shè)置獨立的認(rèn)證服務(wù)器,且認(rèn)證服務(wù)器為通過認(rèn)證的用戶的瀏覽器生成并保存標(biāo)示用戶身份的身份憑據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于在應(yīng)用服務(wù)器中部署認(rèn)證代理,且認(rèn)證代理通過驗證服務(wù)憑據(jù)的有效性,判斷用戶是否通過認(rèn)證。
4.如權(quán)利要求1所述的方法,其特征在于認(rèn)證代理驗證服務(wù)憑據(jù)有效性的過程,是向認(rèn)證服務(wù)器發(fā)送該服務(wù)憑據(jù),并通過認(rèn)證服務(wù)器返回的結(jié)果判斷該票據(jù)的有效性
5.如權(quán)利要求1所述的方法,其特征在于經(jīng)過認(rèn)證的用戶再次訪問其他用戶系統(tǒng)時, 認(rèn)證代理會重定向用戶請求到認(rèn)證服務(wù)器,認(rèn)證服務(wù)器通過訪問者瀏覽器的身份憑據(jù)判斷該用戶是否通過認(rèn)證。
全文摘要
本發(fā)明實現(xiàn)了一種在多個WEB應(yīng)用服務(wù)器之間進(jìn)行用戶單點登錄、集中認(rèn)證的方式或服務(wù)。該服務(wù)部署于客戶端瀏覽器與各應(yīng)用系統(tǒng)服務(wù)器之間,各應(yīng)用系統(tǒng)服務(wù)器處在同一個安全域內(nèi)。此服務(wù)對用戶提交的身份信息生成身份憑據(jù),對用戶將要訪問的應(yīng)用系統(tǒng)生成服務(wù)憑據(jù),認(rèn)證服務(wù)將通過對這兩類憑據(jù)的生成、提取、驗證,并采用W3C國際標(biāo)準(zhǔn)的Cookie機(jī)制與HTTP 302端口重定向機(jī)制,實現(xiàn)了當(dāng)用戶在登錄第一個應(yīng)用系統(tǒng)后,再次訪問第二個應(yīng)用系統(tǒng)時,無需再次要求其進(jìn)行身份驗證,第二個應(yīng)用系統(tǒng)可自動識別此用戶身份并直接向其提供服務(wù)。即實現(xiàn)了多應(yīng)用系統(tǒng)之間的單點登錄與集中式認(rèn)證。該認(rèn)證服務(wù)實現(xiàn)了多項安全認(rèn)證策略,如存儲策略、憑據(jù)策略、通信策略等,有效地降低了應(yīng)用服務(wù)器端的資源消耗、提高了身份數(shù)據(jù)與憑據(jù)數(shù)據(jù)的安全性,最終實現(xiàn)了良好的人機(jī)交互體驗。
文檔編號H04L9/32GK102469075SQ201010535648
公開日2012年5月23日 申請日期2010年11月9日 優(yōu)先權(quán)日2010年11月9日
發(fā)明者劉松, 馬訓(xùn)寧 申請人:中科正陽信息安全技術(shù)有限公司