專利名稱:基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證方法和系統(tǒng),屬于網(wǎng)絡(luò)技術(shù)。
背景技術(shù):
目前,大多數(shù)互聯(lián)網(wǎng)開放平臺(tái)采用OAuth協(xié)議對(duì)第三方應(yīng)用實(shí)現(xiàn)鑒權(quán)和認(rèn)證。 OAuth是一種開放的協(xié)議,為桌面應(yīng)用或者基于B/S模式的WWW應(yīng)用提供了一種簡(jiǎn)單、標(biāo)準(zhǔn)的方式訪問需要用戶授權(quán)的API服務(wù),任何第三方應(yīng)用在訪問用戶資源時(shí)都需要經(jīng)過用戶認(rèn)證同意后方可訪問,這樣保證了用戶數(shù)據(jù)的隱私保密。由于其安全、開發(fā)簡(jiǎn)單易行,很多互聯(lián)網(wǎng)廠商如Google、雅虎、新浪、騰訊在建設(shè)開放平臺(tái)時(shí)都提供了 OAuth認(rèn)證服務(wù)。在OAuth協(xié)議框架中,主要包括三類角色Service Provider, OAuth服務(wù)的服務(wù)提供者,由開放平臺(tái)負(fù)責(zé)提供服務(wù)API供第三方應(yīng)用進(jìn)行調(diào)用;Consumer,OAuth服務(wù)的消費(fèi)者或使用者,是指調(diào)用開放平臺(tái)服務(wù)API的第三方應(yīng)用;User,用戶,使用第三方應(yīng)用的最終用戶。開放平臺(tái)需要對(duì)第三方應(yīng)用提供完整的應(yīng)用開發(fā)、測(cè)試、上線流程和操作界面。 首先,第三方應(yīng)用的開發(fā)者需要在開放平臺(tái)側(cè)注冊(cè)一個(gè)應(yīng)用和填寫應(yīng)用信息,注冊(cè)成功后從開放平臺(tái)獲取該應(yīng)用的第三方應(yīng)用標(biāo)識(shí)(對(duì)應(yīng)OAuth協(xié)議中的參數(shù)名稱為oauth_ consumer_key),和對(duì)應(yīng)這個(gè)第三方應(yīng)用標(biāo)識(shí)的應(yīng)用密鑰(對(duì)應(yīng)OAuth協(xié)議中的參數(shù)名為 oauth_consumer_secret),經(jīng)過開發(fā)、測(cè)試、審核后上線發(fā)布,就可以提供給用戶使用了。第三方應(yīng)用在訪問開放平臺(tái)的服務(wù)API時(shí)需要先通過OAuth認(rèn)證依次向OAuth 的3個(gè)服務(wù)地址發(fā)送認(rèn)證請(qǐng)求,并在OAuth認(rèn)證成功后發(fā)送調(diào)用開放平臺(tái)的服務(wù)API的訪問請(qǐng)求,上述步驟都需要按照約定加密算法對(duì)每個(gè)請(qǐng)求消息進(jìn)行簽名(oauttusignature), 其中開放平臺(tái)通過對(duì)請(qǐng)求消息中攜帶的第三方應(yīng)用標(biāo)識(shí)、請(qǐng)求簽名等參數(shù)來識(shí)別第三方應(yīng)用,從而避免第三方應(yīng)用身份被偽造而非法調(diào)用開放平臺(tái)的服務(wù)API。其中,OAuth協(xié)議的認(rèn)證授權(quán)過程及所涉及的3個(gè)服務(wù)地址如下1、第三方應(yīng)用向開放平臺(tái)的Request Token URL地址發(fā)送請(qǐng)求,獲取未授權(quán)的 Request Token ;2、第三方應(yīng)用向開放平臺(tái)的her Authorization URL地址發(fā)送請(qǐng)求,獲取用戶授權(quán)的 Request Token ;3、第三方應(yīng)用向開放平臺(tái)的Access Token URL地址發(fā)送請(qǐng)求,用授權(quán)的Request Token 換取 Access Token。根據(jù)第三方應(yīng)用向最終用戶的服務(wù)提供方式,可將應(yīng)用場(chǎng)景分為以下兩種模式1、客戶端模式,所述終端多為手機(jī)終端或桌面終端。用戶在使用這類應(yīng)用時(shí),在手機(jī)、或PC瀏覽器、或PC客戶端上直接運(yùn)行含有開放平臺(tái)服務(wù)API的第三方應(yīng)用。這種模式下用戶首先需要從開放平臺(tái)提供的類似應(yīng)用門戶上下載需要的第三方應(yīng)用程序到本地進(jìn)行安裝配置。其特點(diǎn)是第三方應(yīng)用同終端直接遠(yuǎn)程訪問開放平臺(tái)提供的服務(wù)API來滿足用
4戶需求。因此客戶端模式下的應(yīng)用用戶量越大,第三方應(yīng)用程序副本的下載數(shù)量和在不同終端上的第三方應(yīng)用運(yùn)行實(shí)例數(shù)量就會(huì)越多。2、服務(wù)器模式,用戶需要通過web瀏覽器、或定制客戶端訪問網(wǎng)絡(luò)服務(wù)器上的第三方應(yīng)用,再通過網(wǎng)絡(luò)服務(wù)器上的第三方應(yīng)用來訪問開放平臺(tái)服務(wù)API。網(wǎng)絡(luò)側(cè)的第三方應(yīng)用的服務(wù)平臺(tái)由開發(fā)者構(gòu)架和部署,比如完全基于開放平臺(tái)來實(shí)現(xiàn)應(yīng)用、或者采用插件方式開發(fā)應(yīng)用嵌入到開發(fā)者自己的服務(wù)程序中從而實(shí)現(xiàn)各類應(yīng)用的混搭。服務(wù)器模式下的第三方應(yīng)用通常會(huì)提供給行業(yè)客戶或者企業(yè)集團(tuán)客戶來使用,因此第三方應(yīng)用運(yùn)行實(shí)例的數(shù)量不受最終用戶數(shù)量的影響,而是由不同行業(yè)客戶或者企業(yè)集團(tuán)客戶的數(shù)量來決定的。標(biāo)準(zhǔn)OAuth認(rèn)證過程適用于第三方應(yīng)用作為相同的資源運(yùn)行實(shí)體向用戶服務(wù),或者所開發(fā)的應(yīng)用限于用戶自己使用,用戶采用瀏覽器或桌面客戶端使用第三方應(yīng)用時(shí),開放平臺(tái)對(duì)用戶和第三方應(yīng)用標(biāo)識(shí)進(jìn)行認(rèn)證和鑒權(quán)。但隨著開放平臺(tái)應(yīng)用范圍越來越廣泛, 特別是在移動(dòng)互聯(lián)網(wǎng)環(huán)境下,出現(xiàn)了一些新的應(yīng)用場(chǎng)景需要考慮。開發(fā)者基于開放平臺(tái)所開發(fā)的第三方應(yīng)用程序副本將會(huì)被大量下載,并安裝在數(shù)量規(guī)模巨大的硬件終端上為移動(dòng)互聯(lián)網(wǎng)提供服務(wù);同時(shí),一個(gè)用戶會(huì)擁有不同類型的硬件終端,如移動(dòng)終端和個(gè)人電腦PC, 用戶會(huì)從不同的硬件終端上發(fā)起對(duì)同一個(gè)第三方應(yīng)用服務(wù)的訪問請(qǐng)求。由于OAuth協(xié)議采用相同的第三方應(yīng)用標(biāo)識(shí)oauth_consumer_key、應(yīng)用密鑰oauth_consumer_secret禾口對(duì)應(yīng)的簽名oauttusignature來訪問開放平臺(tái)服務(wù)API,這種情況下,存在著大量的第三方應(yīng)用運(yùn)行實(shí)例采用相同的第三方應(yīng)用標(biāo)識(shí)oauth_consumer_key和簽名oauth_signature訪問開放平臺(tái),開放平臺(tái)僅通過第三方應(yīng)用標(biāo)識(shí)對(duì)來自各個(gè)終端用戶的訪問請(qǐng)求進(jìn)行認(rèn)證和鑒權(quán)很難保證服務(wù)的安全性,對(duì)不同用戶的訪問請(qǐng)求也很難區(qū)分,存在有一定的安全隱患,如果其中一個(gè)被破解,則大量用戶使用同類型的第三方應(yīng)用運(yùn)行實(shí)例就會(huì)不攻自破,從而威脅的各方安全。同時(shí),不同類型的開放平臺(tái)會(huì)提供各自有特色類型服務(wù)API,典型的如電信能力開放平臺(tái)中會(huì)提供短信服務(wù)API、彩信服務(wù)API,定位、GIS等位置服務(wù)API等。首先,第三方應(yīng)用所訪問的服務(wù)API有計(jì)費(fèi)要求;其次,開放平臺(tái)為吸引更多用戶使用基于開放平臺(tái)的第三方應(yīng)用,刺激使用量,通常需要靈活的計(jì)費(fèi)策略和對(duì)第三方應(yīng)用、或用戶進(jìn)行準(zhǔn)確計(jì)費(fèi)來配合使用,如在平臺(tái)運(yùn)營(yíng)初期在低于某種訪問量或訪問頻率情況下免費(fèi)提供服務(wù),而高于某個(gè)閥值后采用按需計(jì)費(fèi)的方式。對(duì)于有計(jì)費(fèi)要求的移動(dòng)互聯(lián)網(wǎng)能力開放平臺(tái)來說,也無法根據(jù)第三方應(yīng)用標(biāo)識(shí)來實(shí)現(xiàn)對(duì)用戶和第三方應(yīng)用運(yùn)行實(shí)例進(jìn)行準(zhǔn)確計(jì)費(fèi)和訪問統(tǒng)計(jì), 存在服務(wù)缺陷。因此,如何對(duì)存在有多個(gè)第三方應(yīng)用運(yùn)行實(shí)例的業(yè)務(wù)場(chǎng)景進(jìn)行精確認(rèn)證和鑒權(quán)? 仍是一個(gè)急需要解決的技術(shù)難題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證方法和系統(tǒng),能對(duì)存在有多個(gè)第三方應(yīng)用運(yùn)行實(shí)例的業(yè)務(wù)場(chǎng)景進(jìn)行精確認(rèn)證和鑒權(quán)。為了達(dá)到上述目的,本發(fā)明提供了一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證方法,所述方法包括有步驟一、開放平臺(tái)檢查第三方應(yīng)用裝置發(fā)來的申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求中,是否攜帶有和開放平臺(tái)上保存一致的應(yīng)用實(shí)例標(biāo)識(shí)信息,如果沒有,則為所述第三方應(yīng)用裝置分配新的應(yīng)用實(shí)例標(biāo)識(shí),并將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的 Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置;步驟二、第三方應(yīng)用裝置將開放平臺(tái)返回的應(yīng)用實(shí)例標(biāo)識(shí)更新到本地,并繼續(xù)攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)進(jìn)行后續(xù)的OAuth認(rèn)證請(qǐng)求,開放平臺(tái)通過第三方應(yīng)用裝置發(fā)來的應(yīng)用實(shí)例標(biāo)識(shí)引導(dǎo)用戶對(duì)資源授權(quán),然后根據(jù)應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)對(duì)第三方應(yīng)用裝置認(rèn)證通過后,向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰。為了達(dá)到上述目的,本發(fā)明還提供了一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證系統(tǒng),包括有開放平臺(tái)和若干個(gè)第三方應(yīng)用裝置,所述開放平臺(tái)和第三方應(yīng)用裝置通過網(wǎng)絡(luò)相連,所述開放平臺(tái)進(jìn)一步包括有認(rèn)證授權(quán)單元,用于接收、并檢查第三方應(yīng)用裝置發(fā)來的申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求中,是否攜帶有和開放平臺(tái)上保存一致的應(yīng)用實(shí)例標(biāo)識(shí)信息,如果沒有, 則為所述第三方應(yīng)用裝置分配新的應(yīng)用實(shí)例標(biāo)識(shí),并將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置;然后根據(jù)第三方應(yīng)用裝置在后續(xù)OAuth認(rèn)證請(qǐng)求中所攜帶的應(yīng)用實(shí)例標(biāo)識(shí),引導(dǎo)用戶對(duì)資源進(jìn)行授權(quán),最后根據(jù)應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)信息對(duì)第三方應(yīng)用裝置認(rèn)證通過后,向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是本發(fā)明通過擴(kuò)展OAuth協(xié)議的參數(shù),增加應(yīng)用實(shí)例標(biāo)識(shí)oauth_Consumer_key_id對(duì)每個(gè)第三方應(yīng)用裝置(即第三方應(yīng)用運(yùn)行實(shí)例) 進(jìn)行標(biāo)識(shí),開放平臺(tái)認(rèn)證和鑒權(quán)的對(duì)象是第三方應(yīng)用裝置,從而實(shí)現(xiàn)了對(duì)多個(gè)第三方應(yīng)用運(yùn)行實(shí)例的業(yè)務(wù)場(chǎng)景進(jìn)行精確認(rèn)證和鑒權(quán);并且還可以根據(jù)第三方應(yīng)用裝置在認(rèn)證成功后,通過開放平臺(tái)的服務(wù)API訪問用戶授權(quán)的資源時(shí)所攜帶的應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí),對(duì)第三方應(yīng)用和最終用戶的服務(wù)請(qǐng)求進(jìn)行記錄和統(tǒng)計(jì),從而具有靈活計(jì)費(fèi)能力。
圖1是本發(fā)明一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證方法的流程圖。圖2是圖1所示方法實(shí)施例的信令流程圖。圖3是本發(fā)明一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證系統(tǒng)的實(shí)施例的組成結(jié)構(gòu)示意圖。圖4是開放平臺(tái)的組成結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。針對(duì)上述移動(dòng)、互聯(lián)網(wǎng)的典型應(yīng)用場(chǎng)景,本發(fā)明通過擴(kuò)展OAuth協(xié)議的參數(shù)應(yīng)用實(shí)例標(biāo)識(shí)oauth_Consumer_key_id,來對(duì)每個(gè)訪問開放平臺(tái)的第三方應(yīng)用裝置進(jìn)行標(biāo)識(shí)。如圖1所示,本發(fā)明一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證方法,包括有步驟一、當(dāng)用戶向第三方應(yīng)用裝置發(fā)出訪問開放平臺(tái)的資源請(qǐng)求時(shí),第三方應(yīng)用裝置檢查本地是否已分配有應(yīng)用實(shí)例標(biāo)識(shí)?如果有,則攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)向開放平臺(tái)的Request Token URL地址發(fā)起申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求;如果沒有,則直接向開放平臺(tái)的Request Token URL地址發(fā)起申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求;步驟二、開放平臺(tái)檢查第三方應(yīng)用裝置發(fā)來的申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求中,是否攜帶有和開放平臺(tái)上保存一致的應(yīng)用實(shí)例標(biāo)識(shí)信息,如果沒有,則為所述第三方應(yīng)用裝置分配新的應(yīng)用實(shí)例標(biāo)識(shí),并將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的 Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置;步驟三、第三方應(yīng)用裝置將開放平臺(tái)返回的應(yīng)用實(shí)例標(biāo)識(shí)更新到本地,并繼續(xù)攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)進(jìn)行后續(xù)的OAuth認(rèn)證請(qǐng)求,開放平臺(tái)通過第三方應(yīng)用裝置發(fā)來的應(yīng)用實(shí)例標(biāo)識(shí)引導(dǎo)用戶對(duì)資源授權(quán),然后根據(jù)應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)對(duì)第三方應(yīng)用裝置認(rèn)證通過后,向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰;步驟四、第三方應(yīng)用裝置在認(rèn)證成功后,攜帶應(yīng)用實(shí)例標(biāo)識(shí)、第三方應(yīng)用標(biāo)識(shí)和 Access Token等參數(shù)信息,通過開放平臺(tái)的服務(wù)API訪問用戶授權(quán)的資源,開放平臺(tái)根據(jù)所述應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí),對(duì)第三方應(yīng)用和最終用戶的服務(wù)請(qǐng)求進(jìn)行記錄,所述記錄信息可以用于計(jì)費(fèi)。在Access Token有效期內(nèi),第三方應(yīng)用裝置可以直接通過開放平臺(tái)的服務(wù)API訪問用戶已授權(quán)的資源;開放平臺(tái)根據(jù)所述應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí),對(duì)用戶的服務(wù)請(qǐng)求進(jìn)行記錄、并計(jì)費(fèi)。所述第三方應(yīng)用裝置,即第三方應(yīng)用運(yùn)行實(shí)例,是下載、并安裝有第三方應(yīng)用程序副本的硬件終端。所述硬件終端可以是手機(jī)、計(jì)算機(jī)、網(wǎng)絡(luò)服務(wù)器等。根據(jù)本發(fā)明方法,開放平臺(tái)認(rèn)證和鑒權(quán)的對(duì)象是每一個(gè)第三方應(yīng)用裝置,也即是,在不同終端上的第三方應(yīng)用運(yùn)行實(shí)例。所述應(yīng)用實(shí)例標(biāo)識(shí)由開放平臺(tái)統(tǒng)一生成。值得注意的是,所述第三方應(yīng)用標(biāo)識(shí)用于對(duì)不同的第三方應(yīng)用進(jìn)行標(biāo)識(shí),而應(yīng)用實(shí)例標(biāo)識(shí)用于對(duì)每個(gè)第三方應(yīng)用的不同第三方應(yīng)用裝置進(jìn)行標(biāo)識(shí)。由于一個(gè)開放平臺(tái)可能有上百個(gè)第三方應(yīng)用,而每個(gè)第三方應(yīng)用又對(duì)應(yīng)于上萬的用戶,這樣當(dāng)幾百萬用戶同時(shí)發(fā)起訪問請(qǐng)求時(shí),為確保開放平臺(tái)能對(duì)每個(gè)第三方應(yīng)用裝置進(jìn)行有效的認(rèn)證和鑒權(quán),具有相同第三方應(yīng)用標(biāo)識(shí)的不同第三方應(yīng)用裝置的應(yīng)用實(shí)例標(biāo)識(shí)應(yīng)具有唯一性,即在通過第三方應(yīng)用標(biāo)識(shí)對(duì)每個(gè)第三方應(yīng)用進(jìn)行標(biāo)示的前提下,進(jìn)一步通過應(yīng)用實(shí)例標(biāo)識(shí)對(duì)同一個(gè)第三方應(yīng)用的不同第三方應(yīng)用裝置進(jìn)行標(biāo)示。所述應(yīng)用實(shí)例標(biāo)識(shí)可以采用時(shí)間序列加序列號(hào)/或隨機(jī)數(shù)的方式表示,如采用 "YYYYMMDDHHMMSS"(年月日時(shí)分秒)+4位隨機(jī)號(hào)碼。所述步驟二進(jìn)一步包括有步驟21、開放平臺(tái)接收第三方應(yīng)用裝置發(fā)來的申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求,檢查所述訪問請(qǐng)求中是否攜帶有應(yīng)用實(shí)例標(biāo)識(shí)?如果有,繼續(xù)步驟22 ;如果無,則繼續(xù)步驟23 ;步驟22、開放平臺(tái)檢查所述應(yīng)用實(shí)例標(biāo)識(shí)是否和開放平臺(tái)上保存的應(yīng)用實(shí)例標(biāo)識(shí)一致?如果是,則將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的 token密鑰返回給第三方應(yīng)用裝置;如果否,則繼續(xù)步驟23 ;步驟23、開放平臺(tái)生成、并保存新的應(yīng)用實(shí)例標(biāo)識(shí),然后將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置。
7
所述步驟三進(jìn)一步包括有步驟31、第三方應(yīng)用裝置將開放平臺(tái)返回的應(yīng)用實(shí)例標(biāo)識(shí)更新到本地,并攜帶應(yīng)用實(shí)例標(biāo)識(shí),向開放平臺(tái)發(fā)出請(qǐng)求用戶授權(quán)的Request Token的訪問請(qǐng)求,開放平臺(tái)根據(jù)所述應(yīng)用實(shí)例標(biāo)識(shí),引導(dǎo)用戶對(duì)第三方應(yīng)用裝置所訪問的資源進(jìn)行授權(quán),最后向第三方應(yīng)用裝置返回用戶授權(quán)的Request Token ;步驟32、第三方應(yīng)用裝置攜帶應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí),向開放平臺(tái)發(fā)出將授權(quán)Request Token換取成Access Token的請(qǐng)求,開放平臺(tái)根據(jù)所述應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)信息,查詢對(duì)應(yīng)的用戶授權(quán)的Request Token,對(duì)所述請(qǐng)求認(rèn)證鑒權(quán)通過后, 向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰。圖2是圖1所示方法實(shí)施例的信令流程圖,詳細(xì)介紹如下步驟1、用戶通過第三方應(yīng)用裝置的訪問界面,向第三方應(yīng)用裝置發(fā)出訪問服務(wù)的請(qǐng)求,所述服務(wù)需要訪問保存在開放平臺(tái)上的數(shù)據(jù)資源或網(wǎng)絡(luò)能力;步驟2、第三方應(yīng)用裝置攜帶應(yīng)用實(shí)例標(biāo)識(shí),向開放平臺(tái)的Request Token URL地址發(fā)起申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求;步驟3、開放平臺(tái)檢查所述申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求中是否攜帶有應(yīng)用實(shí)例標(biāo)識(shí),并向第三方應(yīng)用裝置返回應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰;步驟4、第三方應(yīng)用裝置將開放平臺(tái)返回的應(yīng)用實(shí)例標(biāo)識(shí)更新到本地,然后向開放平臺(tái)的her Authorization URL地址發(fā)起請(qǐng)求用戶授權(quán)的Request Token的訪問請(qǐng)求,所述訪問請(qǐng)求中攜帶有應(yīng)用實(shí)例標(biāo)識(shí),未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰;步驟5、開放平臺(tái)根據(jù)所述應(yīng)用實(shí)例標(biāo)識(shí),引導(dǎo)用戶對(duì)第三方應(yīng)用裝置所訪問的數(shù)據(jù)資源或網(wǎng)絡(luò)能力進(jìn)行授權(quán);步驟6、用戶可通過用戶名/密碼或驗(yàn)證碼等方式,授權(quán)第三方應(yīng)用裝置可以訪問所述數(shù)據(jù)資源或網(wǎng)絡(luò)能力;步驟7、開放平臺(tái)向第三方應(yīng)用裝置返回用戶授權(quán)的Request Token ;步驟8、第三方應(yīng)用裝置向開放平臺(tái)的Access Token URL地址發(fā)起將授權(quán)Request Token換取成Access Token的請(qǐng)求,所述請(qǐng)求中攜帶有應(yīng)用實(shí)例標(biāo)識(shí);步驟9、開放平臺(tái)根據(jù)應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí),查詢對(duì)應(yīng)的用戶授權(quán)的 Request Token,對(duì)所述請(qǐng)求認(rèn)證鑒權(quán)通過后,向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰;步驟10、第三方應(yīng)用裝置攜帶應(yīng)用實(shí)例標(biāo)識(shí)、第三方應(yīng)用標(biāo)識(shí)、Access Token等參數(shù)信息,通過開放平臺(tái)的服務(wù)API訪問用戶授權(quán)的資源;步驟11、開放平臺(tái)的服務(wù)API向第三方應(yīng)用裝置返回調(diào)用的數(shù)據(jù)資源;步驟12、第三方應(yīng)用裝置向用戶完成本次服務(wù)。如圖3所示,本發(fā)明一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證系統(tǒng),包括有開放平
臺(tái)和若干個(gè)第三方應(yīng)用裝置(如第三方應(yīng)用裝置1、第三方應(yīng)用裝置2.....第三方應(yīng)用裝
置η),所述開放平臺(tái)和第三方應(yīng)用裝置通過網(wǎng)絡(luò)相連。其中,第三方應(yīng)用裝置可以采取客戶端、或者服務(wù)器模式,例如第三方應(yīng)用裝置1和第三方應(yīng)用裝置η分別是用戶1和用戶m的手機(jī)或計(jì)算機(jī),第三方應(yīng)用裝置2是網(wǎng)絡(luò)服務(wù)器;用戶可以從不同硬件終端發(fā)起對(duì)同一個(gè)第三方應(yīng)用的訪問請(qǐng)求,例如用戶1分別從第三方應(yīng)用裝置1、或者第三方應(yīng)用裝置2發(fā)出訪問請(qǐng)求。如圖4所示,開放平臺(tái)還可以進(jìn)一步包括有認(rèn)證授權(quán)單元和計(jì)費(fèi)單元,其中認(rèn)證授權(quán)單元,用于接收、并檢查第三方應(yīng)用裝置發(fā)來的申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求中,是否攜帶有和開放平臺(tái)上保存一致的應(yīng)用實(shí)例標(biāo)識(shí)信息,如果沒有, 則為所述第三方應(yīng)用裝置分配新的應(yīng)用實(shí)例標(biāo)識(shí),并將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置;然后根據(jù)第三方應(yīng)用裝置在后續(xù)OAuth認(rèn)證請(qǐng)求中所攜帶的應(yīng)用實(shí)例標(biāo)識(shí),引導(dǎo)用戶對(duì)資源進(jìn)行授權(quán),最后根據(jù)應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)信息對(duì)第三方應(yīng)用裝置認(rèn)證通過后,向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰;計(jì)費(fèi)單元,用于在第三方應(yīng)用裝置認(rèn)證成功后,根據(jù)第三方應(yīng)用裝置通過開放平臺(tái)的服務(wù)API訪問用戶授權(quán)的資源時(shí)所攜帶的應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)信息,對(duì)第三方應(yīng)用和最終用戶的服務(wù)請(qǐng)求進(jìn)行記錄、并計(jì)費(fèi)。所述第三方應(yīng)用裝置,是下載、并安裝有第三方應(yīng)用程序副本的硬件終端,用于接收用戶發(fā)來的訪問開放平臺(tái)的資源請(qǐng)求,并檢查本地是否已分配有應(yīng)用實(shí)例標(biāo)識(shí),如果有,則攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)向開放平臺(tái)的Request Token URL地址發(fā)起申請(qǐng)未授權(quán)的 Request Token的訪問請(qǐng)求;將開放平臺(tái)返回的應(yīng)用實(shí)例標(biāo)識(shí)更新至本地,并攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)進(jìn)行后續(xù)的OAuth認(rèn)證請(qǐng)求。所述開放平臺(tái)和第三方應(yīng)用裝置可以通過互聯(lián)網(wǎng)、或移動(dòng)網(wǎng)相連,所述第三方應(yīng)用裝置可以是手機(jī)、計(jì)算機(jī)、網(wǎng)絡(luò)服務(wù)器。值得說明的是,當(dāng)重新下載、并在終端上安裝第三方應(yīng)用程序副本時(shí),原有第三方應(yīng)用裝置對(duì)應(yīng)的應(yīng)用實(shí)例標(biāo)識(shí)會(huì)成為開放平臺(tái)的垃圾數(shù)據(jù),需要定時(shí)清除。因此,可以采用應(yīng)用實(shí)例標(biāo)識(shí)與Access Token相同的有效期,這樣當(dāng)Access Token失效時(shí),應(yīng)用實(shí)例標(biāo)識(shí)同樣做失效處理,開放平臺(tái)定期清除失效的應(yīng)用實(shí)例標(biāo)識(shí)信息,從而優(yōu)化系統(tǒng)環(huán)境。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證方法,其特征在于,所述方法包括有步驟一、開放平臺(tái)檢查第三方應(yīng)用裝置發(fā)來的申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求中,是否攜帶有和開放平臺(tái)上保存一致的應(yīng)用實(shí)例標(biāo)識(shí)信息,如果沒有,則為所述第三方應(yīng)用裝置分配新的應(yīng)用實(shí)例標(biāo)識(shí),并將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置;步驟二、第三方應(yīng)用裝置將開放平臺(tái)返回的應(yīng)用實(shí)例標(biāo)識(shí)更新到本地,并繼續(xù)攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)進(jìn)行后續(xù)的OAuth認(rèn)證請(qǐng)求,開放平臺(tái)通過第三方應(yīng)用裝置發(fā)來的應(yīng)用實(shí)例標(biāo)識(shí)引導(dǎo)用戶對(duì)資源授權(quán),然后根據(jù)應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)對(duì)第三方應(yīng)用裝置認(rèn)證通過后,向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第三方應(yīng)用裝置,是下載、并安裝有第三方應(yīng)用程序副本的硬件終端,所述硬件終端可以是手機(jī)、計(jì)算機(jī)、或者網(wǎng)絡(luò)服務(wù)器。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)在第三方應(yīng)用裝置上重新下載、并安裝第三方應(yīng)用程序副本時(shí),原有第三方應(yīng)用裝置對(duì)應(yīng)的應(yīng)用實(shí)例標(biāo)識(shí)需定時(shí)清除,所述應(yīng)用實(shí)例標(biāo)識(shí)采用與Access Token相同的有效期,這樣當(dāng)Access Token失效時(shí),應(yīng)用實(shí)例標(biāo)識(shí)同樣做失效處理,開放平臺(tái)定期清除失效的應(yīng)用實(shí)例標(biāo)識(shí)信息。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用實(shí)例標(biāo)識(shí)由開放平臺(tái)統(tǒng)一生成, 用于對(duì)每個(gè)第三方應(yīng)用的不同第三方應(yīng)用裝置進(jìn)行標(biāo)識(shí),具有相同第三方應(yīng)用標(biāo)識(shí)的不同第三方應(yīng)用裝置的應(yīng)用實(shí)例標(biāo)識(shí)具有唯一性,所述應(yīng)用實(shí)例標(biāo)識(shí)可以采用時(shí)間序列加序列號(hào)或隨機(jī)數(shù)的方式表示。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括有當(dāng)用戶向第三方應(yīng)用裝置發(fā)出訪問開放平臺(tái)的資源請(qǐng)求時(shí),第三方應(yīng)用裝置檢查本地是否已分配有應(yīng)用實(shí)例標(biāo)識(shí)?如果有,則攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)向開放平臺(tái)的Request TokenURL地址發(fā)起申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求;如果沒有,則直接向開放平臺(tái)的Request Token URL地址發(fā)起申請(qǐng)未授權(quán)的Request iToken的訪問請(qǐng)求。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括有第三方應(yīng)用裝置在認(rèn)證成功后,攜帶應(yīng)用實(shí)例標(biāo)識(shí)、第三方應(yīng)用標(biāo)識(shí)和Access Token 參數(shù)信息,通過開放平臺(tái)的服務(wù)API訪問用戶授權(quán)的資源,開放平臺(tái)根據(jù)所述應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí),對(duì)第三方應(yīng)用和最終用戶的服務(wù)請(qǐng)求進(jìn)行記錄,所述記錄信息可以用于計(jì)費(fèi)。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟一進(jìn)一步包括有步驟11、開放平臺(tái)接收第三方應(yīng)用裝置發(fā)來的申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求,檢查所述訪問請(qǐng)求中是否攜帶有應(yīng)用實(shí)例標(biāo)識(shí)?如果有,繼續(xù)步驟12 ;如果無,則繼續(xù)步驟13 ;步驟12、開放平臺(tái)檢查所述應(yīng)用實(shí)例標(biāo)識(shí)是否和開放平臺(tái)上保存的應(yīng)用實(shí)例標(biāo)識(shí)一致?如果是,則將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的 token密鑰返回給第三方應(yīng)用裝置;如果否,則繼續(xù)步驟13 ;步驟13、開放平臺(tái)生成、并保存新的應(yīng)用實(shí)例標(biāo)識(shí),然后將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟二進(jìn)一步包括有步驟21、第三方應(yīng)用裝置將開放平臺(tái)返回的應(yīng)用實(shí)例標(biāo)識(shí)更新到本地,并攜帶應(yīng)用實(shí)例標(biāo)識(shí),向開放平臺(tái)發(fā)出請(qǐng)求用戶授權(quán)的Request Token的訪問請(qǐng)求,開放平臺(tái)根據(jù)所述應(yīng)用實(shí)例標(biāo)識(shí),引導(dǎo)用戶對(duì)第三方應(yīng)用裝置所訪問的資源進(jìn)行授權(quán),最后向第三方應(yīng)用裝置返回用戶授權(quán)的Request Token ;步驟22、第三方應(yīng)用裝置攜帶應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí),向開放平臺(tái)發(fā)出將授權(quán)Request Token換取成Access Token的請(qǐng)求,開放平臺(tái)根據(jù)所述應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)信息,查詢對(duì)應(yīng)的用戶授權(quán)的Request Token,對(duì)所述請(qǐng)求認(rèn)證鑒權(quán)通過后,向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰。
9.一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證系統(tǒng),包括有開放平臺(tái)和若干個(gè)第三方應(yīng)用裝置,所述開放平臺(tái)和第三方應(yīng)用裝置通過網(wǎng)絡(luò)相連,其特征在于,所述開放平臺(tái)進(jìn)一步包括有認(rèn)證授權(quán)單元,用于接收、并檢查第三方應(yīng)用裝置發(fā)來的申請(qǐng)未授權(quán)的Request Token 的訪問請(qǐng)求中,是否攜帶有和開放平臺(tái)上保存一致的應(yīng)用實(shí)例標(biāo)識(shí)信息,如果沒有,則為所述第三方應(yīng)用裝置分配新的應(yīng)用實(shí)例標(biāo)識(shí),并將所述應(yīng)用實(shí)例標(biāo)識(shí)、生成的未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置;然后根據(jù)第三方應(yīng)用裝置在后續(xù)OAuth認(rèn)證請(qǐng)求中所攜帶的應(yīng)用實(shí)例標(biāo)識(shí),引導(dǎo)用戶對(duì)資源進(jìn)行授權(quán),最后根據(jù)應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)信息對(duì)第三方應(yīng)用裝置認(rèn)證通過后,向第三方應(yīng)用裝置下發(fā) AccessToken與對(duì)應(yīng)的密鑰。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述應(yīng)用實(shí)例標(biāo)識(shí)由開放平臺(tái)統(tǒng)一生成,用于對(duì)每個(gè)第三方應(yīng)用的不同第三方應(yīng)用裝置進(jìn)行標(biāo)識(shí),具有相同第三方應(yīng)用標(biāo)識(shí)的不同第三方應(yīng)用裝置的應(yīng)用實(shí)例標(biāo)識(shí)具有唯一性,所述應(yīng)用實(shí)例標(biāo)識(shí)可以采用時(shí)間序列加序列號(hào)或隨機(jī)數(shù)的方式表示。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述第三方應(yīng)用裝置,是下載、并安裝有第三方應(yīng)用程序副本的硬件終端,用于接收用戶發(fā)來的訪問開放平臺(tái)的資源請(qǐng)求,并檢查本地是否已分配有應(yīng)用實(shí)例標(biāo)識(shí),如果有,則攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)向開放平臺(tái)的Request Token URL地址發(fā)起申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求;將開放平臺(tái)返回的應(yīng)用實(shí)例標(biāo)識(shí)更新至本地,并攜帶所述應(yīng)用實(shí)例標(biāo)識(shí)進(jìn)行后續(xù)的OAuth認(rèn)證請(qǐng)求,所述第三方應(yīng)用裝置可以是手機(jī)、計(jì)算機(jī)、網(wǎng)絡(luò)服務(wù)器。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,當(dāng)在第三方應(yīng)用裝置上重新下載、并安裝第三方應(yīng)用程序副本時(shí),原有第三方應(yīng)用裝置對(duì)應(yīng)的應(yīng)用實(shí)例標(biāo)識(shí)需定時(shí)清除,所述應(yīng)用實(shí)例標(biāo)識(shí)采用與Access Token相同的有效期,這樣當(dāng)Access Token失效時(shí),應(yīng)用實(shí)例標(biāo)識(shí)同樣做失效處理,開放平臺(tái)定期清除失效的應(yīng)用實(shí)例標(biāo)識(shí)信息。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述開放平臺(tái)還包括有計(jì)費(fèi)單元,用于在第三方應(yīng)用裝置認(rèn)證成功后,根據(jù)第三方應(yīng)用裝置通過開放平臺(tái)的服務(wù)API訪問用戶授權(quán)的資源時(shí)所攜帶的應(yīng)用實(shí)例標(biāo)識(shí)和第三方應(yīng)用標(biāo)識(shí)信息,對(duì)第三方應(yīng)用和最終用戶的服務(wù)請(qǐng)求進(jìn)行記錄、并計(jì)費(fèi)。
全文摘要
一種基于OAuth協(xié)議的開放平臺(tái)安全認(rèn)證方法和系統(tǒng),包括有開放平臺(tái)檢查第三方應(yīng)用裝置的申請(qǐng)未授權(quán)的Request Token的訪問請(qǐng)求,是否攜帶有和平臺(tái)一致的應(yīng)用實(shí)例標(biāo)識(shí),如果沒有,則分配新的應(yīng)用實(shí)例標(biāo)識(shí),并將應(yīng)用實(shí)例標(biāo)識(shí)、未經(jīng)用戶授權(quán)的Request Token與對(duì)應(yīng)的token密鑰返回給第三方應(yīng)用裝置;第三方應(yīng)用裝置將應(yīng)用實(shí)例標(biāo)識(shí)更新到本地,并繼續(xù)攜帶應(yīng)用實(shí)例標(biāo)識(shí)進(jìn)行后續(xù)的OAuth認(rèn)證請(qǐng)求,開放平臺(tái)通過應(yīng)用實(shí)例標(biāo)識(shí),引導(dǎo)用戶授權(quán),然后向第三方應(yīng)用裝置下發(fā)Access Token與對(duì)應(yīng)的密鑰。本發(fā)明屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域,能對(duì)多個(gè)第三方應(yīng)用運(yùn)行實(shí)例的業(yè)務(wù)場(chǎng)景進(jìn)行精確認(rèn)證和鑒權(quán),還可以靈活計(jì)費(fèi)。
文檔編號(hào)H04L29/06GK102394887SQ201110354138
公開日2012年3月28日 申請(qǐng)日期2011年11月10日 優(yōu)先權(quán)日2011年11月10日
發(fā)明者吳若迪, 廖建新, 曹予飛, 李文嘉, 梁龍, 趙軍 申請(qǐng)人:杭州東信北郵信息技術(shù)有限公司