官术网_书友最值得收藏!

前言

為什么要寫這本書

OAuth從2006年誕生以來,經(jīng)過1.0和2.0兩個(gè)版本迭代后,在2011年左右趨于成熟。隨后大量的場(chǎng)景開始應(yīng)用OAuth 2.0(OAuth 2)來實(shí)現(xiàn)自身業(yè)務(wù),其中最為突出的應(yīng)用場(chǎng)景便是開放平臺(tái)。

國內(nèi)最成功的開放平臺(tái)案例莫過于微信。微信公眾號(hào)基于開放平臺(tái)將微信打造成一個(gè)“航空母艦”,通過開放平臺(tái)將自身能力開放給第三方應(yīng)用開發(fā)者,使他們?cè)谖⑿诺墓芸叵驴焖匍_發(fā)各種類型的應(yīng)用,極大地豐富了微信用戶的體驗(yàn)。隨后,微信更是推出微信小程序,進(jìn)一步豐富自身的業(yè)務(wù)場(chǎng)景。

與此同時(shí),國內(nèi)各種開發(fā)平臺(tái)也如雨后春筍一般迅速發(fā)展。據(jù)統(tǒng)計(jì),目前的開放平臺(tái)已經(jīng)達(dá)到幾十家,如淘寶、京東、抖音、快手及拼多多等開放平臺(tái)。相信隨著互聯(lián)網(wǎng)的發(fā)展和人工成本的提高,越來越多的企業(yè)會(huì)選擇通過開放平臺(tái)將自己的能力對(duì)外開放,從而和廣大的第三方應(yīng)用開發(fā)者合作共建、互利共贏。

在這種大環(huán)境下,開放平臺(tái)的搭建需求也將越來越多。在開放平臺(tái)中,有很多子系統(tǒng)通過相互配合來完成對(duì)外開放的需求,而開放授權(quán)系統(tǒng)是其中非常重要的一環(huán)。目前,開放授權(quán)系統(tǒng)均是基于OAuth 2開發(fā)的,但是在實(shí)際開發(fā)中需要根據(jù)自己的實(shí)際情況進(jìn)行一些流程的修改,以適應(yīng)自身的場(chǎng)景,同時(shí)在基于OAuth 2實(shí)現(xiàn)開放授權(quán)系統(tǒng)的過程中有很多細(xì)節(jié)需要進(jìn)行設(shè)計(jì),一旦某些細(xì)節(jié)設(shè)計(jì)不合理將會(huì)對(duì)系統(tǒng)造成重大損害。

目前,國內(nèi)關(guān)于開放授權(quán)系統(tǒng)搭建的完整資料較少,市面上關(guān)于開放授權(quán)系統(tǒng)的材料只有一本《OAuth 2實(shí)戰(zhàn)》,這本書很好地闡述了OAuth 2如何進(jìn)行落地,并對(duì)其中的相關(guān)細(xì)節(jié)進(jìn)行了探討。但是,隨著時(shí)間的推移,該書中很多方案已經(jīng)被更簡(jiǎn)單的方案所替代,同時(shí)該書中也缺少很多在基于OAuth 2實(shí)現(xiàn)開放平臺(tái)時(shí)所需要的細(xì)節(jié)方案。

為了能提供一套基于OAuth 2協(xié)議來服務(wù)于當(dāng)代開放授權(quán)系統(tǒng)的詳細(xì)方案,完善一些在其他資料中沒有提到的細(xì)節(jié),也為了給開放平臺(tái)開發(fā)的相關(guān)工程師提供一套完整的參考資料,編者萌發(fā)了撰寫本書的想法。

本書特色

本書以開放平臺(tái)中的實(shí)際應(yīng)用為標(biāo)準(zhǔn),對(duì)相關(guān)的理論介紹點(diǎn)到即止,并從實(shí)踐經(jīng)驗(yàn)出發(fā),對(duì)開放授權(quán)系統(tǒng)中各種場(chǎng)景的實(shí)現(xiàn)步驟和方案細(xì)節(jié)進(jìn)行詳細(xì)介紹。本書更是首次對(duì)回調(diào)地址和OpenID相關(guān)內(nèi)容進(jìn)行了詳細(xì)探討,并給出了可落地的方案。讀者完全可以基于本書的指導(dǎo)來搭建屬于自己的并且能應(yīng)用于實(shí)際生產(chǎn)的開放授權(quán)系統(tǒng)。

讀者對(duì)象

? OAuth 2研究者和愛好者。

? 開放平臺(tái)相關(guān)的技術(shù)人員和運(yùn)營(yíng)人員。

? 第三方應(yīng)用開發(fā)者。

關(guān)于本書

