PKCE code_verifier・code_challenge 生成

code_verifier を生成または貼り付けると、OAuth 2.0 PKCE(RFC 7636)用の S256 code_challenge を計算します。

code_challenge (S256)

ブラウザ内だけで動作します。入力内容は送信・保存されません。

使い方

  1. 生成ボタンで新しい code_verifier を作るか、貼り付けます。
  2. code_challenge は BASE64URL(SHA-256(code_verifier)) で計算されます。
  3. 認可リクエストに code_challenge と code_challenge_method=S256 を付けます。
  4. トークンリクエストに code_verifier を付けます。

よくある質問

PKCE とは?

Proof Key for Code Exchange(RFC 7636)です。認可リクエストにハッシュした code_challenge、トークンリクエストに元の code_verifier を送るため、認可コードだけを盗まれてもトークンは取得できません。

code_challenge の計算方法は?

S256 では code_verifier(ASCII)の SHA-256 をパディングなしの base64url でエンコードします。RFC 7636 の例 dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk の結果は E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM です。

生成される verifier が 43 文字なのは?

32 バイトの乱数をパディングなし base64url にすると 43 文字で、RFC 7636 が認める最小の長さです(A-Z、a-z、0-9、-、.、_、~ で 43〜128 文字)。

関連ツール