詳細情報:
セキュリティ: コード交換の証明鍵が必要 (PKCE)
このセキュリティ設定では、互換性のあるすべての OAuth 2 で暗号ハンドシェイクが必須です。
コントロール名
外部クライアントアプリケーション: セキュリティ: コード交換の証明鍵が必要 (PKCE)
推奨設定
サポートされる認証フローのコード交換用プルーフキー (PKCE) 拡張が必要。
制御の概要
このセキュリティ設定では、すべての互換性のある OAuth 2.0 許可種別で暗号化ハンドシェイクが必須です。クライアントは、最初の要求時にハッシュコードチャレンジを送信し、トークン交換時にプレーンテキストコード検証を送信して、要求を特定のクライアントインスタンスにバインドします。
設定されていない場合のセキュリティリスク
サポートされているすべてのフローで PKCE を適用しない場合、認証サーバーには元の通話者の ID を検証する技術的なメカニズムがないため、傍受された認証コードまたは中間ログイン情報が悪意のあるアクターによってアクセストークンに正常に交換される可能性があります。
脅威のシナリオ
攻撃者は、ブラウザー履歴、システムログ、またはカスタム URI スキームの代行受信を介して、成功したログインから有効な認証コードまたは代行受信可能なログイン情報を取得し、正当なクライアントがハンドシェイクを完了する前にプログラムで有効なセッショントークンを取得します。
推定 CVSS スコア範囲
高 (7.0 ~ 8.9)。
リスクの影響に関する考慮事項
該当するすべてのフローで PKCE を適用しないと、セッションハイジャックや不正なデータアクセスが横行する可能性があります。特に、静的クライアントの秘密が使用されていないインテグレーションや侵害されたインテグレーションが標的になります。
より高いリスク
ネイティブモバイルアプリケーションや単一ページ Web アプリケーション (SPA) などの公開クライアントでは、クライアントの秘密を安全に保存できず、トラフィックのリダイレクトが監視可能な環境で頻繁に動作するため、リスクは高くなります。
低リスク
必須のクライアントの秘密をすでに適用し、厳格に隔離されたネットワーク境界内で業務を行うセキュアなバックエンドサーバーで機密クライアントを排他的に使用する組織の場合は、リスクが低くなります。
ビジネスと統合に関する考慮事項
サポートされるすべてのフローでこの要件を有効にするには、すべての統合クライアントアプリケーションで S256 変換方法がサポートされ、トランザクションごとに一意の高エントロピー文字列が管理されている必要があります。
推奨される修復
外部クライアントアプリケーションの [OAuth 設定] に移動し、サポートされているすべての認証フローで [コード交換の証明鍵 (PKCE) が必要] チェックボックスをオンにします。
Security Health Review Guidance (セキュリティ状態レビューガイダンス)
Security Health Review では、PKCE がすべての最新の ID および認証フローの必須アーキテクチャ標準として識別されるため、すべてのトークン交換が特定のクライアントインスタンスに暗号でバインドされ、ログイン情報の挿入と傍受が防止されます。

