> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> JSON Web Token（JWT）とその使用方法について説明します。

# JSON Web Tokens

<Tooltip tip="JSON Web Token（JWT）: 2者間でクレームを安全に表現するために使用される標準のIDトークン形式（多くの場合はアクセストークン形式）。" cta="用語集を表示" href="/ja/docs/glossary?term=JSON+web+token">JSON web token</Tooltip> (JWT、「jot」と発音) は、情報を JSON オブジェクトとして当事者間で安全にやり取りするための、コンパクトで自己完結的な方法を定義したオープン標準 ([RFC 7519](https://tools.ietf.org/html/rfc7519)) です。改めて言うと、JWT は標準規格です。つまり、すべての JWT はトークンですが、すべてのトークンが JWT であるとは限りません。

JWT は比較的小さいため、URL、POST パラメーター、または HTTP ヘッダーで送信でき、すばやく転送されます。JWT には、データベースに複数回問い合わせなくて済むよう、エンティティに関する必要な情報がすべて含まれています。また、JWT の受信者は、トークンを検証するためにサーバーへ問い合わせる必要もありません。

<div id="benefits">
  ## 利点
</div>

* **コンパクト**: JWT はサイズが小さいため、HTML や HTTP の環境でやり取りするのに適しています。

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4S6xl4Yvi0H1CUrLB69ZtH/e3e3bf1767d2d29563a99cf71cab158d/comparing-jwt-vs-saml2.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=285e7967fc261499897819388a0ca9ff" alt="エンコードされた JWT と SAML トークンの比較" width="900" height="1380" data-path="docs/images/cdy7uua7fh8z/4S6xl4Yvi0H1CUrLB69ZtH/e3e3bf1767d2d29563a99cf71cab158d/comparing-jwt-vs-saml2.png" />
</Frame>

* **セキュア**: JWT では、X.509 証明書の形式で公開鍵と秘密鍵からなるキーペアを使用して署名できます。また、共有シークレットを使用して HMAC アルゴリズムで対称鍵署名することもできます。詳しくは、[署名アルゴリズム](/ja/docs/get-started/applications/signing-algorithms) を参照してください。
* **一般的**: JSON パーサーは、ほとんどのプログラミング言語でサポートされています。

<div id="usage">
  ## 用途
</div>

* **認証**: ユーザーが認証情報を使用してログインに成功すると、[IDトークン](/ja/docs/secure/tokens/id-tokens) が返されます。[OpenID Connect (OIDC) 仕様](https://openid.net/specs/openid-connect-core-1_0.html#IDToken)によると、<Tooltip tip="IDトークン: リソースへのアクセスではなく、クライアント自体のための認証情報です。" cta="用語集を見る" href="/ja/docs/glossary?term=ID+token">IDトークン</Tooltip> は常に JWT です。
* **認可**: ユーザーがログインに成功すると、アプリケーションはそのユーザーに代わってルート、サービス、またはリソース (たとえば API) へのアクセスを要求できます。そのためには、アプリケーションはすべてのリクエストで <Tooltip tip="アクセストークン: API へのアクセスに使用される、JWT または不透明な文字列形式の認可用認証情報です。" cta="用語集を見る" href="/ja/docs/glossary?term=Access+Token">アクセストークン</Tooltip> を渡す必要があります。これは JWT の形式である場合があります。
* **情報のやり取り**: JWT は、当事者間で情報を安全にやり取りするための優れた方法です。署名できるため、送信者が本人であることを確認できます。さらに、JWT の構造により、内容が改ざんされていないことも検証できます。

<div id="security">
  ## セキュリティ
</div>

JSON オブジェクトに含まれる情報は、デジタル署名されているため、検証可能で信頼できます。JWT は、当事者間の秘匿性を確保するために暗号化することもできますが、Auth0 が発行する JWT は JSON Web Signature (JWS) であり、暗号化ではなく署名されています。そのため、ここでは署名付きトークンに焦点を当てます。署名付きトークンでは、内部に含まれるクレームの完全性を検証できます。一方、暗号化されたトークンでは、それらのクレームを他の当事者から隠すことができます。

一般に、JWT は共通シークレット (HMAC アルゴリズム) を使用するか、RSA または ECDSA を使用した公開鍵/秘密鍵のキーペアで署名できます (ただし、Auth0 がサポートするのは HMAC と RSA のみです) 。トークンが公開鍵/秘密鍵のキーペアで署名されている場合、その署名は、秘密鍵を保持する当事者だけが署名を行えたことの証明にもなります。

受信した JWT は、使用する前に[署名を使用して適切に検証](/ja/docs/secure/tokens/json-web-tokens/validate-json-web-tokens)する必要があります。正常に検証されたトークンは、そのトークンに含まれる情報が他者によって改ざんされていないことを意味するだけである点に注意してください。これは、平文で保存されている内容を他者が見られなかったことを意味するわけではありません。そのため、JWT 内に機密情報を保存してはなりません。また、JWT が傍受されないようにするため、JWT は HTTPS 経由でのみ送信する、[ベストプラクティス](/ja/docs/secure/tokens/token-best-practices)に従う、安全で最新のライブラリのみを使用する、といった追加の対策も講じる必要があります。

<div id="learn-more">
  ## 詳細情報
</div>

* [JSON Web Token の構造](/ja/docs/secure/tokens/json-web-tokens/json-web-token-structure)
* [JSON Web Token のクレーム](/ja/docs/secure/tokens/json-web-tokens/json-web-token-claims)
* [JSON Web Token を検証する](/ja/docs/secure/tokens/json-web-tokens/validate-json-web-tokens)
* [署名鍵](/ja/docs/get-started/tenant-settings/signing-keys)
* [JSON Web Key Sets](/ja/docs/secure/tokens/json-web-tokens/json-web-key-sets)
* [アクセストークンを取得する](/ja/docs/secure/tokens/access-tokens/get-access-tokens)
