以前 こちら の記事でOAuth2.0について記載したのですが、今回は拡張機能であるPKCE
について記載したいと思います。
PKCE(ピクシー)とは
Authorization Code FlowでClientがモバイルアプリを使用した場合、callbackURLを不正利用して認可コードを横取りしアクセストークンを取ることができてしまうという問題があったのですが、これを解決したのがPKCE(Proof Key for Code Exchange)フローです。
フローの確認
Authorization Code FlowでcallbackURLを不正利用して認可コードを横取りした場合以下のようなフローでアクセストークンが取られてしまいます。
このフローがなぜアクセストークンを取られないかを表したのが以下の図です。
code_challenge
はcode_verifier
を使って生成されるためcode_verifier
が分からないとエラーになります。code_verifier
を割り出すには認可コードの有効期間内では無理なためアクセストークンが取られることはないという設計になっています。
最後に
今回はPKCEのフローの確認まででしたが次の投稿ではPKCE
の実装をおこないたいと思います。