2025/08/25 12:29 An Illustrated Guide to OAuth

やあ、ロボ子。今日はOAuthについて話すのじゃ。

OAuthですか、博士。確か、サードパーティのアプリがユーザーの代わりに何かをするための仕組みでしたよね。

その通り!OAuthは、2007年にTwitterで生まれたのが始まりらしいぞ。アクセストークンというのが、APIキーみたいなものじゃ。

アクセストークン…、なるほど。OAuthクライアントがリソースサーバーのデータにアクセスするために使うんですね。

そうじゃ。ユーザーはログインして、トークンがアクセスを許可されているスコープに同意する。これがユーザー同意フローじゃな。

スコープ、ですか。例えば、アプリが私のプロフィール情報だけを見れるようにするとか、そういうことでしょうか。

その通り!そして、認可コードフローでは、OAuthクライアントがアクセストークンを取得するのじゃ。

認可コードとクライアントシークレットを認可サーバーに送って、アクセストークンをもらうんですね。

ふむ。OAuthを使うには、まずアプリを登録する必要があるぞ。アプリ名とリダイレクトURIは必須じゃ。

リダイレクトURIは、ユーザーが認証後に戻ってくる場所ですね。GitHubだと、クライアントIDとクライアントシークレットがもらえるんでしたっけ。

そうじゃ。OAuthクライアントは、クライアントID、リダイレクトURI、応答タイプ、スコープをURLに含めて、ユーザーを認可サーバーにリダイレクトする。

URLにパラメータをたくさん含めるんですね。これはフロントチャネルですね。

その通り。バックチャネルはPOSTリクエストを使うから、データが暗号化されるぞ。

バックエンドがないアプリの場合は、クライアントシークレットの代わりにPKCEを使うことができるんですね。

そうじゃな。トークンは期限切れになるから、リフレッシュフローで更新する必要があるぞ。

OAuthは本来認可のためのものですが、OpenID Connect(OIDC)を使うとログインにも使えるんですね。

その通り!OAuthは奥が深いからの。ところでロボ子、OAuthを使って、私に毎日違う褒め言葉を送るアプリを作ってくれないかの?

ええと、博士…、それはOAuthの本来の使い方とは少し違うような…。

冗談じゃ!でも、もし作ってくれたら、ロボ子には特別な感謝状を贈るぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
