Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

JWT (Json Web Token)とは?JWT認証を行う方法はこちら

多くのWebアプリケーションでは、JWT (Json Web Token)が活用されています。JWT認証は現在主流の認識方式として、多くの開発者に利用されています。本文では、JWTの構成、仕組みなどの基本情報を紹介した上、使いやすいツールを使って、JWT認証を簡単に行う方法を皆さんに紹介していきたいと思います。

中村 拓也

中村 拓也

Updated on 11月 12, 2024

多くのWebアプリケーションでは、JWT (Json Web Token)が活用されています。JWT認証は現在主流の認識方式として、多くの開発者に利用されています。本文では、JWTの構成、仕組みなどの基本情報を紹介した上、使いやすいツールを使って、JWT認証を簡単に行う方法を皆さんに紹介していきたいと思います。

button

JWT (Json Web Token)とは

JWT (JSON Web Token) とは、JSON形式で記述されたトークンの一種です。JWTには3つの要素が含まれています。

  • ヘッダー (Header): トークンのタイプとハッシュアルゴリズムなどのメタデータ
  • ペイロード (Payload): トークンに含まれる実際のデータ
  • 署名 (Signature): ヘッダーとペイロードを元に計算される電子署名

これらはドット(.)で区切った文字列として表現されます。

xxxxx.yyyyy.zzzzz

JWT の特徴として、独自の署名機能によりデータの改ざん検知が可能であることがあげられます。またトークン単体でデータを含むため、サーバーでのデータ参照が不要なステートレスな認証が実現できます。これらの利点から、Web API等での認証・認可によく利用されるようになっています。

JWTの構成

上記の内容から、JWTは、ヘッダー、ペイロードと署名といった3つの要素から構成されています。次は、JWTの構成要素をサンプル付きで詳しく解説していきます。

JWTのヘッダー

JWTの先頭部分になります。トークンのメタデータがJSON形式で記述されます。

{
  "alg": "HS256",
  "typ": "JWT"
}
  • alg: ハッシュアルゴリズム(この例ではHMAC SHA-256)
  • typ: トークンのタイプを示す

JWTのペイロード

JWTの中身の部分です。クレームと呼ばれる名前と値のペアのJSONオブジェクトになります。

{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}
  • sub: subjectの略。ユーザーを特定するid
  • name: ユーザー名
  • admin: 管理者アクセスの可否

JWTの署名

JWTの署名は、ヘッダーとペイロードに基づいて生成される電子署名になります。次は、ヘッダーとペイロードを連結し、秘密鍵(secret)を使ってHMACで署名した例になります。また、base64 encode/decodeも行っていることもよく見られます。

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

このようにして、ヘッダー、ペイロード、署名をドットで区切って連結することでJWTが完成します。

JWT認証の仕組み

JWT認証の仕組みは以下のような流れで行われます。

  1. ユーザーが認証情報(ID/パスワードなど)を送信してログイン
  2. サーバーが認証情報を検証し、正しい場合にJWTを発行
  3. 発行されたJWTにはヘッダー、ペイロード、署名の要素が入っている
  4. ユーザーは発行されたJWTをリクエストヘッダーに含めてサーバーに送信
  5. サーバーはJWTの署名を検証し、内容が改ざんされていなければトークンは有効と判断
  6. 有効なJWTが送信されていれば、ペイロードに含まれるユーザー情報などを利用して認証済みとしてリソース提供可
  7. JWTの有効期限が切れると無効として扱われ、再ログインが必要になる
JWT認証の仕組み
画像出典:https://developer.mamezou-tech.com/blogs/2022/12/08/jwt-auth/

つまり、事前に発行されたJWTを利用してAPIなどサーバーリソースにアクセスし、トークンベースの認証を実現しているので、すーと(状態)をサーバー側で保持する必要がないためスケールしやすいアーキテクチャとなっています。

button

一番簡単な方法でJWT認証を行う方法

それでは、Webアプリを実際に開発する際に、JWT認証を行う必要がある場合、どうしたらいいですか?次は、Apidogという非常に使いやすいAPI管理ツールを使って、簡単にJWT認証を行うことができます。

ApidogでJWT認証を行う

Apidogを開き、APIリクエストの送信画面で「Auth」タブに切り替えると、タイプを「JWT」に指定することができます。そして、同じ画面でJWTの詳細情報を記入して、「送信」ボタンをクリックすれば、簡単にJWT認証を行うことができます。

ApidogというGUIツールを使って、非常に直感的な操作でJWT認証を行うことができるので、開発者にとって非常に重宝のツールになるのでしょう。

まとめ:JWTとJWT認証を実践的に理解

WebアプリケーションやAPIサービス等で広く採用されているJWT(JSON Web Token)を用いた認証は、ステートレスなトークンベース認証を実現できるため、スケーラブルな認証インフラストラクチャを提供します。しかし、JWT認証を初めて導入する際には、その仕組みや構成要素(ヘッダー、ペイロード、署名)の理解が必要で敷居が高くなりがちです。

そこでオススメなのが、Apidogという使いやすいGUIベースのAPI管理ツールを利用することです。Apidogであれば、直感的なUI操作だけで簡単にJWTトークンの発行や送信、検証を試すことができます。JWT認証時のリクエストヘッダーやレスポンス、ステータスコードなども確認できるので、開発者にとって丁度いい実践的な学習ツールになります。

button

Ollamaの使い方:OllamaによるローカルLLMのための完全初心者ガイド観点

Ollamaの使い方:OllamaによるローカルLLMのための完全初心者ガイド

人工知能の世界は絶え間ないペースで進化しており、大規模言語モデル(LLM)はますます強力でアクセスしやすくなっています。多くの人がクラウドベースのサービスを通じてこれらのモデルを利用していますが、個人のマシンで直接実行することに焦点を当てる動きが広がっています。ここで登場するのがOllamaです。Ollamaは、Llama 3、Mistral、Gemma、Phiなどの最先端LLMをローカルでダウンロード、設定、実行するプロセスを劇的に簡素化するために設計された、強力かつユーザーフレンドリーなツールです。 この包括的なガイドでは、インストールと基本的な使用法から、高度なカスタマイズ、APIの使用、重要なトラブルシューティングまで、Ollamaを使い始めるために知っておくべきすべてを解説します。ローカルLLMをアプリケーションに統合したい開発者、さまざまなアーキテクチャを実験したい研究者、あるいは単にオフラインでAIを実行することに興味がある愛好家であっても、Ollamaは合理化された効率的なプラットフォームを提供します。 💡さらに、これらのモデルをApidogのようなツールと統合す

中村 拓也

4月 28, 2025

DeepWiki:AIが導くGitHubの新探索ガイド観点

DeepWiki:AIが導くGitHubの新探索ガイド

DeepWikiは、AI技術を用いてGitHubリポジトリの探索を再定義します。インテリジェントなドキュメント、インタラクティブな図、対話型アシスタントにより、開発者が複雑なコードベースを容易に理解できます。学習、貢献、探求のための良きパートナーです。

中村 拓也

4月 26, 2025

Claudeプランの選び方:2025年のAI利用スタイルに合うのはどれ?観点

Claudeプランの選び方:2025年のAI利用スタイルに合うのはどれ?

使用ニーズに応じてClaudeの無料版またはPro版を選択します。偶然のユーザーには無料版が基本的なニーズを満たし、高度な機能と柔軟性を求めるユーザーにはPro版が生産性を向上させる鍵となります。

中村 拓也

4月 25, 2025