本書沒有對(duì)OAuth 2協(xié)議進(jìn)行深入探討,但是本書討論的開放授權(quán)系統(tǒng)是基于OAuth 2來展開的。讀者如果了解OAuth 2協(xié)議,則可以很容易地跟進(jìn)本書所闡述的內(nèi)容。不過,即使不了解OAuth 2協(xié)議,也不用擔(dān)心,本書會(huì)在相關(guān)的章節(jié)中對(duì)每個(gè)流程進(jìn)行介紹,因此讀者完全可以依靠本書來學(xué)習(xí)和了解OAuth 2。

因?yàn)楸緯械囊恍┧惴ㄊ纠褂玫氖荍ava代碼,所以需要讀者具備一定的Java代碼基礎(chǔ)。而最后一章使用Spring Security進(jìn)行案例演示,因此需要讀者有一定的Spring相關(guān)的開發(fā)經(jīng)驗(yàn)。

下面對(duì)本書所覆蓋的內(nèi)容進(jìn)行簡(jiǎn)單介紹。

第1章:針對(duì)OAuth 2所提供的四種授權(quán)模式進(jìn)行了介紹,以便作為后續(xù)所有內(nèi)容探討的基礎(chǔ)。

第2章:針對(duì)開放平臺(tái)整體架構(gòu)和系統(tǒng)組成進(jìn)行了簡(jiǎn)單介紹,為讀者提供了一個(gè)開放平臺(tái)功能的宏觀概念,從而能更好地理解后續(xù)開放授權(quán)系統(tǒng)的功能實(shí)現(xiàn)。

第3章:基于實(shí)戰(zhàn),對(duì)OAuth 2協(xié)議在開放授權(quán)系統(tǒng)實(shí)戰(zhàn)過程中的詳細(xì)流程和參數(shù)進(jìn)行了介紹,同時(shí)對(duì)開放授權(quán)系統(tǒng)實(shí)戰(zhàn)過程中一些基于OAuth 2的四種授權(quán)模式的輕變種進(jìn)行了詳細(xì)介紹。通過這些輕變種授權(quán)模式能更有效地支撐實(shí)際業(yè)務(wù)場(chǎng)景。

第4章:在上述所提到的各種實(shí)戰(zhàn)場(chǎng)景的授權(quán)模式中均默認(rèn)集成了OpenID。而OpenID本來是一種在OAuth 2上構(gòu)建的賬號(hào)安全體系,不屬于OAuth 2的標(biāo)準(zhǔn)。之所以所有的實(shí)戰(zhàn)授權(quán)模式都默認(rèn)集成OpenID,是因?yàn)樵陂_放平臺(tái)的環(huán)境下,OpenID在相關(guān)業(yè)務(wù)中起著重要作用。由于要用到OpenID,因此本書對(duì)OpenID的生成方案進(jìn)行了詳細(xì)探討,提供了多種OpenID落地方案,供讀者根據(jù)自身業(yè)務(wù)場(chǎng)景和體量進(jìn)行選擇。

第5章:四種授權(quán)模式中基于授權(quán)碼的授權(quán)模式是最為通用的,而在該模式下生成回調(diào)地址和code是必不可少的一步,因此本章對(duì)如何生成回調(diào)地址和code進(jìn)行了詳細(xì)探討。

第6章:針對(duì)授權(quán)過程中用到的加密和簽名算法進(jìn)行了介紹。無論采用什么授權(quán)模式,都要返回授權(quán)信息。同時(shí),在某些模式下,還會(huì)支持授權(quán)信息刷新。

第7章:針對(duì)以上內(nèi)容,本章探討了常用的不同類型的授權(quán)信息,并對(duì)比了它們各自的優(yōu)勢(shì)和劣勢(shì),以便讀者可以根據(jù)實(shí)際情況在生產(chǎn)中進(jìn)行選擇。

第8章:以Spring Security為基礎(chǔ)實(shí)現(xiàn)了OAuth 2的四種標(biāo)準(zhǔn)授權(quán)模式的簡(jiǎn)單代碼示例。

主站蜘蛛池模板: 高青县| 新沂市| 大埔区| 玛纳斯县| 乃东县| 慈溪市| 乐昌市| 内丘县| 新余市| 平武县| 隆子县| 宕昌县| 洛扎县| 黄梅县| 广东省| 六盘水市| 都匀市| 江西省| 方正县| 宁晋县| 锦屏县| 昭苏县| 湖南省| 永康市| 牙克石市| 西乌| 江达县| 万年县| 南乐县| 山西省| 邵阳市| 岢岚县| 舒城县| 南投市| 漠河县| 黑水县| 聂荣县| 满城县| 东光县| 金堂县| 枣强县|