以前 こちら の記事で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の実装をおこないたいと思います。
