本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及一種單點登錄的系統(tǒng)及方法、一種應(yīng)用服務(wù)器。
背景技術(shù):
隨著科技的快速發(fā)展,同一個用戶可能需要使用多個應(yīng)用系統(tǒng)。對于企業(yè)來說,同一個企業(yè)內(nèi)部一般包含多個應(yīng)用系統(tǒng)。
現(xiàn)有技術(shù)中,用戶在登錄這些應(yīng)用系統(tǒng)時,用戶需要輸入要登錄的應(yīng)用系統(tǒng)的用戶名和密碼等認(rèn)證信息才能登錄到對應(yīng)的應(yīng)用系統(tǒng)中。舉例來說,對于一個企業(yè)來說,企業(yè)A內(nèi)部包含應(yīng)用系統(tǒng)1、應(yīng)用系統(tǒng)2和應(yīng)用系統(tǒng)3。用戶如果需要登錄應(yīng)用系統(tǒng)1就需要輸入應(yīng)用系統(tǒng)1對應(yīng)的用戶名和密碼,用戶如果需要登錄應(yīng)用系統(tǒng)2就需要輸入應(yīng)用系統(tǒng)2對應(yīng)的用戶名和密碼,用戶如果需要登錄應(yīng)用系統(tǒng)3就需要輸入應(yīng)用系統(tǒng)3對應(yīng)的用戶名和密碼。
通過上述描述可見,現(xiàn)有技術(shù)中,用戶在登錄不同的應(yīng)用系統(tǒng)時,需要針對不同的應(yīng)用系統(tǒng)輸入不同的認(rèn)證信息,操作比較復(fù)雜。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種單點登錄的系統(tǒng)及方法、一種應(yīng)用服務(wù)器,能夠更加方便地登錄不同的應(yīng)用系統(tǒng)。
第一方面,本發(fā)明實施例提供了一種單點登錄的系統(tǒng),包括:
門戶系統(tǒng)和應(yīng)用服務(wù)器,其中,所述應(yīng)用服務(wù)器中包括至少一個應(yīng)用系統(tǒng);
所述門戶系統(tǒng),用于驗證用戶輸入的身份信息,當(dāng)所述用戶通過驗證時,接收所述用戶輸入訪問所述至少一個應(yīng)用系統(tǒng)中的任一目標(biāo)應(yīng)用系統(tǒng)的請求,向所述應(yīng)用服務(wù)器發(fā)送申請令牌的請求和所述目標(biāo)應(yīng)用系統(tǒng)的目標(biāo)地址,接收所述應(yīng)用服務(wù)器發(fā)來的目標(biāo)令牌,根據(jù)所述目標(biāo)令牌和所述目標(biāo)地址,生成單點登錄請求,向所述應(yīng)用服務(wù)器發(fā)送所述單點登錄請求;
所述應(yīng)用服務(wù)器,用于接收所述申請令牌的請求和所述目標(biāo)地址,生成所述目標(biāo)令牌,保存所述目標(biāo)令牌和所述目標(biāo)地址,將所述目標(biāo)令牌發(fā)送給所述門戶系統(tǒng),接收所述單點登錄請求,根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述單點登錄請求,當(dāng)所述單點登錄請求通過驗證時,允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng)。
進(jìn)一步地,所述單點登錄請求中包括:待認(rèn)證令牌和待認(rèn)證地址;
所述門戶系統(tǒng),用于將所述目標(biāo)令牌作為所述待認(rèn)證令牌,將所述目標(biāo)地址作為所述待認(rèn)證地址,生成所述單點登錄請求;
所述應(yīng)用服務(wù)器,用于判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同,如果是,則允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng),否則,不允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng)。
進(jìn)一步地,所述應(yīng)用服務(wù)器,進(jìn)一步用于在所述接收所述單點登錄請求之后,在所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同之前,判斷當(dāng)前與所述目標(biāo)令牌的頒發(fā)時間的時間間隔是否大于等于預(yù)設(shè)的第一時間長度,如果是,則結(jié)束當(dāng)前流程,否則,執(zhí)行所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同。
進(jìn)一步地,該系統(tǒng)進(jìn)一步包括:用戶客戶端;
所述應(yīng)用服務(wù)器,用于當(dāng)所述單點登錄請求通過驗證時,向所述門戶系統(tǒng)發(fā)送單點登錄指令,當(dāng)接收到所述用戶客戶端發(fā)來的登錄請求時,根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述登錄請求,當(dāng)所述登錄請求通過驗證時,允許所述用戶通過所述用戶客戶端訪問所述目標(biāo)應(yīng)用系統(tǒng);
所述門戶系統(tǒng),用于在接收到所述單點登錄指令時,向所述用戶客戶端發(fā)送所述目標(biāo)令牌和所述目標(biāo)地址;
所述用戶客戶端,用于接收所述目標(biāo)令牌和所述目標(biāo)地址,根據(jù)所述目標(biāo)令牌和所述目標(biāo)地址,生成所述登錄請求,將所述登錄請求發(fā)送給所述應(yīng)用服務(wù)器。
進(jìn)一步地,所述應(yīng)用服務(wù)器,進(jìn)一步用于實時檢測保存所述目標(biāo)令牌的時間長度是否大于等于預(yù)設(shè)的第二時間長度,如果是,則清除所述目標(biāo)令牌。
進(jìn)一步地,所述門戶系統(tǒng)與所述應(yīng)用服務(wù)器之間的交互信息為加密后的密文;
進(jìn)一步地,所述應(yīng)用服務(wù)器為ERP服務(wù)器。
第二方面,本發(fā)明實施例提供了一種單點登錄的方法,應(yīng)用于應(yīng)用服務(wù)器,所述應(yīng)用服務(wù)器中包括:至少一個應(yīng)用系統(tǒng),包括:
接收外部發(fā)來的申請令牌的請求和所述至少一個應(yīng)用系統(tǒng)中的任一目標(biāo)應(yīng)用系統(tǒng)的目標(biāo)地址;
生成目標(biāo)令牌;
保存所述目標(biāo)令牌和所述目標(biāo)地址;
向所述外部返回所述目標(biāo)令牌,以使所述外部根據(jù)所述目標(biāo)令牌和所述目標(biāo)地址生成單點登錄請求;
接收所述外部發(fā)來的所述單點登錄請求;
根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述單點登錄請求,當(dāng)所述單點登錄請求通過驗證時,允許訪問所述目標(biāo)應(yīng)用系統(tǒng)。
進(jìn)一步地,所述單點登錄請求中包括:待認(rèn)證令牌和待認(rèn)證地址;
所述根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述單點登錄請求,當(dāng)所述單點登錄請求通過驗證時,允許訪問所述目標(biāo)應(yīng)用系統(tǒng),包括:
判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同,如果是,則允許訪問所述目標(biāo)應(yīng)用系統(tǒng),否則,不允許訪問所述目標(biāo)應(yīng)用系統(tǒng)。
進(jìn)一步地,在所述接收所述單點登錄請求之后,在所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同之前,進(jìn)一步包括:
判斷當(dāng)前與所述目標(biāo)令牌的頒發(fā)時間的時間間隔是否大于等于預(yù)設(shè)的第一時間長度,如果是,則不允許訪問所述目標(biāo)應(yīng)用系統(tǒng),結(jié)束當(dāng)前流程,否則,執(zhí)行所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同。
第三方面,本發(fā)明實施例提供了一種應(yīng)用服務(wù)器,包括:
至少一個應(yīng)用系統(tǒng);
第一接收單元,用于接收外部發(fā)來的申請令牌的請求和所述至少一個應(yīng)用系統(tǒng)中的任一目標(biāo)應(yīng)用系統(tǒng)的目標(biāo)地址;
生成單元,用于生成所述申請令牌的請求對應(yīng)的目標(biāo)令牌;
保存單元,用于保存所述目標(biāo)令牌和所述目標(biāo)地址;
發(fā)送單元,用于向所述外部返回所述目標(biāo)令牌,以使所述外部根據(jù)所述目標(biāo)令牌和所述目標(biāo)地址生成單點登錄請求;
第二接收單元,用于接收所述外部發(fā)來的所述單點登錄請求;
認(rèn)證單元,用于根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述單點登錄請求,當(dāng)所述單點登錄請求通過驗證時,允許訪問所述目標(biāo)應(yīng)用系統(tǒng)。
進(jìn)一步地,所述單點登錄請求中包括:待認(rèn)證令牌和待認(rèn)證地址;
所述認(rèn)證單元,用于判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同,如果是,則允許訪問所述目標(biāo)應(yīng)用系統(tǒng),否則,不允許訪問所述目標(biāo)應(yīng)用系統(tǒng)。
進(jìn)一步地,所述認(rèn)證單元,進(jìn)一步用于在所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同之前,判斷當(dāng)前與所述目標(biāo)令牌的頒發(fā)時間的時間間隔是否大于等于預(yù)設(shè)的第一時間長度,如果是,則不允許訪問所述目標(biāo)應(yīng)用系統(tǒng),結(jié)束當(dāng)前流程,否則,執(zhí)行所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同。
在本發(fā)明實施例中,用戶在通過門戶系統(tǒng)的身份驗證后,可以通過門戶系統(tǒng)訪問應(yīng)用服務(wù)器上的各個應(yīng)用系統(tǒng),在訪問各個應(yīng)用系統(tǒng)時,用戶無需再次輸入用戶驗證身份的身份信息,門戶系統(tǒng)與應(yīng)用服務(wù)器之間進(jìn)行自動驗證,通過驗證后,用戶可以直接登錄到各個應(yīng)用系統(tǒng),使得用戶更加方便地登錄不同的應(yīng)用系統(tǒng)。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實施例提供的一種單點登錄的系統(tǒng)的示意圖;
圖2是本發(fā)明一實施例提供的另一種單點登錄的系統(tǒng)的示意圖;
圖3是本發(fā)明一實施例提供的一種單點登錄的方法的流程圖;
圖4是本發(fā)明一實施例提供的另一種單點登錄的方法的流程圖;
圖5是本發(fā)明一實施例提供的一種應(yīng)用服務(wù)器的示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實施例提供了一種單點登錄的系統(tǒng),該系統(tǒng)包括:
門戶系統(tǒng)101和應(yīng)用服務(wù)器102,其中,所述應(yīng)用服務(wù)器中包括至少一個應(yīng)用系統(tǒng);
所述門戶系統(tǒng)101,用于驗證用戶輸入的身份信息,當(dāng)所述用戶通過驗證時,接收所述用戶輸入訪問所述至少一個應(yīng)用系統(tǒng)中的任一目標(biāo)應(yīng)用系統(tǒng)的請求,向所述應(yīng)用服務(wù)器發(fā)送申請令牌的請求和所述目標(biāo)應(yīng)用系統(tǒng)的目標(biāo)地址,接收所述應(yīng)用服務(wù)器發(fā)來的目標(biāo)令牌,根據(jù)所述目標(biāo)令牌和所述目標(biāo)地址,生成單點登錄請求,向所述應(yīng)用服務(wù)器發(fā)送所述單點登錄請求;
所述應(yīng)用服務(wù)器102,用于接收所述申請令牌的請求和所述目標(biāo)地址,生成所述目標(biāo)令牌,保存所述目標(biāo)令牌和所述目標(biāo)地址,將所述目標(biāo)令牌發(fā)送給所述門戶系統(tǒng),接收所述單點登錄請求,根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述單點登錄請求,當(dāng)所述單點登錄請求通過驗證時,允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng)。
在本發(fā)明實施例中,用戶在通過門戶系統(tǒng)的身份驗證后,可以通過門戶系統(tǒng)訪問應(yīng)用服務(wù)器上的各個應(yīng)用系統(tǒng),在訪問各個應(yīng)用系統(tǒng)時,用戶無需再次輸入用戶驗證身份的身份信息,門戶系統(tǒng)與應(yīng)用服務(wù)器之間進(jìn)行自動驗證,通過驗證后,用戶可以直接登錄到各個應(yīng)用系統(tǒng),使得用戶更加方便地登錄不同的應(yīng)用系統(tǒng)。
在本發(fā)明一實施例中,所述單點登錄請求中包括:待認(rèn)證令牌和待認(rèn)證地址;
所述門戶系統(tǒng),用于將所述目標(biāo)令牌作為所述待認(rèn)證令牌,將所述目標(biāo)地址作為所述待認(rèn)證地址,生成所述單點登錄請求;
所述應(yīng)用服務(wù)器,用于判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同,如果是,則允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng),否則,不允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng)。
在本發(fā)明實施例中,由于門戶系統(tǒng)發(fā)來的單點登錄請求中的待認(rèn)證令牌和待認(rèn)證地址可能在傳輸過程中被篡改,因此,為了保證安全,需要重新進(jìn)行驗證,只有應(yīng)用服務(wù)器接收到的單點登錄請求中的待認(rèn)證令牌和待認(rèn)證地址與之前保存的目標(biāo)令牌和目標(biāo)地址對應(yīng)相等時,單點登錄請求通過驗證,允許用戶訪問應(yīng)用服務(wù)器中的目標(biāo)應(yīng)用系統(tǒng)。
在本發(fā)明一實施例中,所述應(yīng)用服務(wù)器,進(jìn)一步用于在所述接收所述單點登錄請求之后,在所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同之前,判斷當(dāng)前與所述目標(biāo)令牌的頒發(fā)時間的時間間隔是否大于等于預(yù)設(shè)的第一時間長度,如果是,則結(jié)束當(dāng)前流程,否則,執(zhí)行所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同。
在本發(fā)明實施例中,為每個目標(biāo)令牌設(shè)置有效期,保存的時間超過有效期的目標(biāo)令牌均為無效的令牌,通過無效的令牌無法訪問應(yīng)用系統(tǒng)。其中第一時間長度為目標(biāo)令牌的有效期,可以是6個小時。如果目標(biāo)令牌的保存時間超過了第一時間長度,則無需進(jìn)行后續(xù)的驗證,直接禁止該目標(biāo)令牌對應(yīng)的用戶訪問目標(biāo)應(yīng)用系統(tǒng)。
基于圖1所示的一種單點登錄的系統(tǒng),在本發(fā)明一實施例中,如圖2所示,該系統(tǒng)進(jìn)一步包括:用戶客戶端201;
所述應(yīng)用服務(wù)器,用于當(dāng)所述單點登錄請求通過驗證時,向所述門戶系統(tǒng)發(fā)送單點登錄指令,當(dāng)接收到所述用戶客戶端發(fā)來的登錄請求時,根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述登錄請求,當(dāng)所述登錄請求通過驗證時,允許所述用戶通過所述用戶客戶端訪問所述目標(biāo)應(yīng)用系統(tǒng);
所述門戶系統(tǒng),用于在接收到所述單點登錄指令時,向所述用戶客戶端發(fā)送所述目標(biāo)令牌和所述目標(biāo)地址;
所述用戶客戶端201,用于接收所述目標(biāo)令牌和所述目標(biāo)地址,根據(jù)所述目標(biāo)令牌和所述目標(biāo)地址,生成所述登錄請求,將所述登錄請求發(fā)送給所述應(yīng)用服務(wù)器。
在本發(fā)明實施例中,在系統(tǒng)設(shè)置用戶客戶端,應(yīng)用服務(wù)器中的應(yīng)用系統(tǒng)之間與用戶客戶端進(jìn)行數(shù)據(jù)交互,響應(yīng)用戶客戶端的請求。為了避免用戶客戶端發(fā)送的登錄請求在傳輸過程中被篡改,應(yīng)用服務(wù)器需要對登錄請求進(jìn)行驗證,通過驗證才允許訪問,保證了應(yīng)用服務(wù)器以及各個應(yīng)用系統(tǒng)的安全。
在本發(fā)明一實施例中,所述應(yīng)用服務(wù)器,進(jìn)一步用于實時檢測保存所述目標(biāo)令牌的時間長度是否大于等于預(yù)設(shè)的第二時間長度,如果是,則清除所述目標(biāo)令牌。
在本發(fā)明實施例中,應(yīng)用服務(wù)器定時清理無效的令牌,能夠節(jié)省存儲空間,減少運(yùn)維成本。
在本發(fā)明一實施例中,所述門戶系統(tǒng)與所述應(yīng)用服務(wù)器之間的交互信息為加密后的密文。
在本發(fā)明實施例中,門戶系統(tǒng)與應(yīng)用服務(wù)器之間進(jìn)行加密交互,保證了交互安全。具體地,可以通過對稱加密算法進(jìn)行加密,或者使用MD5進(jìn)行加密。
具體地,門戶系統(tǒng)對單點登錄請求中的待認(rèn)證令牌和待認(rèn)證地址進(jìn)行加密,將加密處理后的單點登錄請求發(fā)送給應(yīng)用服務(wù)器。
在本發(fā)明一實施例中,所述應(yīng)用服務(wù)器為ERP(企業(yè)資源計劃,Enterprise Resource Planning)服務(wù)器。
在本發(fā)明實施例中,身份認(rèn)證的方式使用ERP自身認(rèn)證方式,不需要重新搭建認(rèn)證服務(wù)器,不需要重新初始用戶的基本信息包括用戶名稱、認(rèn)證方式等,從而不需要重新開發(fā)認(rèn)證方式,極大的減少了運(yùn)維成本,同時也極大的減少了開發(fā)認(rèn)證方式的工作量。
在本發(fā)明一實施例中,在當(dāng)所述單點登錄請求通過驗證時,允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng)之后,進(jìn)一步包括:清楚目標(biāo)令牌。
在本發(fā)明實施例中,同一個目標(biāo)令牌只運(yùn)行一次登錄,無法反復(fù)使用,避免了非法用戶利用已被使用過的目標(biāo)令牌登錄某個應(yīng)用系統(tǒng),保證了各個應(yīng)用系統(tǒng)的安全。
在本發(fā)明一實施例中,可以在門戶系統(tǒng)中設(shè)置請求令牌頁面,門戶系統(tǒng)可以通過請求令牌頁面向應(yīng)用服務(wù)器請求目標(biāo)令牌,在發(fā)送申請令牌的請求時,還發(fā)送回調(diào)地址,使得應(yīng)用服務(wù)器通過回調(diào)地址返回目標(biāo)令牌。還可以在門戶系統(tǒng)中設(shè)置單點登錄頁面,用戶可以通過點擊單點登錄頁面上的單點登錄鏈接來請求訪問任一應(yīng)用系統(tǒng)。門戶系統(tǒng)接收到用戶點擊單點登錄鏈接后,如果該用戶當(dāng)前沒有登錄,則提示用戶輸入身份信息,對用戶輸入的身份信息進(jìn)行驗證。
在本發(fā)明一實施例中,可以在應(yīng)用服務(wù)器中設(shè)置一個數(shù)據(jù)庫,應(yīng)用服務(wù)器可以將目標(biāo)地址、目標(biāo)令牌保存到數(shù)據(jù)庫中。另外,還可以對目標(biāo)地址通過MD5進(jìn)行加密,將生成的密文保存到數(shù)據(jù)庫中。通過該密文可以進(jìn)一步判斷需要進(jìn)行驗證的目標(biāo)地址是否被篡改。
在本發(fā)明一實施例中,單點登錄請求還可以包括單點登錄參數(shù),該單點登錄參數(shù)可以使得目標(biāo)應(yīng)用系統(tǒng)解析出需要返回的數(shù)據(jù)以及需要執(zhí)行的操作等。
在本發(fā)明一實施例中,門戶系統(tǒng)可以在接收到單點登錄指令時,通過OCX(對象類別擴(kuò)充組件,Object Linking and Embedding(OLE)Control Extension)啟動用戶客戶端。
本發(fā)明實施例提供的一種單點登錄的系統(tǒng),能夠抗重放攻擊,防止單點登錄鏈接的重放攻擊,有效防止惡意或欺詐性地訪問應(yīng)用服務(wù)器,有效防止破壞認(rèn)證的安全性。通過加密鏈接信息,防止從鏈接中獲取有效的用戶認(rèn)證信息,從而避免了用戶信息的泄露。通過令牌清理機(jī)制,提供一套健全有效的清理機(jī)制,定期清理無效的令牌,防止數(shù)據(jù)庫存儲大量無效的令牌信息。通過應(yīng)用服務(wù)器自身進(jìn)行認(rèn)證,極大的簡化系統(tǒng)集成的成本。
在本發(fā)明實施例中,將應(yīng)用系統(tǒng)所在的應(yīng)用服務(wù)器作為認(rèn)證服務(wù)器,免除了重新搭建認(rèn)證服務(wù)器的繁瑣步驟,免除了重新初始用戶任性信息的繁瑣工作,簡化了重新開發(fā)新的認(rèn)證方式的工作。
在本發(fā)明實施例中,通過令牌機(jī)制控制的單點登錄安全訪問,保證了單點登錄訪問的防重放攻擊,又通過加密保證了連接信息不被泄露,極大的減少了二次開發(fā)的工作量,保證了訪問安全、可靠,減少了運(yùn)維成本,可以快速上線。
在本發(fā)明實施例中,可以不搭建認(rèn)證服務(wù)器,不開發(fā)新的認(rèn)證方式,該系統(tǒng)安全、不泄露用戶基本信息的。
如圖3所示,本發(fā)明實施例提供了一種單點登錄的方法,應(yīng)用于應(yīng)用服務(wù)器,所述應(yīng)用服務(wù)器中包括:至少一個應(yīng)用系統(tǒng),包括:
步驟301:接收外部發(fā)來的申請令牌的請求和所述至少一個應(yīng)用系統(tǒng)中的任一目標(biāo)應(yīng)用系統(tǒng)的目標(biāo)地址;
步驟302:生成目標(biāo)令牌;
步驟303:保存所述目標(biāo)令牌和所述目標(biāo)地址;
步驟304:向所述外部返回所述目標(biāo)令牌,以使所述外部根據(jù)所述目標(biāo)令牌和所述目標(biāo)地址生成單點登錄請求;
步驟305:接收所述外部發(fā)來的所述單點登錄請求;
步驟306:根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述單點登錄請求,當(dāng)所述單點登錄請求通過驗證時,允許訪問所述目標(biāo)應(yīng)用系統(tǒng)。
在本發(fā)明一實施例中,所述單點登錄請求中包括:待認(rèn)證令牌和待認(rèn)證地址;
所述根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述單點登錄請求,當(dāng)所述單點登錄請求通過驗證時,允許訪問所述目標(biāo)應(yīng)用系統(tǒng),包括:
判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同,如果是,則允許訪問所述目標(biāo)應(yīng)用系統(tǒng),否則,不允許訪問所述目標(biāo)應(yīng)用系統(tǒng)。
在本發(fā)明一實施例中,在所述接收所述單點登錄請求之后,在所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同之前,進(jìn)一步包括:
判斷當(dāng)前與所述目標(biāo)令牌的頒發(fā)時間的時間間隔是否大于等于預(yù)設(shè)的第一時間長度,如果是,則不允許訪問所述目標(biāo)應(yīng)用系統(tǒng),結(jié)束當(dāng)前流程,否則,執(zhí)行所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同。
如圖4所示,本發(fā)明實施例提供了一種單點登錄的方法,該方法應(yīng)用與應(yīng)用服務(wù)器,該應(yīng)用服務(wù)器中包括:至少一個應(yīng)用系統(tǒng),該方法包括:
步驟401:接收外部發(fā)來的申請令牌的請求和應(yīng)用服務(wù)器中的至少一個應(yīng)用系統(tǒng)中的任一目標(biāo)應(yīng)用系統(tǒng)的目標(biāo)地址。
舉例來說,應(yīng)用服務(wù)器中包括:應(yīng)用系統(tǒng)A、應(yīng)用系統(tǒng)B和應(yīng)用系統(tǒng)C。當(dāng)外部的用戶需要訪問應(yīng)用系統(tǒng)A時,就會向應(yīng)用服務(wù)器發(fā)送應(yīng)用系統(tǒng)A的地址,該地址就是目標(biāo)地址。
步驟402:生成目標(biāo)令牌。
該目標(biāo)令牌可以是隨機(jī)生成的,在應(yīng)用服務(wù)器端,該目標(biāo)令牌只能用于登錄應(yīng)用系統(tǒng)A,為了安全,一般該目標(biāo)令牌智能登錄一次。
步驟403:保存目標(biāo)令牌和目標(biāo)地址。
在應(yīng)用服務(wù)器上,可以設(shè)置數(shù)據(jù)庫,將目標(biāo)令牌和目標(biāo)地址保存到數(shù)據(jù)庫中。數(shù)據(jù)庫中還可以保存加密目標(biāo)地址得到的密文,該密文可以用于驗證待認(rèn)證地址。
步驟404:向外部返回目標(biāo)令牌,以使外部根據(jù)目標(biāo)令牌和目標(biāo)地址生成單點登錄請求,該單點登錄請求中包括:待認(rèn)證令牌和待認(rèn)證地址。
在外部生成單點登錄請求時,一般將目標(biāo)令牌作為待認(rèn)證令牌,將目標(biāo)地址作為待認(rèn)證地址。
步驟405:接收外部發(fā)來的單點登錄請求。
步驟406:判斷當(dāng)前與目標(biāo)令牌的頒發(fā)時間的時間間隔是否大于等于預(yù)設(shè)的第一時間長度,如果是,則執(zhí)行步驟407,否則,執(zhí)行步驟408。
第一時間長度是目標(biāo)令牌的有效期。如果目標(biāo)令牌在有效期外使用,則無法登錄到目標(biāo)應(yīng)用系統(tǒng),在有效期內(nèi),則繼續(xù)后續(xù)的驗證。
步驟407:不允許訪問目標(biāo)應(yīng)用系統(tǒng),結(jié)束當(dāng)前流程。
舉例來說,如果目標(biāo)令牌在有效期外使用,則無法登錄到應(yīng)用系統(tǒng)A。
步驟408:判斷單點登錄請求是否滿足:單點登錄請求中的待認(rèn)證令牌與保存的目標(biāo)令牌相同,且單點登錄請求中的待認(rèn)證地址與保存的目標(biāo)地址相同,如果是,則執(zhí)行步驟409,否則,執(zhí)行步驟410。
雖然在生成單點登錄請求時,單點登錄請求中的待認(rèn)證令牌與目標(biāo)令牌相同,且單點登錄請求中的待認(rèn)證地址與目標(biāo)地址相同,但是,單點登錄請求在傳輸過程中,可能會被篡改,因此,為了保證單點登錄的安全,需要對單點登錄請求進(jìn)行驗證,避免了非法用戶訪問目標(biāo)應(yīng)用系統(tǒng)。
步驟409:允許訪問目標(biāo)應(yīng)用系統(tǒng)。
在該步驟之后,還可以包括:清除目標(biāo)令牌。這樣可以避免目標(biāo)令牌被重復(fù)使用,避免目標(biāo)令牌被非法獲取后,用于非法登錄應(yīng)用系統(tǒng),保證了單點登錄的安全。
步驟410:不允許訪問目標(biāo)應(yīng)用系統(tǒng)。
本發(fā)明實施例提供了一種應(yīng)用服務(wù)器,包括:
至少一個應(yīng)用系統(tǒng);
第一接收單元,用于接收外部發(fā)來的申請令牌的請求和所述至少一個應(yīng)用系統(tǒng)中的任一目標(biāo)應(yīng)用系統(tǒng)的目標(biāo)地址;
生成單元,用于生成所述申請令牌的請求對應(yīng)的目標(biāo)令牌;
保存單元,用于保存所述目標(biāo)令牌和所述目標(biāo)地址;
發(fā)送單元,用于向所述外部返回所述目標(biāo)令牌,以使所述外部根據(jù)所述目標(biāo)令牌和所述目標(biāo)地址生成單點登錄請求;
第二接收單元,用于接收所述外部發(fā)來的所述單點登錄請求;
認(rèn)證單元,用于根據(jù)保存的所述目標(biāo)令牌和所述目標(biāo)地址,驗證所述單點登錄請求,當(dāng)所述單點登錄請求通過驗證時,允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng)。
如圖5所示,本發(fā)明實施例提供了一種應(yīng)用服務(wù)器,包括:
三個應(yīng)用系統(tǒng)500;
第一接收單元501,用于接收外部發(fā)來的申請令牌的請求和三個應(yīng)用系統(tǒng)中的任一目標(biāo)應(yīng)用系統(tǒng)的目標(biāo)地址;
生成單元502,用于生成所述申請令牌的請求對應(yīng)的目標(biāo)令牌;
保存單元503,用于保存目標(biāo)令牌和目標(biāo)地址;
發(fā)送單元504,用于向外部返回目標(biāo)令牌,以使外部根據(jù)目標(biāo)令牌和目標(biāo)地址生成單點登錄請求;
第二接收單元505,用于接收外部發(fā)來的單點登錄請求;
認(rèn)證單元506,用于根據(jù)保存的目標(biāo)令牌和目標(biāo)地址,驗證單點登錄請求,當(dāng)單點登錄請求通過驗證時,允許用戶訪問目標(biāo)應(yīng)用系統(tǒng)。
在本發(fā)明一實施例中,所述單點登錄請求中包括:待認(rèn)證令牌和待認(rèn)證地址;
所述認(rèn)證單元,用于判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同,如果是,則允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng),否則,不允許所述用戶訪問所述目標(biāo)應(yīng)用系統(tǒng)。
在本發(fā)明一實施例中,所述認(rèn)證單元,進(jìn)一步用于在所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同之前,判斷當(dāng)前與所述目標(biāo)令牌的頒發(fā)時間的時間間隔是否大于等于預(yù)設(shè)的第一時間長度,如果是,則結(jié)束當(dāng)前流程,否則,執(zhí)行所述判斷所述單點登錄請求是否滿足:所述單點登錄請求中的所述待認(rèn)證令牌與保存的所述目標(biāo)令牌相同,且所述單點登錄請求中的所述待認(rèn)證地址與保存的所述目標(biāo)地址相同。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
本發(fā)明各個實施例至少具有如下有益效果:
1、在本發(fā)明實施例中,用戶在通過門戶系統(tǒng)的身份驗證后,可以通過門戶系統(tǒng)訪問應(yīng)用服務(wù)器上的各個應(yīng)用系統(tǒng),在訪問各個應(yīng)用系統(tǒng)時,用戶無需再次輸入用戶驗證身份的身份信息,門戶系統(tǒng)與應(yīng)用服務(wù)器之間進(jìn)行自動驗證,通過驗證后,用戶可以直接登錄到各個應(yīng)用系統(tǒng),使得用戶更加方便地登錄不同的應(yīng)用系統(tǒng)。
2、在本發(fā)明實施例中,身份認(rèn)證的方式使用應(yīng)用服務(wù)器自身認(rèn)證方式,不需要重新搭建認(rèn)證服務(wù)器,不需要重新初始用戶的基本信息包括用戶名稱、認(rèn)證方式等,從而不需要重新開發(fā)認(rèn)證方式,極大的減少了運(yùn)維成本,同時也極大的減少了開發(fā)認(rèn)證方式的工作量。
3、本發(fā)明實施例提供的一種單點登錄的系統(tǒng),能夠抗重放攻擊,防止單點登錄鏈接的重放攻擊,有效防止惡意或欺詐性地訪問應(yīng)用服務(wù)器,有效防止破壞認(rèn)證的安全性。通過加密鏈接信息,防止從鏈接中獲取有效的用戶認(rèn)證信息,從而避免了用戶信息的泄露。通過令牌清理機(jī)制,提供一套健全有效的清理機(jī)制,定期清理無效的令牌,防止數(shù)據(jù)庫存儲大量無效的令牌信息。通過應(yīng)用服務(wù)器自身進(jìn)行認(rèn)證,極大的簡化系統(tǒng)集成的成本。
需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃·····”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲在計算機(jī)可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。