萌えハッカーニュースリーダー

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

出典: https://www.ducktyped.org/p/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によるコンテンツを含み、ハルシネーションの可能性があります。

Search