PKCE flowとは?

PKCE flow?

  • クライアントシークレットを安全に保管することが難しいアプリケーション(ネイティブアプリケーションやSPAなど)で使用される認証フロー
  • PKCE flowを使用するとクライアントアプリケーションの正当性を示すことができる(認可サーバ側からすると正当性を確認することができる)
  • PK(Proof key)の一部であるcode verifierとcode challengeを使用する
  • code challengeはcode verifierのハッシュ値
  • クライアントアプリケーションで生成したcode verifierとcode challengeを元に認可サーバでリクエストの正当性を検証する
  • PKCEフローの前半で認可サーバから受け取る「認可コード」が最終的に「アクセストークン」に交換される(Code Exchange)
  • Code ExchangeのためにProof keyを使用するのでPKCE(Proof Key for Code Exchange)