> ## 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）とは何か、その構造、および Auth0 が認証および認可にどのように使用するかについて学びます。

# JSON Web Tokens

<Tooltip tip="JSON Web Token（JWT）: 2者間でクレームを安全にやり取りするために使用される標準的な ID トークン形式（多くの場合、アクセストークン形式としても使用されます）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=JSON+web+token">JSON Web Token</Tooltip> (JWT、「ジョット」と発音) は、当事者間で情報を 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="SAML トークンと比較したエンコード済み JWT" width="900" height="1380" data-path="docs/images/cdy7uua7fh8z/4S6xl4Yvi0H1CUrLB69ZtH/e3e3bf1767d2d29563a99cf71cab158d/comparing-jwt-vs-saml2.png" />
</Frame>

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

<div id="usage">
  ## 使用法
</div>

* **認証**: ユーザーが自分の資格情報を使って正常にログインすると、[ID トークン](/docs/ja-jp/secure/tokens/id-tokens) が返されます。[OpenID Connect (OIDC) specification](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) によると、<Tooltip tip="ID トークン: リソースへのアクセスではなく、クライアント自体のための資格情報です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=ID+token">ID トークン</Tooltip> は常に JWT です。
* **認可**: ユーザーが正常にログインすると、アプリケーションはそのユーザーに代わってルート、サービス、またはリソース (たとえば API) へのアクセスを要求することがあります。そのためには、アプリケーションはすべてのリクエストで <Tooltip tip="アクセストークン: API へのアクセスに使用される、オペーク文字列または JWT の形式の認可資格情報です。" cta="用語集を見る" href="/docs/ja-jp/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 は、使用する前に必ず[署名を使って適切に検証](/docs/ja-jp/secure/tokens/json-web-tokens/validate-json-web-tokens)する必要があります。なお、トークンの検証に成功したとしても、それはトークン内の情報が第三者によって改ざんされていないことを意味するだけです。内容は平文で保存されているため、他者に見られていないことを意味するわけではありません。そのため、JWT に機微な情報を保存してはいけません。また、JWT が傍受されないようにするための対策も必要です。たとえば、JWT は HTTPS 経由でのみ送信し、[ベストプラクティス](/docs/ja-jp/secure/tokens/token-best-practices) に従い、安全で最新のライブラリだけを使用してください。

<div id="learn-more">
  ## 詳しくはこちら
</div>

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