首頁 搜尋 我的知識庫
OAuth 2.0 從入門到實戰:利用驗證和授權守護 API 的安全

OAuth 2.0 從入門到實戰:利用驗證和授權守護 API 的安全

作者: 周建毅(Miles)
出版社: 博碩
出版日期: 2022/12/16
ISBN-13: 9786263333185
書店 1







內容描述


♛ 台灣第一本 OAuth 2.0 專書 ♛

帶你一次了解 OAuth 2.0 與 OpenID Connect 的完整流程!

  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 管理員


目錄大綱


推薦序一:開發一定會碰到身分驗證
推薦序二:簡單但不簡單的 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 縮寫名詞參考


作者介紹


作者簡介

周建毅 (Miles)

  約十年的 PHP 開發經驗,也是 Laravel 框架的愛好者。

  於 2016 年任職於一零四資訊科技公司後,開始進入實作身分驗證的團隊。實作過程發現身分驗證相關知識不足,因此開始閱讀文件,並經歷許多設計經驗後,才打造出可用的身分驗證核心。

  該著作的源起,主要是想將當初閱讀文件所遇到的阻礙,與設計架構及實作踩的雷,轉換成可分享的知識庫,讓有相同需求的讀者,能夠用更簡單的方法入門實作 OAuth 2.0 與 OpenID Connect,同時也能讓網路上的應用程式更加地安全可靠。






相關書籍

Python 資料科學實戰教本:爬蟲、清理、資料庫、視覺化、探索式分析、機器學習建模,數據工程一次搞定!

電腦選購、組裝與維護自己來(超值附贈346分鐘影音講解)

Keynote (Mac x iPad x iPhone)全面啟動:賈伯斯完美簡報的成功關鍵

SolidWorks 曲面與動畫 武功祕笈