PKCEとは?Go言語OAuth 2.0実装で使う安全な認可コードフロー
PKCEは、OAuth 2.0の認可コードフローをより安全にするための仕組みです。読み方は「ピクシー」とされることが多く、正式には Proof Key for Code Exchange です。特に、モバイルアプリ、デスクトップアプリ、単一ページアプリケーションのように、クライアント秘密値を安全に保持しにくい公開クライアントで重要です。RFC 7636では、認可要求ごとに一意なコード検証値を作り、その変換値であるコードチャレンジを認可サーバーへ送り、トークン交換時にコード検証値を提出して照合する流れが定義されています。
Go言語でOAuth 2.0ログインや外部API連携を実装するとき、PKCEは「任意で付ける追加機能」ではなく、今後の標準的な安全設計として考えるべきです。OAuth 2.1の説明では、認可コードフローを使うすべてのOAuthクライアントにPKCEが必要になること、リダイレクトURIは完全一致で比較すべきこと、暗黙的付与や資源所有者パスワード資格情報付与が仕様から省かれることが示されています。
EN
JP
KR