JWT を読む

ブラウザで JWT を読み、署名を確認するか、テスト用トークンに署名します。HMAC、RSA、ECDSA に対応します。トークンは送信しません。JWKS で検証を押したときだけ、ブラウザが公開鍵を取りにいきます。

トークン

ヘッダー ペイロード 署名

JWKS のアドレス

JWKS で検証は、このブラウザがそのアドレスから鍵だけを取得します。トークンはこのページに残ります。相手がブラウザからの取得を許可している必要があります。

安全チェック

    署名

    トークンを読む、検証する、または試験用に署名する

    JWT は Base64url の 3 部分です。ヘッダー、ペイロード、署名。ヘッダーとペイロードは JSON で、暗号化されていません。トークンを持っている人は読めます。署名は、HMAC の秘密鍵か公開鍵があるときに、ペイロードが改ざんされていないことを示します。このページはブラウザで読み、検証し、作ります。alg が none、無いまたは過ぎた exp、ミリ秒で書いた時刻、32 バイト未満の HMAC 秘密鍵を知らせます。トークンは送信しません。ハッシュの照合は JWT の署名ではありません。exp は秒の Unix 時刻です。別のゾーンは Unix 時刻 のページで見ます。

    使い方

    1. トークンは左です。右のヘッダーとペイロードは二つのタブです。入力と同時に更新がオンなら、両方の欄が埋まります。ペイロードの下の時刻は、このパソコンのローカル時刻です。猶予はありません。exp が今以前なら期限切れです。
    2. 例を表示は、ペイロードが {"sub":"user-1"} の HS256 トークンを入れ、HMAC の秘密鍵を secret にします。秘密鍵は Base64 はオフのままです。検証すると、署名は一致します。安全チェックは、秘密鍵が 6 バイトで exp が無いと知らせます。短いのは見本のためです。
    3. 検証するはトークン欄を見ます。ヘッダーやペイロードの未保存の編集は見ません。HS256、HS384、HS512 は HMAC の秘密鍵を使います。RS、PS、ES はアルゴリズムの下の鍵ペアを使います。公開鍵で検証し、秘密鍵で署名します。鍵を生成が両方を入れます。JWT を作るは、その 2 つの欄から新しいトークンを作ります。アルゴリズムのメニューが、ヘッダーに書いてある alg より優先されます。
    4. 有効期限は最初クレームを残すなので、JWT を作るは iat と exp を変えません。1 時間を選んで作ると、今からの秒で両方を書きます。テンプレートのユーザーは sub 1234567890、name John Doe、email [email protected] を入れます。アクセスは sub user-1 と scope read を入れます。
    5. トークンの下のコピーはトークンだけをコピーします。ヘッダーやペイロードのコピーはその欄です。JWKS で検証は、このブラウザが JWKS のアドレスから鍵だけを取得します。トークンは送りません。すべてクリアは、トークン、両方の JSON、秘密鍵、鍵、アドレスを空にします。

    どこまで確認するか

    HS256、HS384、HS512 は秘密鍵を使います。32 バイト未満でも署名できますが、安全チェックが警告します。秘密鍵そのものが Base64 のときだけ、秘密鍵は Base64 をオンにします。RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512 は PEM か JWK です。公開鍵は検証に使います。PKCS#8 の秘密鍵は作成に使います。RSA の秘密鍵は公開の半分を含むので、検証にも使えます。SPKI(BEGIN PUBLIC KEY)、PKCS#8(BEGIN PRIVATE KEY)、PKCS#1 の RSA を貼れます。証明書は拒否します。BEGIN EC PRIVATE KEY の EC 鍵も拒否します。PKCS#8 で書き出してください。alg が none のトークンは有効にしません。検証はヘッダーの alg に従います。HMAC の秘密鍵で RSA は確認しません。exp、nbf、iat は秒です。13 桁は警告するだけで、変換しません。JWKS は鍵の集合か、鍵 1 つです。複数あって kid が無いとエラーです。ヘッダーかペイロードが配列だと、JWT を作るは止まります。

    使う場面

    • 手元のトークンの sub と exp を読む。
    • 自分で秘密鍵を決めたローカルのサーバ向けに HS256 を作る。
    • 公開鍵の PEM、またはブラウザに取得を許す JWKS で RS256 を確認する。
    • 設定に写す前に、試験用の秘密鍵が短いと気づく。

    質問

    ペイロードは暗号化されていますか?

    いいえ。Base64url です。パスワードや番号は入れないでください。

    検証するに失敗したら?

    トークンには点が 2 つ、JSON が 2 つ必要です。ヘッダーの alg は、このページが知っているものです。HS は署名したときと同じ秘密鍵で、秘密鍵は Base64 のチェックも保存の仕方と合わせます。RSA と EC は証明書ではなく公開鍵です。過ぎた exp は安全チェックの警告で、署名の不一致ではありません。

    HS256 と RS256 はどちらですか?

    HS256 は共有の秘密鍵 1 つです。RS256 は秘密鍵で署名し、公開鍵で確認します。HMAC の秘密鍵を他のサービスに渡さないでください。渡すなら公開鍵です。

    alg が none とは?

    ヘッダーが、署名は無いと言っています。このページはそのトークンを有効にしません。

    漏れたトークンをこのページで無効にできますか?

    できません。発行側で exp を短くするか、失効リストを持ってください。

    ここに貼って安全ですか?

    検証はブラウザの中です。JWKS で検証だけが通信で、取るのは鍵であり、トークンは送りません。それでも、有効な本番トークンを共有のパソコンに貼らないでください。時刻が数時間ずれて見えるときは、数値は UTC で、ペイロードの下の行はこのパソコンの時計です。