用于開放接口調(diào)用的認證方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及認證方法,更具體地,涉及用于開放接口調(diào)用的認證方法。
【背景技術(shù)】
[0002]目前,隨著計算機和網(wǎng)絡(luò)應(yīng)用的日益廣泛以及不同領(lǐng)域的業(yè)務(wù)種類的日益豐富,通過基于云計算的應(yīng)用調(diào)用開放接口(即由第三方平臺提供的實現(xiàn)通用性功能的接口,諸如短信功能、郵件功能以及驗證碼功能等等)以更有效率的實現(xiàn)特定的功能變得越來越重要。
[0003]在現(xiàn)有的技術(shù)方案中,通常采用如下方式實現(xiàn)對應(yīng)用所發(fā)出的調(diào)用請求的認證:
(I)用戶終端中的應(yīng)用在發(fā)出調(diào)用請求之前向運行于該用戶終端中的認證客戶端發(fā)出請求醫(yī)獲取由所述認證客戶端簽發(fā)的令牌(Token) ; (2)將攜帶該令牌的調(diào)用請求發(fā)送至提供開放接口服務(wù)的第三方平臺;(3)所述第三方平臺將所述令牌傳送至認證服務(wù)期以請求對該令牌進行認證;(4)該認證服務(wù)器驗證該令牌的有效性,并且如果驗證通過,則向所述第三方平臺返回指示驗證通過的信息;(5)在接收到指示驗證通過的信息后,所述第三方平臺提供該調(diào)用請求所請求的開放接口服務(wù)。
[0004]然而,上述現(xiàn)有的技術(shù)方案存在如下問題:(I)由于通過運行于用戶終端中的認證客戶端簽發(fā)令牌,故令牌信息存在被截獲并被惡意盜用的風險;(2)由于不同的第三方平臺需要開發(fā)不同的認證客戶端并駐留于用戶終端上,故操作繁瑣,效率較低。
[0005]因此,存在如下需求:提供具有高的安全性并且便于操作的用于開放接口調(diào)用的認證方法。
【發(fā)明內(nèi)容】
[0006]為了解決上述現(xiàn)有技術(shù)方案所存在的問題,本發(fā)明提出了具有高的安全性并且便于操作的用于開放接口調(diào)用的認證方法。
[0007]本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:
一種用于開放接口調(diào)用的認證方法,所述用于開放接口調(diào)用的認證方法包括下列步驟:
(Al)在發(fā)起首次調(diào)用請求之前,運行于用戶終端上的應(yīng)用在開放接口服務(wù)運行平臺上執(zhí)行初始注冊操作以獲得ID和key;
(A2)在發(fā)起調(diào)用請求時,所述應(yīng)用基于隨機參數(shù)動態(tài)地創(chuàng)建令牌,并結(jié)合所創(chuàng)建的令牌以及所述ID和Key構(gòu)建調(diào)用請求,隨之將所述調(diào)用請求傳送至開放接口提供方服務(wù)器;(A3)所述開放接口提供方服務(wù)器在接收到所述調(diào)用請求后將其傳送至認證服務(wù)器以對其進行認證,并且在所述認證服務(wù)器傳送回認證成功的消息的情況下向所述應(yīng)用提供所述調(diào)用請求所要求的開放接口。
[0008]在上面所公開的方案中,優(yōu)選地,所述ID和key具有預(yù)定的使用期限,并且在所述預(yù)定的使用期限期間所述ID是固定的。
[0009]在上面所公開的方案中,優(yōu)選地,在所述預(yù)定的使用期限期間,所述key能夠被周期性地更新。
[0010]在上面所公開的方案中,優(yōu)選地,所述令牌是由當前系統(tǒng)日期、當前系統(tǒng)時間、8字節(jié)遞增數(shù)以及8字節(jié)隨機數(shù)組成的字符串,其中,所述8字節(jié)遞增數(shù)在一天之內(nèi)不重復,由此確保用于任一個調(diào)用請求的令牌的唯一性。
[0011]在上面所公開的方案中,優(yōu)選地,所述認證服務(wù)器拒絕使用同一個令牌的第二次調(diào)用請求。
[0012]在上面所公開的方案中,優(yōu)選地,所述key是字符串形式的密鑰。
[0013]在上面所公開的方案中,優(yōu)選地,以如下方式結(jié)合所述令牌以及所述ID和Key:將所述令牌以及所述ID和Key拼接并通過MD5加密模式定義的Hash散列得到16位的校驗值,并將該校驗值作為數(shù)字簽名S i gn來構(gòu)成該調(diào)用請求的一部分。
[0014]在上面所公開的方案中,優(yōu)選地,所述認證服務(wù)器以如下方式驗證所述調(diào)用請求:
(1)解析所述調(diào)用請求以獲取該調(diào)用請求中的ID以及令牌;
(2)根據(jù)所述ID從數(shù)據(jù)庫查詢該ID對應(yīng)的Key;
(3)根據(jù)查詢出的Key以及所述調(diào)用請求所包含的令牌生成驗證簽名;
(4)將所述驗證簽名與所述調(diào)用請求中包含的簽名相比較,如果兩者一致,則驗證通過,否則,驗證失敗。
[0015]在上面所公開的方案中,優(yōu)選地,所述認證服務(wù)器和所述開放接口提供方服務(wù)器由所述開放接口服務(wù)運行平臺維護和管理。
[0016]本發(fā)明所公開的用于開放接口調(diào)用的認證方法具有以下優(yōu)點:(I)由于應(yīng)用自身生成令牌并且以加密的方式構(gòu)建簽名,故避免了認證信息被截獲并被惡意盜用的風險,從而具有高的安全性;(2)由于不需要不同的第三方平臺開發(fā)不同的認證客戶端,故操作簡便,效率較高。
【附圖說明】
[0017]結(jié)合附圖,本發(fā)明的技術(shù)特征以及優(yōu)點將會被本領(lǐng)域技術(shù)人員更好地理解,其中: 圖1是根據(jù)本發(fā)明的實施例的用于開放接口調(diào)用的認證方法的流程圖。
【具體實施方式】
[0018]圖1是根據(jù)本發(fā)明的實施例的用于開放接口調(diào)用的認證方法的流程圖。如圖1所示,本發(fā)明所公開的用于開放接口調(diào)用的認證方法包括下列步驟:(Al)在發(fā)起首次調(diào)用請求之前,運行于用戶終端(例如移動終端或個人計算機)上的應(yīng)用在開放接口服務(wù)運行平臺(例如用于云計算環(huán)境的Paas平臺)上執(zhí)行初始注冊操作以獲得ID(身份識別)和key(密鑰);(A2)在發(fā)起調(diào)用請求時,所述應(yīng)用基于隨機參數(shù)動態(tài)地創(chuàng)建令牌,并結(jié)合所創(chuàng)建的令牌以及所述ID和Key構(gòu)建調(diào)用請求,隨之將所述調(diào)用請求傳送至開放接口提供方服務(wù)器;(A3)所述開放接口提供方服務(wù)器在接收到所述調(diào)用請求后將其傳送至認證服務(wù)器以對其進行認證,并且在所述認證服務(wù)器傳送回認證成功的消息的情況下向所述應(yīng)用提供所述調(diào)用請求所要求的開放接口。
[0019]優(yōu)選地,在本發(fā)明所公開的用于開放接口調(diào)用的認證方法中,所述ID和key具有預(yù)定的使用期限,并且在所述預(yù)定的使用期限期間所述ID是固定的。
[0020]優(yōu)選地,在本發(fā)明所公開的用于開放接口調(diào)用的認證方法中,在所述預(yù)定的使用期限期間,所述key能夠被周期性地更