『OAuth徹底入門』
https://gyazo.com/973a19d37b33799ed4a50e094c935fce
2019/1/30出版
OAuth 2 in Actionの訳書
著者
Justin Richer
OAuth2.0の仕様策定の議論に多少関わっている人らしい
Antonio Sanso
Adobeのセキュリティ研究者
訳
須田智之
/mrsekut-book-4798159298
866ページあるmrsekut.icon
github
読んだ動機
JWTとBearerを体系的に学びたい
ついでに、OAuth何もわからんから
コード例はNode.jsのExpress
Amaazonレビューにも書かれていたが、たしかに日本語がおかしい
読むのがかなりストレスになるレベル
1つの文章を何度か読み直さないと理解できない
こんなに訳がひどい本、初めて読んだ..
アクティブ読書をすればだいぶ軽減されるmrsekut.icon*3
それを除けば有用
1,2,7,10,11と読みたいmrsekut.icon
10,11が読めればいいけど、無理なら戻っていく感じで
第1部 はじめの一歩
Chapter 1 OAuth 2.0とは何か?そして、なぜ気にかけるべきなのか?
/mrsekut-book-4798159298/045 (Chapter 1 OAuth 2.0とは何か?そして、なぜ気にかけるべきなのか?)
OAuth 2.0は委譲プロトコルであり、それはリソースを管理している誰か(リソース所有者)がソフトウェア·アプリケーションに所有者自身のなりすましをさせるのではなく、リソース所有者の代わりとして対象のリソースへのアクセスを許可するための手段です
マジで文章が分かりづらい
OAuthの概要
OAuth 2.0の線引き
OAuth2.0がどこまでを仕様に含めているか
/mrsekut-book-4798159298/081
Chapter 2 OAuthダンス~OAuthの構成要素間の相互作用~
/mrsekut-book-4798159298/091 (Chapter 2 OAuthダンス~OAuthの構成要素間の相互作用~)
Authorization Code Grant
第2部 OAuth 2.0環境の構築
OAuth2.0エコシステの全体の構成
Chapter 3 シンプルなOAuthクライアントの構築
/mrsekut-book-4798159298/137 (Chapter 3 シンプルなOAuthクライアントの構築)
3.1 認可サーバーへのOAuthクライアントの登録
3.2 認可コードによる付与方式を使ったトークンの取得
3.3 保護対象リソースへのトークンの使用
3.4 アクセス・トークンのリフレッシュ
3.5 まとめ
Chapter 4 シンプルなOAuthの保護対象リソースの構築
/mrsekut-book-4798159298/176 (Chapter 4 シンプルなOAuthの保護対象リソースの構築)
4.1 HTTPリクエストからのOAuthトークンの解析
4.2 データストアにあるトークンとの比較
4.3 トークンの情報をもとにしたリソースの提供
4.4 まとめ
Chapter 5 シンプルなOAuthの認可サーバーの構築
5.1 OAuthクライアントの登録管理
5.2 クライアントの認可
5.3 トークンの発行
5.4 リフレッシュ・トークンのサポートの追加
5.5 スコープのサポートの追加
5.6 まとめ
Chapter 6 実際の環境におけるOAuth 2.0
6.1 認可における付与方式
6.2 クライアントの種類
6.3 まとめ
第3部 OAuth 2.0の実装と脆弱性
Chapter 7 よく狙われるクライアントの脆弱性
7.1 一般的なクライアントのセキュリティ
7.2 クライアントに対するCSRF攻撃
7.3 クライアント・クレデンシャルの不当な取得
7.4 リダイレクトURIの登録
7.5 認可コードの不正な取得
7.6 トークンの不正な取得
7.7 ネイティブ・アプリケーションでのベスト・プラクティス
7.8 まとめ
Chapter 8 よく狙われる保護対象リソースの脆弱性
8.1 保護対象リソースの脆弱性とはどのようなものなのか?
8.2 保護対象リソースのエンドポイントの設計
8.3 トークンのReplay攻撃
8.4 まとめ
Chapter 9 よく狙われる認可サーバーの脆弱性
9.1 一般的なセキュリティ
9.2 セッションの乗っ取り
9.3 リダイレクトURIの不正操作
9.4 クライアントのなりすまし
9.5 オープン・リダイレクトによる脆弱性
9.6 まとめ
Chapter 10 よく狙われるOAuthトークンの脆弱性
/mrsekut-book-4798159298/453 (Chapter 10 よく狙われるOAuthトークンの脆弱性)
Bearer Token
/mrsekut-book-4798159298/461から
Chapter 10はbearer tokenの解説というよりはセキュリティ関連の話だなmrsekut.icon
10.3 どのようにBearerトークンを保護するのか?
10.4 認可コード
10.5 まとめ
第4部 さらなるOAuthの活用
Chapter 11 OAuthトークン
/mrsekut-book-4798159298/485 (Chapter 11 OAuthトークン)
JWT
/mrsekut-book-4798159298/505 (11.3 JOSE)
節のタイトルの割に内容が浅かった
JWTとJWSぐらいにしか触れてない
JWTの暗号化と検証に関しての解説
JOSEの解説ではない 
/mrsekut-book-4798159298/525 (11.4 トークンイントロスペクション)
11.4 トークン・イントロスペクション(Token Introspection)
11.5 トークン取り消し(Token Revocation)
11.6 OAuthトークンのライフサイクル
11.7 まとめ
Chapter 12 動的クライアント登録
12.1 どのようにサーバーがクライアントのことを知るのか?
12.2 実行時におけるクライアント登録
12.3 クライアント・メタデータ
12.4 動的な登録が行われたクライアントの管理
12.5 まとめ
Chapter 13 OAuth 2.0を使ったユーザー認証
/mrsekut-book-4798159298/627 (Chapter13 OAuth 2.0 を使ったユーザー認証)
13.4章、全体的に訳が終わってて全く頭に入ってこなくて発狂しそうだったmrsekut.icon
/mrsekut-book-4798159298/644 (13.4 認証にOAuth 2.0を使用する際に陥りやすい落とし穴)
攻撃者は異なるアプリケーションから有効なトークンを取得したり、もしくは、トークンを偽造し、そのトークンをあたかもリライング·パーティー(RP)がリクエストしたことによって取得できたものかのようにリクエストの結果を待っていたリライング·パーティーに渡します。
アクティブ読書を駆使して再読しようmrsekut.icon
Chapter 14 OAuth 2.0を使うプロトコルとプロファイル
/mrsekut-book-4798159298/697 (Chapter 14 OAuth 2.0を使うプロトコルとプロファイル)
14.1 UMA(User Managed Access)
14.2 HEART(HEAlth Relationship Trust)
14.3 iGov(international Government assurance)
14.4 まとめ
Chapter 15 Bearerトークンの次にくるもの
15.1 なぜBearerトークン以上のものが必要なのか?
15.2 所有証明(Proof of Possession:PoP)トークン
15.3 所有証明(PoP)トークンのサポートに関する実装
15.4 TLSトークン・バインディング
15.5 まとめ
Chapter 16 まとめと結論
16.1 正しいツール
16.2 重要な決定を行うこと
16.3 さらに広がるエコシステム
16.4 コミュニティ
16.5 OAuthの未来
16.6 まとめ
付録
付録A 本書で使っているフレームワークについて
付録B 演習で使うソースコード集
#スクボ読書化した本