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)