專利名稱:一種基于ldap服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種單點(diǎn)登錄的實(shí)現(xiàn)方法,主要應(yīng)用于LDAP服務(wù)上的單點(diǎn)登錄的實(shí)現(xiàn)方法。
背景技術(shù):
目前在很多企業(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ì)算工作,來替代人力的手工勞動(dòng),提高工作效率和質(zhì)量。這些不同的系統(tǒng)往往是在不同的時(shí)期建設(shè)起來的,運(yùn)行在不同的平臺(tái)上;也許是由不同廠商開發(fā),使用了各種不同的技術(shù)和標(biāo)準(zhǔn)。這給企業(yè)內(nèi)部的管理和交流帶來困難,這種情況其實(shí)非常普遍。更進(jìn)一步,每一個(gè)應(yīng)用系統(tǒng)在運(yùn)行了數(shù)年以后,都會(huì)成為不可替換的企業(yè)內(nèi)部管理架構(gòu)的一部分,隨著企業(yè)的發(fā)展,業(yè)務(wù)系統(tǒng)的數(shù)量在不斷的增加,需要維護(hù)的系統(tǒng)越來越多。不同系統(tǒng)之間常常需要獨(dú)立進(jìn)行登錄,每個(gè)單獨(dú)的系統(tǒng)都會(huì)有自己的安全體系和身份認(rèn)證系統(tǒng)。整合以前,進(jìn)入每個(gè)系統(tǒng)都需要進(jìn)行登錄,這樣的局面不僅給管理上帶來了很大的困難,在安全方面也埋下了重大的隱患;也無法實(shí)現(xiàn)信息的多方面交流。因此人們研制了跨域名單點(diǎn)登錄系統(tǒng),例如專利申請20081014M44. 3提出了一種跨域名單點(diǎn)登錄的實(shí)現(xiàn)方法,以解決這些問題,而目前單點(diǎn)登錄的普遍實(shí)行基本方式如下數(shù)據(jù)庫維護(hù)系統(tǒng)A和系統(tǒng)B的用戶存在對(duì)應(yīng)關(guān)系,用戶登入系統(tǒng)A后,請求訪問系統(tǒng)B,系統(tǒng)B驗(yàn)證系統(tǒng)A的用戶是否同時(shí)是系統(tǒng)B的用戶。這種實(shí)現(xiàn)方式的缺點(diǎn)如下需要維護(hù)系統(tǒng)A和系統(tǒng)B的用戶對(duì)應(yīng)關(guān)系;從系統(tǒng)A訪問系統(tǒng)B,僅僅是驗(yàn)證用戶名,存在非法登錄系統(tǒng)B的風(fēng)險(xiǎn);用戶數(shù)據(jù)保存在某一數(shù)據(jù)庫(如 ORACLE)中,不利于使用其它數(shù)據(jù)庫(如MySQL)的系統(tǒng)的訪問。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,該方法可實(shí)現(xiàn)基于LDAP服務(wù)的單點(diǎn)登錄,且該方法安全可靠,能夠保證用戶和系統(tǒng)的安全。本發(fā)明的再一個(gè)目的是提供一種基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,該方法能夠便于對(duì)多個(gè)數(shù)據(jù)庫同時(shí)訪問。為此,本發(fā)明的實(shí)現(xiàn)方法包括如下步驟。1、發(fā)送用戶ID和密碼到系統(tǒng)一;
2、系統(tǒng)一發(fā)送用戶ID和密碼到LDAP服務(wù)器進(jìn)行認(rèn)證;
3、LDAP服務(wù)器進(jìn)行認(rèn)證并返回認(rèn)證信息(ticket),登錄系統(tǒng)一;
4、若要登錄系統(tǒng)二,發(fā)送用戶ID和認(rèn)證信息到LDAP服務(wù)器進(jìn)行認(rèn)證;
5、然后返回認(rèn)證信息給系統(tǒng)二,登錄系統(tǒng)二。
Ticket的生成方式為
A、用戶ID和當(dāng)前時(shí)間值(最好精確到毫秒)組成字符串S;
B、對(duì)字符串S進(jìn)行UTF-8的Base64編碼形成ticket。所述的步驟3中,LDAP服務(wù)器根據(jù)用戶ID和時(shí)間戳生成ticket,并將ticket保存在LDAP服務(wù)器中和返回ticket到系統(tǒng)一,系統(tǒng)一把接收到的ticket以及用戶ID保存在 session 中。所述步驟4中,當(dāng)用戶在系統(tǒng)一中需要訪問系統(tǒng)二時(shí),則發(fā)送帶有EI用戶ID 和ticket的請求發(fā)送到系統(tǒng)二,系統(tǒng)二從系統(tǒng)一的請求中取得用戶ID和ticket,并把用戶ID和ticket發(fā)送到LDAP服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過后,允許用戶從系統(tǒng)一直接訪問系統(tǒng)二,在進(jìn)入系統(tǒng)二之后,系統(tǒng)二與系統(tǒng)一一樣,也把用戶ID和ticket保存在session中, 以便從系統(tǒng)二訪問其它系統(tǒng)時(shí)使用。所述若用戶從系統(tǒng)一或系統(tǒng)二退出時(shí),session則被清空失效。若用戶登錄在系統(tǒng)一和系統(tǒng)二后,用戶退出系統(tǒng)一時(shí),系統(tǒng)一中的session被清空失效,系統(tǒng)二中依然還儲(chǔ)存有session,系統(tǒng)二的登錄依然有效。若用戶登錄其它的系統(tǒng)三、系統(tǒng)四,則重復(fù)步驟4 一 5。若用戶登錄在系統(tǒng)一和系統(tǒng)二后,再登錄系統(tǒng)三,系統(tǒng)三可以從系統(tǒng)一或系統(tǒng)二獲取用戶ID和ticket,并把用戶ID和ticket發(fā)送到LDAP服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過后, 直接從系統(tǒng)一或系統(tǒng)二登錄系統(tǒng)三。若用戶重新使用用戶ID和密碼登錄系統(tǒng)一或系統(tǒng)二時(shí),則重新根據(jù)用戶ID和時(shí)間戳生產(chǎn)新的ticket。按照上述方法,在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng),比如在電子政務(wù)、企業(yè)管理等領(lǐng)域。其應(yīng)用方式如下
1、用戶訪問系統(tǒng)一首頁,
2、用戶輸入用戶名和密碼,并提交到LDAP服務(wù)器,
3、LDAP服務(wù)器驗(yàn)證通過,
4、用戶進(jìn)入系統(tǒng)一,
5、用戶從系統(tǒng)一直接訪問系統(tǒng)二。本發(fā)明所達(dá)到的技術(shù)效果為1、用戶信息統(tǒng)一保存在LDAP服務(wù)器中,不必維護(hù)系統(tǒng)A和系統(tǒng)B的用戶對(duì)應(yīng)關(guān)系,且可適應(yīng)于使用任何數(shù)據(jù)庫的應(yīng)用系統(tǒng)。2、以根據(jù)用戶ID和時(shí)間戳生成的ticket為單點(diǎn)登錄通行證,避免了非法登錄系統(tǒng)B的風(fēng)險(xiǎn)。
圖1本發(fā)明的用戶認(rèn)證框圖。圖2為本發(fā)明登錄認(rèn)證互流程圖。
具體實(shí)施例方式下面結(jié)合附圖,對(duì)本發(fā)明的實(shí)現(xiàn)做進(jìn)一步說明。 如圖1所示,為用戶認(rèn)證框圖。用戶第一次訪問外部應(yīng)用系統(tǒng)(包括有多個(gè)具體的應(yīng)用系統(tǒng))的時(shí)候,因?yàn)檫€沒有登錄,會(huì)被引導(dǎo)到認(rèn)證系統(tǒng)中進(jìn)行驗(yàn)證再登錄;如果通過效驗(yàn),LDAP服務(wù)器會(huì)返回給用戶一個(gè)認(rèn)證的憑據(jù)一一 ticket。當(dāng)用戶再訪問其它的應(yīng)用系統(tǒng)的時(shí)候,用戶會(huì)將這個(gè)ticket帶上,作為自己認(rèn)證的憑據(jù),應(yīng)用系統(tǒng)會(huì)發(fā)送用戶ID和這個(gè)ticket到LDAP進(jìn)行驗(yàn)證,如果通過效驗(yàn),用戶就可以在不用再次登錄的情況下訪問其它的應(yīng)用系統(tǒng)。從圖2可以看出,要實(shí)現(xiàn)單點(diǎn)登錄,其主要的實(shí)現(xiàn)步驟為 1、用戶訪問系統(tǒng)一首頁。2、用戶輸入用戶ID和密碼,并提交到LDAP服務(wù)器進(jìn)行驗(yàn)證。3、LDAP服務(wù)器驗(yàn)證用戶ID和密碼,驗(yàn)證通過后,LDAP服務(wù)器根據(jù)用戶ID和時(shí)間戳生成ticket,并將ticket保存在LDAP服務(wù)器中和返回ticket到系統(tǒng)一,系統(tǒng)一把接收到的ticket保存在session中。4、系統(tǒng)一接收到驗(yàn)證通過信息和ticket后,進(jìn)入系統(tǒng)一。5、若要登錄系統(tǒng)二,則系統(tǒng)一發(fā)送帶有用戶ID和ticket的請求到系統(tǒng)二。6、系統(tǒng)二從系統(tǒng)一的請求中取得用戶ID和ticket,并發(fā)送用戶ID和認(rèn)證信息到 LDAP服務(wù)器進(jìn)行認(rèn)證。7、LDAP服務(wù)器認(rèn)證后,返回驗(yàn)證成功的信息給系統(tǒng)二,則用戶可通過系統(tǒng)一可以直接登錄系統(tǒng)二,在進(jìn)入系統(tǒng)二之后,系統(tǒng)二也將用戶ID和ticket儲(chǔ)存在session中以便從系統(tǒng)二訪問其它系統(tǒng)時(shí)使用。若用戶在登錄系統(tǒng)一后,再登錄系統(tǒng)二和系統(tǒng)三,只通過驗(yàn)證用戶ID和ticket即可實(shí)現(xiàn)系統(tǒng)二和系統(tǒng)三的登錄;但是當(dāng)用戶從系統(tǒng)二或系統(tǒng)三訪問系統(tǒng)一時(shí),在用戶登錄系統(tǒng)一的情況下,仍然要進(jìn)行ticket和用戶ID的認(rèn)證。在退出系統(tǒng)二和系統(tǒng)三后,系統(tǒng)二和系統(tǒng)三會(huì)清空session中的用戶ID和ticket。以上所述僅為本發(fā)明的較佳實(shí)施案例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,其特征在于該方法包括如下步驟1)、發(fā)送用戶ID和密碼到系統(tǒng)一;2)、系統(tǒng)一發(fā)送用戶ID和密碼到LDAP服務(wù)器進(jìn)行認(rèn)證;3)、LDAP服務(wù)器進(jìn)行認(rèn)證并返回認(rèn)證信息(ticket),登錄系統(tǒng)一;4)、若要登錄系統(tǒng)二,發(fā)送用戶ID和認(rèn)證信息到LDAP服務(wù)器進(jìn)行認(rèn)證;5)、然后返回認(rèn)證信息給系統(tǒng)二,登錄系統(tǒng)二。
2.如權(quán)利要求1所述的基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,其特征在于所述的步驟 3)中,LDAP服務(wù)器根據(jù)用戶ID和時(shí)間戳生成ticket,并將ticket保存在LDAP服務(wù)器中和返回ticket到系統(tǒng)一,系統(tǒng)一把接收到的ticket以及用戶ID保存在session中。
3.如權(quán)利要求1所述的基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,其特征在于所述步驟4) 中,當(dāng)用戶在系統(tǒng)一中需要訪問系統(tǒng)二時(shí),則發(fā)送帶有用戶ID和ticket的請求發(fā)送到系統(tǒng)二,系統(tǒng)二從系統(tǒng)一的請求中取得用戶ID和ticket,并把用戶ID和ticket發(fā)送到LDAP 服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過后,允許用戶從系統(tǒng)一直接訪問系統(tǒng)二。
4.如權(quán)利要求1所述的基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,其特征在于所述若用戶從系統(tǒng)一或系統(tǒng)二退出時(shí),session則被清空失效。
5.如權(quán)利要求1所述的基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,其特征在于若用戶登錄其它的系統(tǒng)三、系統(tǒng)四,則重復(fù)步驟4) - 5)。
6.如權(quán)利要求1所述的基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,其特征在于若用戶重新使用用戶ID和密碼登錄系統(tǒng)一或系統(tǒng)二時(shí),則重新根據(jù)用戶ID和時(shí)間戳生產(chǎn)新的ticket。
7.如權(quán)利要求1所述的基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,其特征在于Ticket的生成方式為A、用戶ID和當(dāng)前時(shí)間值(最好精確到毫秒)組成字符串S;B、對(duì)字符串S進(jìn)行UTF-8的Base64編碼形成ticket。
8.如權(quán)利要求1所述的基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,其特征在于若用戶登錄在系統(tǒng)一和系統(tǒng)二后,再登錄系統(tǒng)三,系統(tǒng)三可以從系統(tǒng)一或系統(tǒng)二獲取用戶ID和ticket, 并把用戶ID和ticket發(fā)送到LDAP服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過后,直接從系統(tǒng)一或系統(tǒng)二登錄系統(tǒng)三。
全文摘要
本發(fā)明是一種基于LDAP服務(wù)的單點(diǎn)登錄實(shí)現(xiàn)方法,該方法通過發(fā)送用戶ID和密碼到系統(tǒng)一,系統(tǒng)一發(fā)送用戶ID和密碼到LDAP服務(wù)器進(jìn)行認(rèn)證,LDAP服務(wù)器進(jìn)行認(rèn)證并返回認(rèn)證信息(ticket),登錄系統(tǒng)一,若要登錄系統(tǒng)二,發(fā)送用戶ID和認(rèn)證信息到LDAP服務(wù)器進(jìn)行認(rèn)證;認(rèn)證后返回認(rèn)證信息給系統(tǒng)二,登錄系統(tǒng)二。該方法可實(shí)現(xiàn)基于LDAP服務(wù)的單點(diǎn)登錄,且該方法安全可靠,能夠保證用戶和系統(tǒng)的安全。
文檔編號(hào)G06F17/30GK102299805SQ201110285429
公開日2011年12月28日 申請日期2011年9月23日 優(yōu)先權(quán)日2011年9月23日
發(fā)明者馮劍, 周宏江 申請人:深圳市華波美通信技術(shù)有限公司