JWT デコーダー/

あなたのデータは 100% プライベートです -- JWT は完全にデバイス上で直接デコードおよびエンコードされます。

JWT
デコードされたヘッダー
デコードされたペイロード
パブリックキー

JWT について学ぶ

JWT に関するすべての情報と、多様なフレームワークで JWT を検証するためのステップバイステップガイド。

JWT とは?

JWT(JSON Web Token)は、情報を構造化されたわかりやすい形式で含んだ自己完結型のステートレスなトークンです。API を保護するか、アプリケーションでトークンベースの認証を採用するかにかかわらず、JWT は強力なツールです。その理由は次のとおりです:

  • ステートレス: JWT は自己完結しており、検証のためにサーバー側の状態を必要としません。署名によりデータの整合性を確保できます。
  • クロスサービスの互換性: JWT は異なるサービス間で簡単に共有および確認することができます。
  • 拡張性: JWT のペイロードにはカスタムクレームを含めることができ、柔軟な認可と情報の共有を可能にします。
さらに詳しく学ぶ

JWT の構造

通常の JWT は、Base64URL でエンコードされ、ピリオドで区切られた三つの部分に分かれている:

  • ヘッダー - 署名アルゴリズム(例:HS256 または RS256)やトークンの型(JWT など)といったメタデータを含みます。
  • ペイロード - ユーザー ID、ユーザープロファイル、有効期限、スコープなどの実際のデータを含みます。
  • 署名 - ヘッダー、ペイロードの組み合わせをハッシュで加工し、秘密鍵を用いて保護しています。その目的は、トークンの完全性を確保し、改ざんされていないことを確認することです。

この構造により、JWT はパーティ間で情報をコンパクトで安全に伝達する方法を提供します。

jwt_structure

JWT の一般的なトークンクレーム

クレームはペイロードの一部であり、重要な情報を保持しています。以下は標準化された登録クレームです:

クレームフルネーム説明
iss発行者JWT を発行したエンティティ、例えば認証サーバー。
sub主題JWT の主題を識別し、通常は認証されたユーザーを表します。
aud受信者どの受信者がトークンを受信して処理できるのかを指定します。これは単一の受信者に対する一つの値、または複数の受信者に対応する複数の値の配列として指定できます。
exp有効期限トークンが無効になるまでの有効期限を設定します。これにより、トークンが有効である期間を制限し、リプレイ攻撃を防止するのに役立ちます。
nbf有効開始時間このタイムスタンプの後にトークンが有効になります。クロックが利用できない状況で役立ちます。
iat発行時刻トークンが作成された時刻を示します。これにより、トークンの年齢を判断できるようになります。
jtiJWT IDトークンの一意の識別子であり、同じトークンが複数回使用されることを防ぐのに役立ちます(例:リプレイ攻撃で)。

仕様や認証サーバーの設定によっては、特定のユースケースをサポートするために、ペイロードに追加のクレームが含まれることがあります。また、ビジネスの特定のニーズを満たすために JWT にカスタムクレームを追加することもできます。

注意事項: JWT クレームにプライベートまたは機密情報を保存しないでください。JWT クレームはエンコードされて(Base64URL を使用)いますが、暗号化されていません。これは、トークンを持っている人は、署名を無効にせずにトークンを改ざんできなくても、クレームをデコードして見られることを意味します。必要に応じて、機密データを保護するために、暗号化やその他の安全な方法を使用してください。

JWT を使用するとき?

JWT は、次の状況で特に役立つことができます:

  1. マイクロサービスアーキテクチャ: 複数のサービスにわたるステートレスな認証。
  2. シングルサインオン (SSO) システム: 一つの認証で複数のアプリケーションへのアクセスを可能にします。
  3. モバイルアプリケーション: API 呼び出しを通してユーザーセッションを効率的に維持。
  4. 高トラフィック アプリケーション: 高ボリュームの環境でデータベースの負荷を軽減。
  5. クロスオリジン リソース共有 (CORS): 複数のドメインにわたる認証を簡素化。
  6. サーバーレス アーキテクチャ: サーバーサイドセッションが難しいところでのステートレスな認証。
さらに詳しく学ぶ

JWT を検証する方法は?

JWT の完全性を確認するために、そのヘッダーやペイロードが改ざんされていないことを確認する必要があります。以下は人気のあるプログラミング環境で JWT を確認するためのステップバイステップの例です:

関連する JWT トピック

JWT に関するすべての情報と、多様なフレームワークで JWT を検証するためのステップバイステップガイド。

Logto Cloudでさらに利用を解除

Logto Cloud でワークフローを簡素化し、ユーザー管理を確実にセキュリティする。OpenID Connect (OIDC) に基づき、JWT を活用して、ニーズに応じてスケールする信頼性の高い認証および認可システムを提供します。