> ## 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 Signature（JWS）を持つ JSON Web Token の構造を説明します。

# JSON Web Token の構造

Auth0 が発行するすべての <Tooltip tip="JSON Web Token（JWT）: 2 者間でクレームを安全に表現するために使用される標準的な IDトークン 形式（多くの場合はアクセストークン形式でもあります）。" cta="用語集を見る" href="/ja/docs/glossary?term=JWTs">JWTs</Tooltip> は、[JSON Web Signatures (JWSs) ](https://tools.ietf.org/html/rfc7515)です。つまり、暗号化されているのではなく署名されています。JWS は、JSON ベースのデータ構造を使用して、<Tooltip tip="JSON Web Token（JWT）: 2 者間でクレームを安全に表現するために使用される標準的な IDトークン 形式（多くの場合はアクセストークン形式でもあります）。" cta="用語集を見る" href="/ja/docs/glossary?term=digital+signatures">デジタル署名</Tooltip> または Message Authentication Code (MAC) で保護されたコンテンツを表します。

適切な形式の JWT は、ドット (`.`) で区切られた 3 つの Base64url エンコード文字列を連結したもので構成されます。

* **JOSE ヘッダー**: トークンの種類と、その内容を保護するために使用される暗号アルゴリズムに関するメタデータが含まれます。
* **JWS ペイロード** ([クレーム](https://tools.ietf.org/html/rfc7519#section-4) のセット) : ユーザーの識別情報や許可されている権限など、検証可能なセキュリティに関する記述が含まれます。
* **JWS 署名**: トークンが信頼でき、改ざんされていないことを検証するために使用されます。JWT を使用する場合は、保存して使用する前に**必ず**[署名を確認](/ja/docs/secure/tokens/json-web-tokens/validate-json-web-tokens)してください。

JWT は通常、次のような形式です。

<Frame>
  <img src="https://mintcdn.com/translations/c0RQ9V0YAcT0-8l5/docs/images/cdy7uua7fh8z/7FI79jeM55zrNGd6QFdxnc/80a18597f06faf96da649f86560cbeab/encoded-jwt3.png?fit=max&auto=format&n=c0RQ9V0YAcT0-8l5&q=85&s=012ea0e0dd23584c5bb4e75a24322c23" alt="JSON Web Token" width="900" height="207" data-path="docs/images/cdy7uua7fh8z/7FI79jeM55zrNGd6QFdxnc/80a18597f06faf96da649f86560cbeab/encoded-jwt3.png" />
</Frame>

JWT の内部を自分で確認するには、[JWT.io Debugger](http://jwt.io) を使用します。これにより、JWT が適切な形式であることをすばやく確認し、さまざまな クレーム の値を手動で調べることができます。

<Frame>
  <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5U3Azt2AReuNzNuQqkRs5/9629ab9924a0212b74bee0b8fa88c295/legacy-app-auth-5.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=0a9775655f059d443df62ab46151aeb8" alt="JWT Debugger" width="900" height="1013" data-path="docs/images/cdy7uua7fh8z/5U3Azt2AReuNzNuQqkRs5/9629ab9924a0212b74bee0b8fa88c295/legacy-app-auth-5.png" />
</Frame>

<div id="jose-header">
  ## JOSE ヘッダー
</div>

使用される暗号操作とそのパラメーターを記述した JSON オブジェクトです。JOSE (JSON Object Signing and Encryption) ヘッダーは、通常、名前と値の組で構成される一連のヘッダーパラメーターで構成され、使用するハッシュアルゴリズム (例: HMAC SHA256 または RSA) や JWT のタイプなどが含まれます。

```json lines theme={null}
{
      "alg": "HS256",
      "typ": "JWT"
    }
```

<div id="jws-payload">
  ## JWS ペイロード
</div>

ペイロードには、エンティティ (通常はユーザー) に関する情報と、クレームと呼ばれる追加の属性が含まれます。この例でのエンティティはユーザーです。

```json lines theme={null}
{
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
    }
```

JWT のクレームを扱う際は、クレームの種類と命名規則について理解しておく必要があります。

<div id="jws-signature">
  ## JWS 署名
</div>

署名は、JWT の送信者が正当な送信元であることを検証し、メッセージが途中で改ざんされていないことを保証するために使用されます。

署名を作成するには、Base64 エンコードされたヘッダーとペイロードをシークレットとともに用意し、ヘッダーで指定されたアルゴリズムで署名します。

たとえば、HMAC SHA256 アルゴリズムを使用してトークンの署名を作成する場合は、次のようにします。

```js lines theme={null}
HMACSHA256(
      base64UrlEncode(header) + "." +
      base64UrlEncode(payload),
      secret)
```

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

* [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)
* [JSON Web Key Sets](/ja/docs/secure/tokens/json-web-tokens/json-web-key-sets)
* [JSON Web Key Set のプロパティ](/ja/docs/secure/tokens/json-web-tokens/json-web-key-set-properties)
* [JSON Web Key Sets を見つける](/ja/docs/secure/tokens/json-web-tokens/locate-json-web-key-sets)
* [アクセストークンを取得する](/ja/docs/secure/tokens/access-tokens/get-access-tokens)
