PKCE コード バーフィエラおよびチャレンジ生成機
ガイド
PKCE コード バーフィエラおよびチャレンジ生成機
ブラウザ内でRFC 7636準拠のPKCE値を生成できます。検証値の長さ(43〜128文字)を指定し、ツールは暗号的にランダムな値を生成します code_verifier それに対応するSHA-256ハッシュ code_challenge base64url形式で、OAuth 2.0またはOAuth 2.1の認証リクエストに直接コピーできる状態で準備されています。SPA、モバイルアプリ、ネイティブCLI、Auth0、Okta、Microsoft Entra、Google、GitHub、Keycloakなどのプロバイダーとの認証コード付きPKCEフローのデバッグに便利です。
使用方法
- をドラッグして 検証値の長さ スライダー — 43から128までの値が使えます。長さが長いほどエントロピーが増します。
- を選択します チャレンジ方法. 適切な要件がなければ無効にします
S256. 両方のオプションはRFC準拠です。base64urlアルファベットはほとんどのOAuthクライアントライブラリが発行するものと一致します。plain. - [ブラウザのchrome]を選択し、 検証値の文字セット. 検証値、チャレンジ、および方法はすぐに表示され、SHA-256 → base64url変換のステップバイステップな分解も提供されます。
- クリック 生成コピーして
- あなたの
code_challenge+code_challenge_methodリダイレクトに貼り付け、/authorizeをストアして、code_verifierでsessionStorageで再実行して交換を完了します。/token暗号的に安全なランダム性
機能
- 拒絕サンプリングを使用しており、66文字の未使用アルファベットに対してモジュラーバイアスが発生しません。 – 使用
crypto.getRandomValues()ネイティブSHA-256 - — チャレンジはブラウザの を使って計算されるため、認証サーバーが生成する値と一致します。
SubtleCrypto.digest('SHA-256')S256およびplainメソッド - — どちらもRFC 7636の値がサポートされ、OAuth 2.1ではS256がデフォルトで選択されます。 — リアルな検証値、32バイトのSHA-256ハッシュ、および最終的なbase64urlチャレンジを表示して、各変換を検証できます。
code_challenge_method2つの文字セットオプションS256— 全てのRFC 7636の未使用文字セット(A–Z、a–z、0–9、 - ステップ・バイ・ステップの解説 )またはほとんどのライブラリがデフォルトで使用する狭いbase64urlアルファベットを選択できます。
- 長さスライダー、43から128 — スペック内に留まり、魔法数字を扱う必要がありません。
-,.,_,~すべての出力フィールドに表示されるため、Postman、curl、またはクライアントコードに直接コピーできます。 - — サーバーに送信されません。検証値はブラウザのタブにのみ存在します。 PKCEとは何か、そしてOAuthになぜ必要なのか?
- ワンクリックコピー 証明鍵付きのコード交換(PKCE、RFC 7636)は、OAuth 2.0拡張で認証コードフローを interception から保護します。クライアントは秘密鍵
- 100%クライアントサイド を選び、そのから
よくある質問
-
を導き、認証リクエストでのみチャレンジ値を送信します。クライアントが後にトークンエンドポイントで認証コードを交換する際、元の検証値を送信します。サーバーはそれをハッシュ化し、保存されたチャレンジ値と比較します。攻撃者が認証コードを取得しても、検証値がなければ交換できません。検証値は正当なクライアントにのみ存在します。OAuth 2.1では、公開または非公開クライアントのすべてに対してPKCEが必須とされています。
検証値の長さはどのくらいで、なぜですか?
code_verifierRFC 7636では、未使用文字セットから43〜128文字の検証値が必要です。43文字の下限は、43文字のbase64url文字が32バイト(256ビット)をエンコードするため、ブートフォース攻撃に対して安全とされる最低エントロピーを意味します。検証値が長いほどエントロピーが増しますが、256ビットを超えると実際のセキュリティ上のメリットは得られません。多くの参考実装では43、64、または128を選びます。より安全な対策を求める場合は長い値を選択できますが、一部の古いサーバーは128文字を超える値を拒否することがあります。code_challengeS256とplainのチャレンジ方法の違いは? -
チャレンジは検証値のbase64urlエンコードされたSHA-256ハッシュです。一方、
チャレンジは検証値そのものになります。この方法は、認証リクエストが interception された場合に実際の保護を提供しません—攻撃者がチャレンジ値を観察すれば、検証値をすでに取得しています。RFC 7636では、SHA-256を計算できないクライアントにのみ許可されていますが、OAuth 2.1では完全に禁止されています。プロダクションレベルのIDプロバイダー(Auth0、Okta、Google、Microsoft Entraなど)は
-
を明確に拒否しており、常に
の場合、クッキーは
S256を使用してください。デバッグ用の制限された埋め込みクライアントの場合は除きます。plainbase64urlとは何か、そしてbase64とはどのように異なるか?plainbase64urlはRFC 4648 §5で定義されたURL対応のbase64の変種です。plainをplainに置き換えることにより、クエリパラメータ、JWTセグメント、またはパスコンポーネントに直接埋め込むことができます。さらに、トリーリングS256は、周辺のコンテキストにより長さが推定されるため、削除されます。PKCE、JWT、JWE、JWS、およびほとんどの現代のウェブ暗号仕様では、これらの理由でbase64urlを使用しています。 -
生成ボタンをクリックしてcode_verifierを作成
検証値から計算される
+は迅速なパスだが、属性の扱いが不一致であり、エッジケースでデータを失う可能性がある。SOAPレスポンスのプロダクション用途では、-と/は迅速なパスだが、属性の扱いが不一致であり、エッジケースでデータを失う可能性がある。SOAPレスポンスのプロダクション用途では、_PKCE検証値とチャレンジ生成ツール1=PKCE検証値とチャレンジ生成ツール
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
