18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[OAuth2.0]PKCEのフロー

Last updated at Posted at 2021-04-30

以前 こちら の記事でOAuth2.0について記載したのですが、今回は拡張機能であるPKCEについて記載したいと思います。

PKCE(ピクシー)とは

Authorization Code FlowでClientがモバイルアプリを使用した場合、callbackURLを不正利用して認可コードを横取りしアクセストークンを取ることができてしまうという問題があったのですが、これを解決したのがPKCE(Proof Key for Code Exchange)フローです。

フローの確認

Authorization Code FlowでcallbackURLを不正利用して認可コードを横取りした場合以下のようなフローでアクセストークンが取られてしまいます。
Authorization Code Flow(認可コード横取り).jpg

続いてPKCE Flowは以下のようなフローになります。
PKCE Flow.jpg

このフローがなぜアクセストークンを取られないかを表したのが以下の図です。
PKCE Flowが認可コードを横取りされてもトークンを取れれない確認.jpg

code_challengecode_verifierを使って生成されるためcode_verifierが分からないとエラーになります。code_verifierを割り出すには認可コードの有効期間内では無理なためアクセストークンが取られることはないという設計になっています。

最後に

今回はPKCEのフローの確認まででしたが次の投稿ではPKCEの実装をおこないたいと思います。

18
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?