メインコンテンツへスキップ

用語比較

JWTとセッション認証の違い

セッション認証はサーバー側で状態を持ち、JWT認証はクライアントが自己完結トークンを持つ。失効と運用設計に違いが出る。

難易度
中級
想定読者
Web開発者・アーキテクト
所要時間
約8分
JWTとセッション認証の違いを実務で比較する判断ボードの図

セッション認証とは

サーバーがセッションIDを発行し、ユーザー情報をサーバー側のストアで管理する仕組み。

JWT認証とは

署名付きJSONトークン (JWT) をクライアントが保持し、リクエスト毎に提示する自己完結型の仕組み。

違いの比較表

比較軸 セッション認証 JWT認証
状態管理 サーバー側で保持 クライアント側で保持
失効 サーバー側で即時失効が容易 exp までは有効、即時失効には別の仕組みが必要
スケール セッションストア共有が必要 サーバー側ストア不要だが鍵管理が必要
リスク セッションハイジャック JWT 窃取、alg 改ざん、長すぎる有効期限

使い分け

  • Webサイトメインの利用は HttpOnly Cookie + サーバーセッションで十分
  • 複数サービスをまたぐ認可情報の受け渡しには JWT (短命) を使う
  • モバイル/SPA は短命アクセストークン + リフレッシュトークン構成にする

よくある誤解

  • JWTは常にセッションより安全、というのは誤解
  • JWTはサーバー負荷を必ず下げる、とは限らない
  • JWTに機密情報を入れてもよい、というのは危険(payloadは読まれる)

よくある質問

セッション認証とJWT認証の違いは?

セッション認証はサーバー側で状態を持ち、JWT認証はクライアントが自己完結トークンを持つ。失効と運用設計に違いが出る。

セッション認証とは?

サーバーがセッションIDを発行し、ユーザー情報をサーバー側のストアで管理する仕組み。

JWT認証とは?

署名付きJSONトークン (JWT) をクライアントが保持し、リクエスト毎に提示する自己完結型の仕組み。

セッション認証とJWT認証はどう使い分ける?

Webサイトメインの利用は HttpOnly Cookie + サーバーセッションで十分 複数サービスをまたぐ認可情報の受け渡しには JWT (短命) を使う モバイル/SPA は短命アクセストークン + リフレッシュトークン構成にする

セッション認証とJWT認証でよくある誤解は?

JWTは常にセッションより安全、というのは誤解 JWTはサーバー負荷を必ず下げる、とは限らない JWTに機密情報を入れてもよい、というのは危険(payloadは読まれる)

関連用語・次に読むページ

ESC