www.rfc-editor.org/rfc/rfc7636
PKCE (RFC 7636) は、承認コードフローへの拡張機能で、CSRF と承認コードインジェクション攻撃を防ぎます。
PKCE はクライアント認証の形式ではなく、PKCE はクライアントシークレットや他のクライアント認証(private_key_jwt のような クライアント認証)の置き換えではありません。PKCE は、クライアントがクライアントシークレットやその他の形式のクライアント認証を使用している場合でも推奨されます。
注: PKCE はクライアント認証の置き換えではないため、パブリッククライアントを機密クライアントのように扱うことはできません。
PKCE はもともとモバイルアプリの承認コードフローを保護するように設計されましたが、承認コードインジェクションを防ぐ機能により、クライアント認証を使用する Web アプリなど、あらゆるタイプの OAuth クライアントに役立てることができます。