OAuth 2.0 從入門到實戰:利用驗證和授權守護 API 的安全
周建毅(Miles)
買這商品的人也買了...
-
$680$530 -
$800$600 -
$680$537 -
$560$437 -
$600$468 -
$580$435 -
$880$695 -
$600$468 -
$690$538 -
$1,080$820 -
$520$390 -
$650$507 -
$580$493 -
$880$695 -
$650$507 -
$580$458 -
$650$507 -
$620$484 -
$680$530 -
$650$507 -
$880$695 -
$650$507 -
$820$640 -
$860$671 -
$580$435
相關主題
商品描述
- Web 平台已是現今網路生態不可或缺的一部分。當建立新的應用程式時,可能會想要取得使用者在其他平台上的資訊,但這個過程充滿了許多資安風險。身為程式與架構的開發團隊,該如何使用正確的技術,來保護應用程式和使用者呢?
本書將會介紹目前最穩定的兩個協定:OAuth 2.0 與 OpenID Connect 的完整流程以及實作。此外,本書在一開始也會介紹身分驗證與授權的基本元素,讓讀者能夠輕鬆理解協定設計的基本原理,而不再是一知半解。
漸進式學習主題
● 了解身分驗證概論以及 Web 基礎
基礎是非常重要的,在 OAuth 2.0 上更是如此。從身分驗證概論、HTTP 協定的特性、演算法的基礎,接著延伸到身分驗證的實作,這些都是後續理解協定須具備的前置技能。
● OAuth 2.0 與擴充協定的介紹
本書將整理官方協定,並按適合初學者學習的順序來安排章節。其中包括 OAuth 2.0 的四種基本授權流程、原生應用程式與瀏覽器應用程式的授權流程,以及 OpenID Connect 的三種身分驗證流程,已涵蓋大多數的身分驗證與授權情境。讀者可依實務遇到的情境來選擇適合的流程參考。
● OAuth 2.0 實戰練習
了解協定後,接著以實作來證明協定的可行性。應用程式的部分,OAuth 2.0 會以 Facebook 為例,OpenID Connect 會以 LINE Login 為例來說明實作的過程;授權伺服器端則是以開源的服務 Hydra 為例,來介紹實際身分驗證與授權中心會需要處理的任務為何。
本書特色
☑ 參考公開標準和協定撰寫成章
☑ 循序介紹 OAuth 2.0 基本原理
☑ 豐富前導知識及相關補充主題
☑ 身分驗證系統實作經驗分享
目標讀者
・網頁前端工程師
・網頁後端工程師
專業推薦
作者從 Web 的生命週期,再進入到 OAuth2 的實作,自始至終都是圍繞著 RFC 協議講解,可以讓我們清楚的知道為什麼要這樣實作,最讓我欽佩的是,只要我們在討論 Http/Web 相關問題,他總是能信手捻來一組 RFC 編號,精準的對齊設計。不論你是使用甚麼語言,熟讀完本書後,我相信會讓你對於系統架構設計上有實質的幫助。
—— 余小章|部落格「余小章 @ 大內殿堂」版主
我非常喜歡書裡 Miles 的細心,除了提供讀者翻譯精準的專有名詞中英對照外,在說明協定細節時,也在註腳標記了原始規格文件的章節。而更讓我佩服的是 Miles 在說明 Auth 流程時,會將 Client 與 Server 的往返整理成時序圖,在閱讀理解上有很大的幫助。書中的細節再再顯示 Miles 紮實的功夫,以及拳拳到位的詮釋能力。
—— 范聖佑|Laravel 道場、LaravelConf Taiwan 創辦人/JetBrains 技術傳教士
Miles 在這本書中用各種淺白的比喻,來解釋身分驗證與授權內許多複雜的概念。像是第一章,使用社區大樓裡保全的比喻,來說明「識別」的概念。第五章提到 OAuth 2.0 與 OpenID Connect 時,還透過故事的方式,讓讀者可以更身歷其境的理解授權系統實作的目的,以及要解決的問題。
—— 趙家笙(Recca Chao)|Taiwan Kotlin User Group 管理員
作者簡介
- 周建毅 (Miles)
約十年的 PHP 開發經驗,也是 Laravel 框架的愛好者。
於 2016 年任職於一零四資訊科技公司後,開始進入實作身分驗證的團隊。實作過程發現身分驗證相關知識不足,因此開始閱讀文件,並經歷許多設計經驗後,才打造出可用的身分驗證核心。
該著作的源起,主要是想將當初閱讀文件所遇到的阻礙,與設計架構及實作踩的雷,轉換成可分享的知識庫,讓有相同需求的讀者,能夠用更簡單的方法入門實作 OAuth 2.0 與 OpenID Connect,同時也能讓網路上的應用程式更加地安全可靠。
目錄大綱
- 推薦序一:開發一定會碰到身分驗證
推薦序二:簡單但不簡單的 Auth 開發
推薦序三:RFC 汪洋中的一盞明燈
序言
CHAPTER 01 身分驗證與授權
1-1 識別
1-2 驗證
1-3 授權
1-4 歸責
1-5 章節回顧
CHAPTER 02 HTTP協定
2-1 HTTP 的特性
2-2 Cookie 機制
2-3 SSL∕TLS
2-4 章節回顧
CHAPTER 03 密碼學
3-1 加密與解密
3-2 雜湊
3-3 訊息驗證碼
3-4 數位簽章
3-5 亂數
3-6 章節回顧
CHAPTER 04 實作 Web 身分驗證
4-1 身分驗證
4-2 JWT
4-3 狀態保存
CHAPTER 05 OAuth 2.0 與 OpenID Connect 簡介
5-1 OAuth 2.0 情境劇
5-2 OAuth 2.0 與 OpenID Connect 能做什麼?
5-3 OAuth 2.0 與 OpenID Connect「不能」做什麼?
5-4 本章重點
CHAPTER 06 OAuth 2.0 授權協定
6-1 OAuth 2.0 的角色
6-2 Access Token 與 Refresh Token
6-3 快速建構 OAuth 2.0 應用程式
6-4 註冊應用程式
6-5 授權碼流程
6-6 隱含授權
6-7 密碼驗證授權
6-8 應用程式憑證授權
6-9 使用 Refresh Token 換發 Access Token
6-10 Token 如何使用、驗證與撤銷?
6-11 我應該使用哪個 OAuth 2.0 授權類型?
6-12 其他注意事項
CHAPTER 07 其他應用程式類型的授權流程
7-1 Proof Key for Code Exchange 擴充協定
7-2 原生應用程式的授權流程
7-3 瀏覽器應用程式的授權流程
CHAPTER 08 OpenID Connect 身分驗證協定
8-1 完成身分驗證與完成授權的差異
8-2 OpenID Connect 與 OAuth 2.0 的比較
8-3 身分驗證流程
8-4 Prompt 參數用法
8-5 登出流程
8-6 第三方啟動登入
8-7 OP 與應用程式的相關資訊定義
CHAPTER 09 應用程式端的實務範例
9-1 透過 OAuth 2.0 協定請求 Facebook 授權
9-2 透過 OpenID Connect 協定請求 LINE Login 身分驗證
CHAPTER 10 授權伺服器的實務範例
10-1 Hydra 簡介
10-2 Hydra 的流程定義
10-3 建構 Hydra 與相關服務
10-4 總結
APPENDIX A 規範參考文件
APPENDIX B 專有名詞參考
APPENDIX C 縮寫名詞參考