【おーおーすにーてんぜろふろー】
OAuth 2.0フロー とは?
最終更新:
💡 アプリに権限を渡すまでの、手順の選び方
OAuth 2.0で、アプリがAPIを使うためのアクセストークンを得る手順。利用者に許可を求める場合や、サーバー同士で連携する場合などに応じて使い分ける。
📌 このページのポイント
OAuthのフローって、ログインの方法?
OAuth 2.0は、アプリにAPIを使う権限を渡すための仕組みだよ。フローは、そのためのアクセストークンを受け取る手順のこと。「誰がログインしたか」を確かめる認証は別で、OAuthを土台にしたOpenID Connect(OIDC)などを使うんだ
認可コードの方式は、どんな流れなの?
PKCEを付けると何が変わる?
アプリが今回だけの秘密の値を作り、その値から計算した確認用の値を最初のリクエストで送るよ。コードを交換するときに元の値を示すので、コードだけを盗んだ相手による交換を防ぐ助けになる。S256という計算方式を使い、スマホアプリだけでなくWebアプリでも組み合わせるんだ
いつも認可コードを使えばいい?
古い方式や、更新用のトークンも気になるな
現在の安全指針では、応答でアクセストークンを直接渡すImplicit方式は避けるよう勧められ、利用者のパスワードをアプリへ渡すPassword方式は禁止されているよ。リフレッシュトークンは新しいアクセストークンを得るためのもので、必ず発行されるわけではない。権限を必要最小限にし、期限や保管・更新のルールも確認しよう
もっと詳しく知りたい人へ
PKCEがあればclient_secretは不要?
PKCEは認可コードの横取りや注入への対策であり、クライアント認証を置き換えるものではありません。秘密を守れるサーバー型のクライアントでは、必要なクライアント認証とPKCEを組み合わせます。秘密を守れない公開クライアントはPKCEが必須で、秘密を守れるクライアントにも利用が推奨されています。
📖 おまけ:英語の意味
「OAuth 2.0 Flow」 = OAuth 2.0の処理の流れ
💬 誰が、どの方法で権限を受け取るかを決める手順だよ。用途とアプリの種類に合わせて選ぼう