OAuth 2.0 從入門到實戰:利用驗證和授權守護 API 的安全
! H* L& N- V5 d+ {9 Y2 q 作者: 周建毅(Miles)
0 A2 _* T6 a ]7 F2 ^ 出版社:博碩
2 P, Z. ]# v, ] 出版日期:2022/12/16- H' i( Y" l8 c
內容簡介
! V6 ?6 j$ p2 B; u) l" k7 [ 帶你一次了解 OAuth 2.0 與 OpenID Connect 的完整流程!
, |: C2 @9 P0 Z7 s Web 平台已是現今網路生態不可或缺的一部分。當建立新的應用程式時,可能會想要取得使用者在其他平台上的資訊,但這個過程充滿了許多資安風險。身為程式與架構的開發團隊,該如何使用正確的技術,來保護應用程式和使用者呢?, [3 J7 ]9 M& Q N9 U4 B
本書將會介紹目前zui穩定的兩個協定:OAuth 2.0 與 OpenID Connect 的完整流程以及實作。此外,本書在一開始也會介紹身分驗證與授權的基本元素,讓讀者能夠輕鬆理解協定設計的基本原理,而不再是一知半解。; q, f$ w" E: l! P
漸進式學習主題% a, t( }, _9 q+ x
● 了解身分驗證概論以及 Web 基礎
6 g% x" }/ a- q9 P, T 基礎是非常重要的,在 OAuth 2.0 上更是如此。從身分驗證概論、HTTP 協定的特性、演算法的基礎,接著延伸到身分驗證的實作,這些都是後續理解協定須具備的前置技能。
$ D/ E) |: \& d7 t$ A4 S" N ● OAuth 2.0 與擴充協定的介紹3 ^' \6 {; R5 Y! F) M- g
本書將整理官方協定,並按適合初學者學習的順序來安排章節。其中包括 OAuth 2.0 的四種基本授權流程、原生應用程式與瀏覽器應用程式的授權流程,以及 OpenID Connect 的三種身分驗證流程,已涵蓋大多數的身分驗證與授權情境。讀者可依實務遇到的情境來選擇適合的流程參考。
) V3 S/ Y0 B$ ]. k) |' S% S ● OAuth 2.0 實戰練習: |0 Y( F6 \' h2 y& T
了解協定後,接著以實作來證明協定的可行性。應用程式的部分,OAuth 2.0 會以 Facebook 為例,OpenID Connect 會以 LINE Login 為例來說明實作的過程;授權伺服器端則是以開源的服務 Hydra 為例,來介紹實際身分驗證與授權中心會需要處理的任務為何。
0 F! Z, \9 A6 D+ _ 本書特色 Y* B5 G+ Q. b
? 參考公開標準和協定撰寫成章
9 N. R/ D( p% N/ V: D0 i7 C4 ~ ? 循序介紹 OAuth 2.0 基本原理
( m. L- t1 l6 S; M3 p! Y ? 豐富前導知識及相關補充主題+ t ]9 m! [* W7 n4 P
? 身分驗證系統實作經驗分享7 e& L( y# O% u, k- \5 v
目標讀者& Y; F' ]4 ^+ \# x& k9 ~6 [
?網頁前端工程師. v2 r- E; t T1 j* b$ ?; A
?網頁後端工程師
, U, c p$ m" D1 c0 O* p; c 目錄
5 _% g3 w$ u7 ^% n# m0 { 推薦序一:開發一定會碰到身分驗證8 r1 }( R8 x: F4 |) g0 d- X3 Q% s
推薦序二:簡單但不簡單的 Auth 開發
5 b3 L! K4 ]( _' x# w! F2 v4 Q 推薦序三:RFC 汪洋中的一盞明燈* Z7 }7 k$ L# f: ]0 v; `4 a$ d
序言
0 Z. ^( z) ^# G T/ K CHAPTER 01 身分驗證與授權- v g4 P7 T3 x; e! K8 X; ^$ r
1-1 識別/ W4 _- V% b8 Z6 ^
1-2 驗證
: g( Q6 r1 S& c( @ 1-3 授權( g- k) P4 w. s" C$ n! {" l# C
1-4 歸責
2 f4 Q$ |1 C9 x5 C4 v v8 E 1-5 章節回顧
! T" _; V; f( ^5 y: P; i CHAPTER 02 HTTP協定( N5 O% v3 h1 U3 H" p, P3 G
2-1 HTTP 的特性
$ o& z) l" o8 U. p1 Q 2-2 Cookie 機制
& K1 D6 V. t. T) I) l8 ~ 2-3 SSL∕TLS
+ z! ~- W8 y1 ]; O" g& N) J6 }. a 2-4 章節回顧
: K4 ^# c. ]% Z# Q. x; r. a8 K/ M& N# O CHAPTER 03 密碼學
" d. c/ C( I/ r2 r( z, n 3-1 加密與解密
6 E! d) Y4 [' Z2 u3 E 3-2 雜湊
8 l7 e9 a- q0 ]6 W/ i- c, M 3-3 訊息驗證碼* J4 ?1 J/ R. O4 z7 }$ g
3-4 數位簽章
& B+ d+ Q" d* |- E- A% u/ e6 J 3-5 亂數
, S. x' o+ J$ y }5 j 3-6 章節回顧
2 |5 \. ^' ^6 C, {$ e CHAPTER 04 實作 Web 身分驗證: o# ~: g; c. `8 _3 V& H9 D
4-1 身分驗證4 K) j7 Q3 w% T6 S
4-2 JWT3 \" P4 h C* v- K/ r
4-3 狀態保存' B) `% ]. D2 z( J" ~
CHAPTER 05 OAuth 2.0 與 OpenID Connect 簡介/ }6 e5 |* B3 I6 x$ N- C
5-1 OAuth 2.0 情境劇. r, c0 c& y; k
5-2 OAuth 2.0 與 OpenID Connect 能做什麼?8 M0 V W, c2 W& J, A# F( S" M/ C
5-3 OAuth 2.0 與 OpenID Connect「不能」做什麼?" Z8 W- Z2 J% C3 M8 P% J, N
5-4 本章重點
+ a- x" e" S8 J3 R; M- q CHAPTER 06 OAuth 2.0 授權協定
8 f% u8 }4 v" F. Q 6-1 OAuth 2.0 的角色, c' Y4 [$ O& g1 `0 z
6-2 Access Token 與 Refresh Token
/ ]" {3 B: j5 m1 ?# j: p 6-3 快速建構 OAuth 2.0 應用程式- f. j C1 l3 Z0 f
6-4 註冊應用程式
q; j7 u5 J i N 6-5 授權碼流程
/ h1 k3 |+ O0 I/ f 6-6 隱含授權 x& h( c( U, V, R- `, r% @' t% b
6-7 密碼驗證授權
! O- {, \) b7 S u7 Q* q 6-8 應用程式憑證授權' o, ~1 r) A1 @1 @$ B; K
6-9 使用 Refresh Token 換發 Access Token8 S1 }7 X7 ~/ |/ R# { z
6-10 Token 如何使用、驗證與撤銷?
1 x, ?4 l* R! B- i2 l* R8 z& ]3 V1 s 6-11 我應該使用哪個 OAuth 2.0 授權類型?2 p6 o7 ]3 b4 U3 q% G- c+ ~) F6 |
6-12 其他注意事項- @" R& M- n0 m) A- f% }* G
CHAPTER 07 其他應用程式類型的授權流程
* Z7 K3 |$ d6 e" D3 R 7-1 Proof Key for Code Exchange 擴充協定
9 ^- X( [/ x( l; J, ~9 K5 { 7-2 原生應用程式的授權流程
( u2 I( w$ ~9 o8 o, a- n2 S- J 7-3 瀏覽器應用程式的授權流程
( Q" r3 ]. D8 }. G$ e' _ CHAPTER 08 OpenID Connect 身分驗證協定! a+ f# m8 L; p& x, d. l" U
8-1 完成身分驗證與完成授權的差異/ ]; o! U* q* h2 B Q
8-2 OpenID Connect 與 OAuth 2.0 的比較
% L" b" @4 m& v6 y 8-3 身分驗證流程
* l& U: P7 P: J8 F 8-4 Prompt 參數用法
( Y& e& A! y z9 m5 h 8-5 登出流程) ]( i# P! G4 H3 K1 a% ?. w' x
8-6 第三方啟動登入6 U: s5 N/ b: e% ] v. R6 `
8-7 OP 與應用程式的相關資訊定義
- S$ j+ b" I, @. T1 Z CHAPTER 09 應用程式端的實務範例/ O4 z& B6 x f C$ T
9-1 透過 OAuth 2.0 協定請求 Facebook 授權. Z$ A# v* z/ r* P1 W
9-2 透過 OpenID Connect 協定請求 LINE Login 身分驗證. ^3 |! A+ i, F
CHAPTER 10 授權伺服器的實務範例7 U" O* y7 j9 B1 w1 K# I/ J1 ^7 a
10-1 Hydra 簡介
8 k- ~; j0 y# o 10-2 Hydra 的流程定義
! x- f5 k1 u' r( H: j8 P 10-3 建構 Hydra 與相關服務' M; ]: i9 E+ `7 H$ X; ?1 W" a
10-4 總結3 e( D7 C& X0 y$ Y4 ]: p& I0 @, z
APPENDIX A 規範參考文件% {% K2 D0 |) c" B- N
APPENDIX B 專有名詞參考
0 q, E T/ z5 m. F APPENDIX C 縮寫名詞參考; N4 c4 h+ }* g( k- B& J( Y6 q
: g d7 W5 m0 p
- t6 U; K" ]& P' } V2 n
剩余 2% 内容需要支付 3.00×2共享币 后可完整阅读并提供下载链接
共享资料赚共享币,鼓励用户共享优质资料
|