詳細情報:
API (OAuth 設定の有効化): コード交換の証明鍵が必要 (PKCE)
認証コードをアクセストークンと交換するアプリケーションがそのコードを最初に要求したものと同じになるように、動的に作成される暗号化「コード検証」を使用する OAuth 2.0 セキュリティ拡張。
コントロール名
接続アプリケーション: API (OAuth 設定の有効化): コード交換の証明鍵が必要 (PKCE)
推奨設定
サポートされる認証フローのコード交換用プルーフキー (PKCE) 拡張が必要 - 選択済み。
制御の概要
PKCE は、認証コードをアクセストークンと交換するアプリケーションが、そのコードを最初に要求したアプリケーションと同じになるように、動的に作成される暗号化「コード検証」を使用する OAuth 2.0 のセキュリティ拡張機能です。
設定されていない場合のセキュリティリスク
PKCE を使用しない場合、公開クライアント (モバイルアプリケーションや単一ページアプリケーションなど) は、トークン交換中に ID を検証するためのクライアントの秘密を安全に保存できないため、「認証コードの傍受」に対して脆弱です。
脅威のシナリオ
攻撃者は、カスタム URI スキームまたはブラウザーリダイレクトを介して成功した認証コードを傍受し、正当なアプリケーションがユーザーのセッションを効果的に乗っ取ることができる前に、有効なアクセストークンとすぐに交換します。
推定 CVSS スコア範囲
重大 (9.0 ~ 10.0)。
リスクの影響に関する考慮事項
傍受に成功すると、アプリケーションの範囲内でアカウントが完全に乗っ取られ、攻撃者が侵害されたユーザーとして機密の PII を持ち出したり、不正な取引を実行したりする可能性があります。
より高いリスク
安全でない可能性のあるシステムブラウザーや共有デバイス環境でコードが転送されるモバイルアプリケーションや単一ページアプリケーションでは、リスクが高くなります。
低リスク
クライアントの秘密を安全に保存してトークン交換を認証できる「Confidential Clients (サーバー間インテグレーション)」ではリスクが低いと考えられますが、引き続き多層防御として PKCE が推奨されます。
ビジネスと統合に関する考慮事項
PKCE を適用するには、開発者がアプリケーションの OAuth ハンドシェイクロジックを更新して code_challenge パラメーターと code_verifier パラメーターを生成して送信する必要があります。これには、従来のモバイルライブラリの更新が必要になる場合があります。
推奨される修復
Salesforce の接続アプリケーション設定に移動し、[コード交換の証明鍵 (PKCE) 拡張機能が必要] のチェックボックスをオンにします。
Security Health Review Guidance (セキュリティ状態レビューガイダンス)
Security Health Review では、「コードインジェクション」の抜け穴を埋め、モバイルユーザーと Web ユーザーの高保証 ID 検証を保証するために、PKCE をすべての最新の公開インテグレーションの必須ベースラインとして特定しています。

