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

# JSON Web Encryption

> JSON Web Encryptionを使用してアクセストークンを暗号化する方法について説明します。

JSON Web Encryption（JWE）は、JSON形式で暗号化されたコンテンツ表現の[IETF標準](https://datatracker.ietf.org/doc/html/rfc7516)です。Auth0では、APIを構成して、アクセストークンの内容をJWE形式で暗号化することができます。

JWEを使用する場合、Auth0はJSON Web Signature（JWS）で署名済みのクレームのセットを含めて、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-3" href="/docs/ja-jp/glossary?term=json-web-token" tip="JSON Web Token（JWT）: 二者間のクレームを安全に表現するために使用される標準IDトークン形式（および多くの場合、アクセストークン形式）。" cta="用語集の表示">JWT</Tooltip>形式のアクセストークンを生成します。その後、このJWTアクセストークンはJWEで暗号化され、JWEコンパクトシリアル化形式で表されます。そうすることで、アクセストークンのクレームに含まれるデータの機密性を維持しながら、署名を用いて整合性を確実に保護することができます。

#### アクセストークンを生成して検証する

[それぞれのAPIにJWEを構成](/docs/ja-jp/get-started/apis/configure-json-web-encryption)します。JWEを使用するように`apiIdentifier`を構成済みという想定で、以下のサンプルコードはマシンツーマシン（M2M）アプリケーションのクライアント資格情報付与を介して、暗号化されたアクセストークンを要求します。JWEはAuth0が対応するすべての付与タイプで利用できます。

```bash lines theme={null}
curl -X POST --location "https://{domain}/oauth/token" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "client_id={clientId}&client_secret={clientSecret}&audience={apiIdentifier}&grant_type=client_credentials"
```

成功応答には暗号化されたアクセストークンが含まれます。

```json lines theme={null}
{
  "access_token": "eyJ…XAw",
  "expires_in": 86400,
  "token_type": "Bearer"
}
```

アクセストークンを使用する場合、リソースサーバーはJWEトークンを復号化して検証しなければなりません。JWEトークンにはヘッダーにメタデータが含まれ、暗号アルゴリズム（[`alg`](https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.1)）、コンテンツの暗号化アルゴリズム（[`enc`](https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.2)）、そして[APIの構成](/docs/ja-jp/get-started/apis/configure-json-web-encryption)時に指定されていればペイロードの暗号化に用いたキーID（`kid`）が記述されます。

```json lines theme={null}
{
  …
  "alg": "A256GCM",
  "enc": "RSA-OAEP-256",
  "kid": "my-kid"
}
```

この情報を使用して、リソースサーバーはJWEトークンを復号化できるはずです。その結果は通常の署名付きJWTとなり、Auth0のテナントキーを使って検証することができます。

APIにJWEを構成する方法については、「[JSON Web Encryptionを構成する](/docs/ja-jp/get-started/apis/configure-json-web-encryption)」をお読みください。

## もっと詳しく

* [JSON Web Encryption（JWE）の構成](/docs/ja-jp/get-started/apis/configure-json-web-encryption)
