『雰囲気でOAuth2.0 を使っているエンジニアが OAuth2.0を整理して、手を動かしながら学べる本』を読んだ

目的

OAuth2.0への理解を整理したい思い読みました。

techbookfest.org

感想

タイトルにもあるように雰囲気でOAuth2.0を使っている人やとりあえずOAuth2.0って何?って人にすごくおすすめです!

分かりやすいし、安い!

1~5章は、OAuth2.0とは何か?から始まり、OAuthの各グラントタイプごとにクライアントがどのような流れでトークンを受け取るか分かりやすく説明されています。

本自体は100ページ程度ですが、OAuth2.0の説明自体は60ページほどで1時間弱あればゆっくり読んでも読み終わるので、すごく良くまとまっているなと思いました!

個人的に、パブリッククライアント向けのグラントタイプとして推奨されている、「認可コードグラント+ PKCE」は知らなかったので勉強になりました!

6章は、実際にGoogleのPhoto Library APIを用いてOAuth2.0を手を動かしながら学べます。

1~5章で学んだ内容を実際に手を動かして復習できるので、理解も深まりやすいです。

OAuth2.0の説明を読んでよく分からなければ、まず6章の内容に従い手を動かしてから読むと良いかも知れません。

読書メモ

  • 認可エンドポイントとトークンエンドポイントは、認可サーバが提供するURI
  • リダイレクトエンドポイントはクライアントが提供するURI
  • トークンエンドポイントではBasic認証によって、クライアントのアイデンティティが確認される
  • Basic認証としてAuthorization ヘッダーに設定されるのは、クライアントID と クライアントシークレット
    • これらは認可サーバーにクライアントを事前登録する際に発行される
  • OAuthのグラントタイプ
    • 認可コードグラント
    • インプリシットグラント
      • 非推奨
    • クライアントクレデンシャルグラント
    • リソースオーナーパスワードクレデンシャルグラント
  • リソースオーナーパスワードクレデンシャルグラントを利用できるのは、リソースサーバーおよび認可サーバーとクライアントの提供元が同じ組織である場合
    • クライアントタイプがコンフィデンシャル、パブリックの両方で利用可
  • PKCE は「Proof Key for Code Exchange」の略で「ピクシー」と読む