本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種開放平臺的應(yīng)用接入方法。
背景技術(shù):
在互聯(lián)網(wǎng)時代,把網(wǎng)站的服務(wù)封裝成一系列計算機易識別的數(shù)據(jù)接口開放出去,供第三方開發(fā)者使用,這種行為就叫做開放API(Application Programming Interface,應(yīng)用程序編程接口),提供開放API的平臺本身就被稱為開放平臺。通過開放平臺,網(wǎng)站不僅能提供對Web網(wǎng)頁的簡單訪問,還可以進行復雜的數(shù)據(jù)交互,將它們的Web網(wǎng)站轉(zhuǎn)換為與操作系統(tǒng)等價的開發(fā)平臺。第三方開發(fā)者可以基于這些已經(jīng)存在的、公開的Web網(wǎng)站而開發(fā)豐富多彩的應(yīng)用。
但是,在使用開放平臺提供的基礎(chǔ)組件進行二次開發(fā)或是使用該開放平臺現(xiàn)有的一些用戶資源的過程中,由于缺乏安全驗證機制,給用戶帶來了安全隱患。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明提供了一種開放平臺的應(yīng)用接入方法,有效解決應(yīng)用接入過程中的安全性問題。
本發(fā)明提供的技術(shù)方案如下:
一種開放平臺的應(yīng)用接入方法,其特征在于,應(yīng)用于開放平臺服務(wù)端,所述應(yīng)用接入方法中包括:
S10 經(jīng)由開放平臺接收應(yīng)用端發(fā)送的應(yīng)用請求,所述應(yīng)用請求中包括應(yīng)用標識信息、應(yīng)用密鑰、訪問令牌以及請求參數(shù);
S20 根據(jù)接收的應(yīng)用請求對用戶進行授權(quán)驗證,并根據(jù)授權(quán)驗證結(jié)果將應(yīng)用驗證請求發(fā)送至應(yīng)用端;
S30 接收應(yīng)用端完成驗證之后返回的應(yīng)用密鑰并對其進行驗證;
S40 根據(jù)應(yīng)用密鑰驗證結(jié)果進一步驗證訪問令牌;
S50 根據(jù)訪問令牌驗證結(jié)果及請求參數(shù)執(zhí)行應(yīng)用請求并將響應(yīng)結(jié)果反饋至應(yīng)用端。
在本技術(shù)方案中,當需要進行應(yīng)用請求時,在通信安全層面,開放平臺服務(wù)端會先后對用戶進行授權(quán)驗證及對應(yīng)用密鑰進行認證,同時應(yīng)用端進行應(yīng)用驗證,以此建立應(yīng)用端與開放平臺之間的安全通信。在用戶安全層面,對訪問令牌進行進一步的驗證。只有以上驗證都成功了,開放平臺服務(wù)端才會響應(yīng)應(yīng)用請求。其從通信安全層面和用戶安全層面對應(yīng)用接入過程進行雙重保護,以此提高應(yīng)用接入過程中用戶的安全性能。
進一步優(yōu)選地,在步驟S10之前包括用戶在開放平臺中注冊的步驟,具體包括:
S01 用戶根據(jù)用戶信息在開放平臺中注冊,所述用戶信息包括用戶名和登錄密碼;
S02 用戶注冊成功后,開放平臺服務(wù)端為該用戶分配應(yīng)用標識信息及隨機生成應(yīng)用密鑰;
S03 開放平臺服務(wù)端將其反饋回開放平臺中并進行顯示,同時將應(yīng)用標識信息及應(yīng)用密鑰進行關(guān)聯(lián)存儲,且將存儲的應(yīng)用密鑰作為應(yīng)用驗證密鑰,得到預存用戶注冊列表。
在本技術(shù)方案中,用戶首先在開放平臺中進行注冊,以此保障應(yīng)用端與開放平臺之間的安全通信,且在注冊過程中,開放平臺自動分配相應(yīng)的應(yīng)用標識,同時返回應(yīng)用密鑰以授權(quán)用戶使用相關(guān)服務(wù)。
進一步優(yōu)選地,在步驟S10之前包括開放平臺生成訪問令牌的步驟,具體包括:
S04 接收用戶登錄開放平臺后發(fā)送的訪問令牌生成請求;
S05 隨機生成訪問令牌;
S06 限定訪問令牌的有效期限;
S07 將應(yīng)用標識信息與訪問令牌關(guān)聯(lián)存儲,且將存儲的訪問令牌作為訪問驗證令牌。
在本技術(shù)方案中,若用戶使用的服務(wù)涉及隱私或開放平臺中的收費服務(wù),則需要用戶登錄開放平臺,并獲取訪問令牌,以標識該用戶為授權(quán)用戶;與此同時,開放平臺中在有效期限內(nèi)保存在訪問令牌,若超過該有效期限,則訪問令牌失效,以此保證用戶的隱私和開放平臺的數(shù)據(jù)安全。
進一步優(yōu)選地,步驟S20中開發(fā)平臺服務(wù)端對用戶進行授權(quán)驗證的步驟具體為:開放平臺服務(wù)端根據(jù)預存用戶注冊列表對用戶進行授權(quán)驗證,所述預存用戶注冊列表中包括注冊用戶的應(yīng)用標識信息及與之唯一關(guān)聯(lián)的應(yīng)用密鑰;若授權(quán)驗證成功,則將應(yīng)用驗證請求發(fā)送至應(yīng)用端;若授權(quán)驗證失敗,則應(yīng)用接入操作結(jié)束。
在本技術(shù)方案中,開放平臺服務(wù)端根據(jù)接收到的應(yīng)用請求對用戶進行授權(quán)驗證。
進一步優(yōu)選地,在步驟S20中對用戶進行授權(quán)驗證之后,進一步包括數(shù)據(jù)平臺對應(yīng)用請求進行分析的步驟,具體包括:
S21 數(shù)據(jù)平臺調(diào)用日志文件對該應(yīng)用端發(fā)送應(yīng)用請求的頻率及應(yīng)用請求來源進行分析;若應(yīng)用端發(fā)送應(yīng)用請求的頻率超過預設(shè)頻率或應(yīng)用請求來源于非法渠道,則應(yīng)用接入操作結(jié)束。
在本技術(shù)方案中,數(shù)據(jù)平臺對應(yīng)用端發(fā)送應(yīng)用請求的頻率及應(yīng)用應(yīng)用請求的來源進行分析,若調(diào)用異常或發(fā)現(xiàn)來源于非法渠道,直接鎖定該用戶,以保障用戶賬號的安全性能。
進一步優(yōu)選地,在步驟S30中包括應(yīng)用端根據(jù)應(yīng)用驗證請求進行身份驗證的步驟,具體包括:
S31 接收應(yīng)用驗證請求,所述應(yīng)用驗證請求中包括訪問令牌;
S32 判斷應(yīng)用接口級別;
S33 若應(yīng)用接口級別為1,則進一步判斷應(yīng)用端中是否存在唯一標識應(yīng)用端的應(yīng)用標識信息;若存在,跳轉(zhuǎn)至步驟S35;若不存在,則應(yīng)用接入操作結(jié)束;
S34 若應(yīng)用接口級別大于1,則對訪問令牌進行驗證;若驗證成功,跳轉(zhuǎn)至步驟S35;若驗證不成功,將驗證失敗信息經(jīng)由開放平臺反饋至開放平臺服務(wù)端;
S35 將應(yīng)用密鑰經(jīng)由開放平臺發(fā)送至開放平臺服務(wù)端。
在本技術(shù)方案中,應(yīng)用端根據(jù)應(yīng)用接口級別對應(yīng)用標識或訪問令牌進行驗證,之后才進入后續(xù)步驟,以此保障應(yīng)用端與開放平臺之間的正常通信。
進一步優(yōu)選地,步驟S30中開放平臺服務(wù)端對應(yīng)用密鑰進行認證的步驟具體為:根據(jù)應(yīng)用標識信息查找到與之唯一關(guān)聯(lián)的應(yīng)用驗證密鑰,并將其與接收到的應(yīng)用密鑰進行比對,實現(xiàn)對應(yīng)用密鑰的驗證;若驗證成功,跳轉(zhuǎn)至步驟S40;若驗證失敗,則應(yīng)用接入操作結(jié)束。
在本技術(shù)方案中,開放平臺服務(wù)端在應(yīng)用端進行了應(yīng)用認證之后對應(yīng)用密鑰進行驗證,驗證成功后建立與應(yīng)用端之間的安全通信。
進一步優(yōu)選地,步驟S40中根據(jù)應(yīng)用密鑰驗證結(jié)果驗證訪問令牌的步驟具體為:根據(jù)應(yīng)用標識信息查找到與之唯一關(guān)聯(lián)的訪問驗證令牌,并將其與接收到的訪問令牌進行比對,實現(xiàn)對訪問令牌的驗證;若驗證成功,跳轉(zhuǎn)至步驟S50;若驗證失敗,則應(yīng)用接入操作結(jié)束。
進一步優(yōu)選地,在步驟S40對訪問令牌驗證結(jié)果處理的過程中,若驗證的結(jié)果為訪問驗證令牌/訪問令牌不存在,則反饋驗證失敗信息至開放平臺,開放平臺根據(jù)該驗證失敗信息生成令牌授權(quán)請求發(fā)送至應(yīng)用端,建立應(yīng)用端與開放平臺之間的會話連接,并將存儲的訪問令牌返回應(yīng)用端。
在本技術(shù)方案中,在用戶安全層面,若訪問令牌驗證失敗,則開放平臺重新請求會話連接,并將訪問令牌反饋應(yīng)用端,應(yīng)用端根據(jù)該訪問令牌重新發(fā)送應(yīng)用請求。
進一步優(yōu)選地,在步驟S40對訪問令牌驗證結(jié)果處理的過程中還包括對用戶的安全進行驗證的步驟,具體為:
S41 數(shù)據(jù)平臺根據(jù)用戶的應(yīng)用標識信息在黑名單中進行檢索;若用戶的應(yīng)用標識信息不在黑名單中,則該用戶安全,否則應(yīng)用接入操作結(jié)束。
在本技術(shù)方案中,在對訪問令牌驗證結(jié)果進行處理的過程中,數(shù)據(jù)平臺還會對用戶的安全性能進行進一步的驗證,以此判定用戶是否能夠使用開放平臺服務(wù)。
附圖說明
下面將以明確易懂的方式,結(jié)合附圖說明優(yōu)選實施方式,對上述特性、技術(shù)特征、優(yōu)點及其實現(xiàn)方式予以進一步說明。
圖1為本發(fā)明中開放平臺的應(yīng)用接入方法流程一種實施方式示意圖;
圖2為本發(fā)明中開放平臺的應(yīng)用接入方法流程另一種實施方式示意圖;
圖3為本發(fā)明中開放平臺的應(yīng)用接入方法流程另一種實施方式示意圖。
具體實施方式
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對照附圖說明本發(fā)明的具體實施方式。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖,并獲得其他的實施方式。
如圖1所示為本發(fā)明提供的開放平臺的應(yīng)用接入方法一種實施方式流程示意圖,應(yīng)用于開放平臺服務(wù)端,從圖中可以看出,在該應(yīng)用接入方法中包括:S10經(jīng)由開放平臺接收應(yīng)用端發(fā)送的應(yīng)用請求,應(yīng)用請求中包括應(yīng)用標識信息、應(yīng)用密鑰、訪問令牌以及請求參數(shù);S20根據(jù)接收的應(yīng)用請求對用戶進行授權(quán)驗證,并根據(jù)授權(quán)驗證結(jié)果將應(yīng)用驗證請求發(fā)送至應(yīng)用端;S30接收應(yīng)用端完成驗證之后返回的應(yīng)用密鑰并對其進行驗證;S40根據(jù)應(yīng)用密鑰驗證結(jié)果進一步驗證訪問令牌;S50根據(jù)訪問令牌驗證結(jié)果及請求參數(shù)執(zhí)行應(yīng)用請求并將響應(yīng)結(jié)果反饋至應(yīng)用端。
具體來說,當用戶需要在應(yīng)用端進行應(yīng)用操作時,則通過應(yīng)用端發(fā)送應(yīng)用請求,以此在通信安全層面,開放平臺服務(wù)端首先根據(jù)該應(yīng)用請求對用戶進行授權(quán)驗證;之后應(yīng)用端進行應(yīng)用驗證;接著開放平臺服務(wù)端對應(yīng)用密鑰進行認證,以此建立應(yīng)用端與開放平臺之間的安全通信。之后,在用戶安全層面,對訪問令牌進行進一步的驗證,以此提高應(yīng)用接入過程中用戶的安全性能。可見,在本發(fā)明中,在開放平臺上對職責進行了劃分,并在安全層面(包括通信安全層面和用戶安全層面)上進行了區(qū)分,以此保障用戶的安全。
進一步來說,在步驟S10之前包括用戶在開放平臺中注冊的步驟,具體包括:S01用戶根據(jù)用戶信息在開放平臺中注冊,用戶信息包括用戶名和登錄密碼;S02用戶注冊成功后,開放平臺服務(wù)端為該用戶分配應(yīng)用標識信息及隨機生成應(yīng)用密鑰;S03開放平臺服務(wù)端將其反饋回開放平臺中并進行顯示,同時將應(yīng)用標識信息及應(yīng)用密鑰進行關(guān)聯(lián)存儲,且將存儲的應(yīng)用密鑰作為應(yīng)用驗證密鑰,得到預存用戶注冊列表。
具體,在開放平臺中接入應(yīng)用之前,用戶首先使用用戶名和登錄密碼在開放平臺中進行注冊,以此保障應(yīng)用端與開放平臺之間的安全通信。在注冊過程中,開放平臺自動分配相應(yīng)的應(yīng)用標識(appkey),同時通過OAuth協(xié)議返回應(yīng)用密鑰(appsecret)以授權(quán)用戶使用相關(guān)服務(wù)。更具體來說,在注冊過程中,開放平臺服務(wù)端中根據(jù)用提交的用戶名和登錄密碼生成唯一標識該用戶的應(yīng)用標識信息,并隨之隨機生成應(yīng)用密鑰。
若用戶使用的服務(wù)涉及隱私或開放平臺中的收費服務(wù),則需要用戶登錄開放平臺,跳轉(zhuǎn)至登錄頁面獲取訪問令牌(sessionkey)以標識該用戶為授權(quán)用戶,具體包括:S04接收用戶登錄開放平臺后發(fā)送的訪問令牌生成請求;S05隨機生成訪問令牌;S06限定訪問令牌的有效期限;S07將應(yīng)用標識信息與訪問令牌關(guān)聯(lián)存儲(具體存儲在開放平臺SDK(Software Development Kit,軟件開發(fā)工具包),且將存儲的訪問令牌作為訪問驗證令牌。若超過該有效期限,則開放平臺中的訪問令牌失效,以此保證用戶的隱私和開放平臺的數(shù)據(jù)安全。在一個具體實例中,開放平臺中存儲該訪問令牌的有效期限為1天,則1天過后,該訪問令牌失效。在其他實例中,訪問令牌的有效期限根據(jù)實際情況進行設(shè)定,若還可以為2天、7天甚至更多。
在開放平臺注冊完成且獲得了訪問令牌之后,當需要進行應(yīng)用操作時,則通過應(yīng)用端將應(yīng)用請求發(fā)送至開放平臺。具體來說,在發(fā)送過程中,采用不可逆加密算法,如MD5(Message Digest Algorithm,消息摘要算法)算法對應(yīng)用標識和應(yīng)用密鑰進行加密,以保證應(yīng)用標識和應(yīng)用密鑰在傳輸過程中的安全。具體,在該過程中,發(fā)送端采用隨機生成的密鑰對數(shù)據(jù)摘要,并將原始數(shù)據(jù)、摘要信息以及密鑰一并發(fā)送至接收端,接收端在接收到發(fā)送端發(fā)送的數(shù)據(jù)之后,使用該密鑰對接收到的數(shù)據(jù)摘要,并將生成的摘要與接收到的摘要信息進行比對,若一致,則說明數(shù)據(jù)在傳輸過程中未被篡改。在這一過程中,發(fā)送端具體為開放平臺,接收端具體為開放平臺服務(wù)端。
開放平臺服務(wù)端在接收到應(yīng)用請求之后,對用戶進行授權(quán)驗證的步驟具體為:開放平臺服務(wù)端根據(jù)預存用戶注冊列表對用戶進行授權(quán)驗證,預存用戶注冊列表中包括注冊用戶的應(yīng)用標識信息及與之唯一關(guān)聯(lián)的應(yīng)用密鑰;若授權(quán)驗證成功,則將應(yīng)用驗證請求發(fā)送至應(yīng)用端;若授權(quán)驗證失敗,則應(yīng)用接入操作結(jié)束。
對上述實施方式進行改進,如圖2所示,開放平臺服務(wù)端對用戶進行授權(quán)驗證之后,數(shù)據(jù)平臺對應(yīng)用請求進行進一步分析,具體包括:S21數(shù)據(jù)平臺調(diào)用日志文件(log文件)對該應(yīng)用端發(fā)送應(yīng)用請求的頻率及應(yīng)用請求來源進行分析;若應(yīng)用端發(fā)送應(yīng)用請求的頻率超過預設(shè)頻率或應(yīng)用請求來源于非法渠道,則應(yīng)用接入操作結(jié)束。在一個實例中,若調(diào)用次數(shù)異常,如每秒內(nèi)超過300次并發(fā)(即將預設(shè)頻率設(shè)定為每秒300次),則將該用戶鎖定,加入黑名單。在另一實例中,若判定出該應(yīng)用請求來源于非法渠道,同樣將該用戶鎖定,加入黑名單。當然,用戶后續(xù)可對該鎖定狀態(tài)進行解鎖或?qū)诿麊芜M行申請解鎖,以繼續(xù)使用開放平臺服務(wù)。在其他實例中,還可以根據(jù)實際情況將預設(shè)頻率設(shè)定為其他值,如每秒200次、250次、350次甚至更多等。
若開放平臺服務(wù)端對用戶授權(quán)驗證成功,且數(shù)據(jù)平臺對其進行分析的結(jié)果為該用戶安全,則開發(fā)平臺服務(wù)端經(jīng)由開放平臺發(fā)送應(yīng)用驗證請求至應(yīng)用端,應(yīng)用端在接收到該驗證請求,進行身份驗證的步驟具體包括:S31接收應(yīng)用驗證請求,應(yīng)用驗證請求中包括訪問令牌;S32判斷應(yīng)用接口級別(API(Application Programming Interface,應(yīng)用程序編程接口)級別);S33若應(yīng)用接口級別為1,則進一步判斷應(yīng)用端中是否存在唯一標識應(yīng)用端的應(yīng)用標識信息;若存在,跳轉(zhuǎn)至步驟S35;若不存在,則應(yīng)用接入操作結(jié)束;S34若應(yīng)用接口級別大于1,則對訪問令牌進行驗證;若驗證成功,跳轉(zhuǎn)至步驟S35;若驗證不成功,將驗證失敗信息經(jīng)由開放平臺反饋至開放平臺服務(wù)端;S35將應(yīng)用密鑰經(jīng)由開放平臺發(fā)送至開放平臺服務(wù)端。
應(yīng)用端進行了身份認證之后,將應(yīng)用密鑰反饋給開放平臺服務(wù)端,開放平臺服務(wù)端接收到應(yīng)用密鑰并對其進行認證的步驟具體為:根據(jù)應(yīng)用標識信息查找到與之唯一關(guān)聯(lián)的應(yīng)用驗證密鑰,并將其與接收到的應(yīng)用密鑰進行比對,實現(xiàn)對應(yīng)用密鑰的驗證;若驗證成功,跳轉(zhuǎn)至步驟S40,以此建立應(yīng)用端與開放平臺服務(wù)端之間的安全通信;若驗證失敗,則應(yīng)用接入操作結(jié)束。
開放平臺服務(wù)端對應(yīng)用密鑰認證成功之后,在步驟S40中,開放平臺服務(wù)端進一步對訪問令牌進行認證,具體為:開放平臺服務(wù)端根據(jù)應(yīng)用標識信息查找到與之唯一關(guān)聯(lián)的訪問驗證令牌,并將其與接收到的訪問令牌進行比對,實現(xiàn)對訪問令牌的驗證;若驗證成功,跳轉(zhuǎn)至步驟S50;若驗證失敗,則應(yīng)用接入操作結(jié)束。
在該應(yīng)用安全層面開放平臺服務(wù)端對訪問令牌驗證結(jié)果處理的過程中,若驗證的結(jié)果為訪問驗證令牌/訪問令牌不存在(這里的驗證結(jié)果包括應(yīng)用端進行應(yīng)用驗證的過程中對訪問令牌的驗證結(jié)果),則反饋驗證失敗信息至開放平臺。開放平臺接收到該驗證失敗信息之后,根據(jù)該驗證失敗信息生成令牌授權(quán)請求發(fā)送至應(yīng)用端,建立應(yīng)用端與開放平臺之間的會話連接,并將存儲的訪問令牌返回應(yīng)用端,以此應(yīng)用端中重新生成應(yīng)用請求發(fā)送至開放平臺服務(wù)端。
對上述實施方式進行改進,如圖3所示,在步驟S40中,對訪問令牌驗證結(jié)果處理的過程中還包括對用戶的安全進行驗證的步驟,具體為:S41數(shù)據(jù)平臺根據(jù)用戶的應(yīng)用標識信息在黑名單中進行檢索;若用戶的應(yīng)用標識信息不在黑名單中,則該用戶安全,否則應(yīng)用接入操作結(jié)束。
最后,訪問令牌在驗證成功之后,在應(yīng)用請求響應(yīng)層面,開放平臺服務(wù)端根據(jù)請求參數(shù)調(diào)用應(yīng)用端的應(yīng)用接口執(zhí)行應(yīng)用請求,且將應(yīng)用請求執(zhí)行結(jié)果返回至開放平臺應(yīng)用端,結(jié)束開放平臺的應(yīng)用接入。
可見,在本發(fā)明中,在開放平臺上對職責進行了劃分(包括應(yīng)用端、開放平臺、開放平臺服務(wù)端以及數(shù)據(jù)平臺),并在安全層面(包括通信安全層面和用戶安全層面)上進行了區(qū)分,同時引入了用戶行為分析,確保應(yīng)用接入過程中的安全性能。
應(yīng)當說明的是,上述實施例均可根據(jù)需要自由組合。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。