『OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本』を読んだ

目的

前作に続いて、OAuthとOpenID Connectの違いを理解したくてこの本を読みました。

techbookfest.org

感想

こちらも前作に続き分かりやすく解説されていて、かつサクッと読めます!

タイトルにもあるように、OAuth、OAuth認証、OpenID Connectの違いが整理して書かれているため、OAuthと比べてどこがどう違うのか上手く説明してくれています。

第2章でOAuthの復習の章を設けられていますが、個人的には前作の『雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしながら学べる本』を理解した後にすぐ読んだほうがより理解がしやすいのかなと思います。

techbookfest.org

あと、個人的にコラムは絶対読み飛ばさないほうが良いです!

OAuthの脆弱性やアプリのログインに脆弱性があった場合にどうやって攻撃されるのかが説明されているので、読み物としても面白いですし、実際にこうやって攻撃されるのかとOAuth認証やOIDCへの理解も深まると思うので。

読書ノート

  • OAuth認証
    • アプリはプロフィールAPIで得たユーザー識別子の情報などを利用して、ユーザーの認証が可能になる
    • OAuth認証、アプリのログイン実装の脆弱性についてのコラムが面白い - p29
    • Facebookではなりすましログインへの対策に /debug_tokenエンドポイントという独自エンドポイントを用意している
  • OpenID Connect(OIDC)
    • OAuthに IDトークン・UserInfoエンドポイントを加えたものを言う
    • IDトークンはユーザーの認証に利用
    • UserInfoエンドポイントはユーザーのプロフィール情報を得るために利用
    • OAuthとOIDCのロール関連用語に違いがある - p36
  • OIDCのフローは3つ
    • 認可コードフロー
    • インプリシットフロー
    • ハイブリッドフロー
      • インプリシットフローと認可コードフローのハイブリッドなフロー
      • パブリッククライアントとコンフィデンシャルクライアントの両方で構成されているクライアントに利用する
        • JavaScriptアプリ・ネイティブアプリ + バックエンドサーバー
  • OIDCでは scopeの値は仕様で決まっている
  • OAuthとOIDCの一番のち外はフローにおいて、IDトークンの発行が行われること
  • デタッチ署名とは、署名の対象と署名が分離した形式の署名のこと