JWTデコーダー
JSON Web Token (JWT) をデコードして、ヘッダー、ペイロード、署名を表示します。認証と認可で使用されるJWTトークンのデバッグと検査に役立ちます。JWTの内容はどこにも保存されません。
ペイロード (Claims):
ヘッダー (署名アルゴリズムとトークンタイプ):
署名:
署名はBase64URLエンコードされたデータとして表示されます。このツールでは署名の検証は行われません。
JSON Web Tokensについてもっと知る
JWTフォーマット
JSON Web Token (JWT) は、2つの当事者間で転送されるクレームを表現するためのコンパクトでURLセーフな手段です。ドットで区切られた3つのBase64URLエンコードされた部分で構成されます:header.payload.signature。ヘッダーには通常、トークンタイプ(JWT)と署名アルゴリズムが含まれます。ペイロードにはクレーム(エンティティ(通常はユーザー)に関する声明と追加のメタデータ)が含まれます。署名は、メッセージが途中で変更されていないことを検証するために使用されます。
JOSE(JSON Object Signing and Encryption)
JWTは、JSONベースのデータを保護するための標準化された方法を提供する、より大きなJOSE(JSON Object Signing and Encryption)フレームワークの一部です。JOSEにはいくつかの関連仕様が含まれます:署名付きトークン用のJWS(JSON Web Signature)、暗号化トークン用のJWE(JSON Web Encryption)、暗号鍵を表現するためのJWK(JSON Web Key)、暗号アルゴリズムを指定するためのJWA(JSON Web Algorithms)。
JSON Web Signature (JWS)
遭遇するほとんどのJWTはJWSトークンです—署名されていますが暗号化されていません。これは、Base64URLデコードすることで誰でもペイロードを読むことができますが、署名を無効にせずに変更することはできないことを意味します。JWSは完全性と真正性を提供します:トークンが信頼できる当事者によって発行され、改ざんされていないことを検証できます。
署名アルゴリズム
JWSはトークンに署名するためのさまざまな暗号アルゴリズムをサポートしています。これらは2つのカテゴリに分類されます:対称アルゴリズム(署名と検証に同じ鍵を使用)と非対称アルゴリズム(署名に秘密鍵、検証に公開鍵を使用)。
HMACアルゴリズム(対称)
HS256、HS384、HS512は、それぞれSHA-256、SHA-384、SHA-512とHMAC(ハッシュベースのメッセージ認証コード)を使用します。これらは対称アルゴリズムです—同じ秘密鍵がトークンの署名と検証の両方に使用されます。HMACアルゴリズムは高速でシンプルですが、両者が同じ秘密を必要とするため、安全な鍵配布が必要です。
RSAアルゴリズム(非対称)
RS256、RS384、RS512は、SHA-256、SHA-384、またはSHA-512とRSASSA-PKCS1-v1_5を使用します。PS256、PS384、PS512はRSASSA-PSS(確率的署名スキーム)を使用します。RSAアルゴリズムは署名に秘密鍵を、検証に公開鍵を使用します。これにより、セキュリティを損なうことなく検証鍵を公開で共有できます—複数のサービスがトークンを検証する必要がある分散システムに最適です。
楕円曲線アルゴリズム(非対称)
ES256、ES384、ES512は、それぞれP-256、P-384、またはP-521曲線とECDSA(楕円曲線デジタル署名アルゴリズム)を使用します。ECアルゴリズムはRSAと同じセキュリティを提供しますが、鍵サイズが小さいため、署名が小さく、操作が高速になります。ES256は効率性により、現代のアプリケーションでますます人気が高まっています。
JSON Web Encryption (JWE)
JWSが署名付きトークンを提供する一方、JWEはペイロードが機密である暗号化トークンを提供します。JWEトークンは3つではなく5つの部分を持ちます:ヘッダー、暗号化キー、初期化ベクトル、暗号文、認証タグ。JWEはAES-GCMやHMAC付きAES-CBCを含むさまざまな暗号化アルゴリズムをサポートしています。このデコーダーはJWSトークンのみを処理します。JWEトークンには適切な鍵での復号が必要です。
RFC仕様
JWTとJOSE標準は、いくつかのIETF RFCで定義されています:RFC 7519はJSON Web Token (JWT)を定義、RFC 7515はJSON Web Signature (JWS)を定義、RFC 7516はJSON Web Encryption (JWE)を定義、RFC 7517はJSON Web Key (JWK)を定義、RFC 7518はJSON Web Algorithms (JWA)を定義しています。