Justin Richer(著) , Antonio Sanso(著) , 須田 智之(翻訳) , Authlete, Inc.(監修)
※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。
OAuthは近年、WEBアプリケーションで使われる主要な認可プロトコルです。本書ではOAuthをどのようなプラットフォームでも適用できるように解説をしています。
本書は全体で16章あり、4つのパートに分割しています。パート1にあたる第1章と第2章はOAuth 2.0のプロトコルの概要を説明しており、基盤となる知識を得るための読み物としています。パート2は第3章から第6章までとなっており、OAuth 2.0のエコシステム全体をどのように構築するのかについて示しています。パート3は第7章から第10章までとなっており、OAuth 2.0のエコシステムにおけるさまざまな構成要素が持つ脆弱性について説明しており、その脆弱性をどのように回避するのかについて述べています。最後のパートは第11章から第16章までで構成されており、OAuth 2.0を核とした次の世代のプロトコルについて語っており、標準や仕様に関してOAuthの周辺の技術も踏まえて見ていき、最後に本書のまとめを行っています。
OAuth2.0のプロトコルがどのように機能するのか、そして、なぜそのような仕様になっているのかについて、全体像を学びます。
OAuth2.0のエコシステム全体(クライアント、保護対象リソース、認可サーバ)をゼロから構築します。
OAuth 2.0のエコシステムにおける構成要素が持つ脆弱性について、脆弱性をどのように回避するかについて説明します。
OAuthプロトコルの中核となる部分からすこし離れて、その堅牢な核の周りに用意された拡張機能、プロファイル、補助的な構成要素の世界について学びます。
第1部 はじめの一歩
Chapter 1 OAuth 2.0とは何か?そして、なぜ気にかけるべきなのか?
1.1 OAuth 2.0とは何か?
1.2 古き悪しき手法~クレデンシャルの共有~
1.3 アクセス権の委譲
1.4 OAuth 2.0~良い点と悪い点、そして醜い点~
1.5 OAuth 2.0ではないものは何か?
1.6 まとめ
Chapter 2 OAuthダンス~OAuthの構成要素間の相互作用~
2.1 OAuth 2.0プロトコルの概要~トークンの取得と使用~
2.2 OAuth 2.0における認可付与の詳細
2.3 クライアント、認可サーバー、リソース所有者、保護対象リソース
2.4 トークン、スコープ、認可付与
2.5 OAuthの構成要素間のやり取り
2.6 まとめ
第2部 OAuth 2.0環境の構築
Chapter 3 シンプルなOAuthクライアントの構築
3.1 認可サーバーへのOAuthクライアントの登録
3.2 認可コードによる付与方式を使ったトークンの取得
3.3 保護対象リソースへのトークンの使用
3.4 アクセス・トークンのリフレッシュ
3.5 まとめ
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 トークンのリプレイ攻撃
8.4 まとめ
Chapter 9 よく狙われる認可サーバーの脆弱性
9.1 一般的なセキュリティ
9.2 セッションの乗っ取り
9.3 リダイレクトURIの不正操作
9.4 クライアントのなりすまし
9.5 オープン・リダイレクトによる脆弱性
9.6 まとめ
Chapter 10 よく狙われるOAuthトークンの脆弱性
10.1 Bearerトークンとは何か
10.2 Bearerトークンの使用に関するリスクと考慮点
10.3 どのようにBearerトークンを保護するのか?
10.4 認可コード
10.5 まとめ
第4部 さらなるOAuthの活用
Chapter 11 OAuthトークン
11.1 OAuthにおけるトークンとは何か?
11.2 JWT(JSON Web Token)
11.3 JOSE(JSON Object Signing and Encryption)
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を使ったユーザー認証
13.1 なぜ、OAuth 2.0は認証プロトコルではないのか?
13.2 OAuthと認証プロトコルとの関連付け
13.3 OAuth 2.0ではどのように認証を使うのか?
13.4 認証にOAuth 2.0を使用する際に陥りやすい落とし穴
13.5 OpenID Connect
13.6 シンプルなOpenID Connectシステムの構築
13.7 まとめ
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 演習で使うソースコード集
fakiyer さん
2019-03-30
OAuth2.0に関してサンプルコードとともにとても詳しく書かれている。 OpenID Connectについての説明もとても参考になった。 セキュリティに関しても詳しく書かれているので、OAuth構築する際は読んでおきたい本。
james さん
2020-05-23
OAuthを使うに当たってweb上の記事を読んでも用語の意味が分からず苦労したので体系的に理解したくて読んだ。OAuth2.0をきちんと使うなら読んでおくべき一冊だと思う。著者はOAuthに仕様検討段階から関わっているとのことで、なぜOAuth2.0が必要となったのかといった背景も含めて説明してくれる。中盤からはサンプルコードにプログラムを書き込んでいきながら進めるハンズオンでこれも理解を助けてくれた。node.jsは12ではエラーがでたので、8にバージョンを落としたら動作した。
kaseken さん
2020-05-10
技術書1000冊読破計画/17冊目