■ はじめに
本書はAuth 屋の「雰囲気OAuth シリーズ」第一弾である「雰囲気でOAuth 2.0 を使っているエンジニアがOAuth 2.0 を整理して、手を動かしながら学べる本」をベースにOAuth 2.1 にあわせて大幅に加筆修正したものになります。まずは本書でOAuth の基本的な用語・概念を学び、「認可のプロトコル」の意味するところを理解していただければと思います。
■ OAuth 2.1/2.0 の扱いについて
本書ではOAuth 2.1 をベースに解説します。OAuth 2.1 はOAuth 2.0 の仕様(RFC6749) およびPKCEなどの拡張仕様から要素を取捨選択したベストプラクティスなので、OAuth 2.0 とOAuth 2.1 で共通する点も多くあります。OAuth 2.0とOAuth 2.1 の差分が大きいところについては両者の違いを明確に解説します。
OAuth 2.1 は2025 年11 月04 日現在ドラフト段階ですが、主要な仕様は安定しています。今後、大きな変更があった場合は、本書を改訂して追随する予定です。
■ 誰に向けた本か
「ぜんぜんわからない。俺たちは雰囲気でOAuth を使っている。」または「OAuthまわりはライブラリーにまかせているので、パラメーターを設定するくらいしかやっていない。どんなやりとりが行われているのかわかってない。」というエンジニアに向けてこの本を書きました。具体的には、次の質問に答えられないエンジニアです。
• スコープとはなんですか?
• 認可コードは何が行われた証ですか?
• OAuth 2.1 で必須化されたPKCE とはなんですか?
さらに、「OAuth 2.0 は把握しているが、最新のベストプラクティスであるOAuth
2.1 についても把握したい。」という方にもお役にたちます。なお、多くの認可サー
バーはまだOAuth 2.0 ベースで運用されているため、OAuth 2.0 について知りたい
という方もいると思います。本書ではOAuth 2.0 とOAuth 2.1 の差分についても
解説しており、付録にはOAuth 2.1 で削除されたOAuth 2.0 の2 つのグラントに
ついても解説しているので、OAuth 2.0 を知りたいという方にもお役に立つ内容に
なっています。
■ この本を読むメリット
• OAuth に関わる概念を整理して理解できます。
• 具体的なソフトウェアプロジェクトの構成要素をOAuth のロールにマッピン
グできるようになります。
• OAuth のベストプラクティスであるOAuth 2.1 の仕様を理解できます。
• 利用したいAPI のOAuth 関連資料やOAuth の仕様を読みこなすための地
図が頭の中にできます。
■ この本の特徴
• Google Photos のAPI を使った画像編集アプリの例を頻繁に挙げることで、具体的にイメージしやすい説明を試みています。
• チュートリアルの章では、curl とブラウザーを使って実際に手を動かしながら学べます。
• OAuth の仕様で決められているオプションについては網羅的に説明するのではなく、オーソドックスな1 つの例を基に説明しています。
■ この本は何の本ではないか
• この本はOAuth1.0 については説明していません
• この本はOpenID Connect については説明していません。OAuth とOpenIDConnect を並行して学ぶと混乱するからです。まずはOAuth についてしっかりと理解し、その後、OpenID Connect との差分を理解する、というの
がOAuth とOpenID Connect の両方を理解するの最短の道だと考えています。
• この本はOAuth に関する攻撃手段についてはほとんど説明していません。
Auth屋の本の評判: https://togetter.com/li/1477483