JWT(JSON Web Token)
JWT(JSON Web Token) とは何ですか?
JWT(JSON Web Token)署名付き JSON クレームを運ぶ、コンパクトで URL セーフなトークン形式(RFC 7519)。アクセストークン、ID トークン、セッションコンテナとして広く使われる。
JSON Web Token は Base64URL でエンコードされた 3 つの部分(ヘッダー・ペイロード・署名)をドットで連結した文字列です。ヘッダーは署名アルゴリズムを示し、ペイロードは iss、sub、aud、exp などの標準クレームとアプリ固有データを含み、署名で受信者は完全性と発行元を検証できます。JWT は署名(JWS)または暗号化(JWE)でき、OAuth 2.0、OpenID Connect、サービス間認証の中心です。ステートレスゆえスケールしやすい一方、失効が難しい点が課題です。サーバー側でアルゴリズムを固定し、aud・iss・exp を検証し、有効期間を短くしてリフレッシュトークンやイントロスペクションと併用してください。
● 例
- 01
RS256 で署名され SPA に返される OIDC の ID トークン。
- 02
{ "sub": "u123", "scope": "read:profile", "exp": 1734567890 } を含むアクセストークン。
● よくある質問
JWT(JSON Web Token) とは何ですか?
署名付き JSON クレームを運ぶ、コンパクトで URL セーフなトークン形式(RFC 7519)。アクセストークン、ID トークン、セッションコンテナとして広く使われる。 サイバーセキュリティの ID とアクセス カテゴリに属します。
JWT(JSON Web Token) とはどういう意味ですか?
署名付き JSON クレームを運ぶ、コンパクトで URL セーフなトークン形式(RFC 7519)。アクセストークン、ID トークン、セッションコンテナとして広く使われる。
JWT(JSON Web Token) はどのように機能しますか?
JSON Web Token は Base64URL でエンコードされた 3 つの部分(ヘッダー・ペイロード・署名)をドットで連結した文字列です。ヘッダーは署名アルゴリズムを示し、ペイロードは iss、sub、aud、exp などの標準クレームとアプリ固有データを含み、署名で受信者は完全性と発行元を検証できます。JWT は署名(JWS)または暗号化(JWE)でき、OAuth 2.0、OpenID Connect、サービス間認証の中心です。ステートレスゆえスケールしやすい一方、失効が難しい点が課題です。サーバー側でアルゴリズムを固定し、aud・iss・exp を検証し、有効期間を短くしてリフレッシュトークンやイントロスペクションと併用してください。
JWT(JSON Web Token) からどのように防御しますか?
JWT(JSON Web Token) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
JWT(JSON Web Token) の別名は何ですか?
一般的な別名: JSON Web Token。
● 関連用語
- appsec№ 575
JWT の脆弱性
JSON Web Token の検証実装に潜む欠陥群で、トークンの偽造・権限昇格・認証バイパスを許す。
- identity-access№ 749
OAuth 2.0
リソース所有者が資格情報を共有せずに、サードパーティ製アプリへ API に対する制限付き・スコープ付きのアクセスを委譲できる、オープンな認可フレームワーク。
- identity-access№ 760
OpenID Connect (OIDC)
OAuth 2.0 上に構築された ID レイヤーで、クライアントが署名付き ID トークンを通じて利用者の身元を検証し、基本プロフィールを取得できるようにする。
- identity-access№ 007
アクセストークン
認可サーバーが発行する短命の資格情報で、クライアントは API に提示してユーザーやサービスの代わりに保護リソースへアクセスする。
- identity-access№ 913
リフレッシュトークン
ユーザーの再ログインなしに、OAuth 2.0 認可サーバーから新しい短命なアクセストークンを取得するために用いる長命の資格情報。
- identity-access№ 088
ベアラトークン(Bearer Token)
RFC 6750 で定義された不透明あるいは構造化された資格情報。所持しているだけでリソースへのアクセス権が与えられ、本人確認は行われない。