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

# 匿名セッションのカスタムクレームを設定する

> クレームマッピングを使用して、匿名セッションのメタデータをアクセストークンのカスタムクレームにマッピングします。

> [!WARNING]
>
> **Anonymous Sessions機能は現在、です。**

リソースサーバーがユーザーに関する追加情報を必要とするにもかかわらず、[アクセストークン](https://auth0.com/docs/ja-jp/secure/tokens/access-tokens.md)しか渡していない場合は、[カスタムクレーム](https://auth0.com/docs/ja-jp/secure/tokens/json-web-tokens/create-custom-claims.md)でアクセストークンを拡張し、追加のデータを格納できます。

カスタムクレームを設定する一般的な方法は、[`post-login`](https://auth0.com/docs/ja-jp/customize/actions/explore-triggers/post-login)アクション内で[`api.accessToken.setCustomClaim()`](https://auth0.com/docs/ja-jp/actions/reference/credentials-exchange/credentials-exchange-api-object#api-accesstoken-setcustomclaim-key-value)を呼び出すことです。しかし、[匿名セッション](https://auth0.com/docs/ja-jp/manage-users/sessions/anonymous-sessions.md)のコンテキストではログインが発生しないため、`post-login`アクションも実行されません。その結果、通常の方法ではアクセストークンにカスタムクレームを追加できず、それらのクレームを前提とするAPIはクレームを読み取れなくなります。

この問題を解決するために、Auth0はクレームマッピングを提供しています。これは、匿名セッションのメタデータと、そのセッションに対して発行されるアクセストークンとを直接対応付ける仕組みです。たとえば、次の内容を含むセッションがあるとします。

```json theme={null}
{
  "user_id": "anon@1234-5678-90",
  "session_id": "sess_456",
  "metadata": {
    "language": "EN",
    "country": "US",
    "purchase": "P0123"
  }
}
```

APIが新規に作成する匿名アクセストークンごとに`language`の値を読み取り、`lang`というカスタムクレームとして含めるように構成できます。

## クレームマッピングを構成する

匿名セッションのクレームマッピングを構成するには、[Auth0 Dashboard](https://auth0.com/docs/ja-jp/get-started/auth0-overview/dashboard)または[Management API](https://auth0.com/docs/ja-jp/api/management/v2.md)を使用します。

> [tab] Auth0 Dashboard
>
> 1. [**Dashboard > Applications > APIs**](https://manage.auth0.com/#/apis)に移動し、クレームを構成するAPIを選択します。
>
> 2. **Claim Mapping**タブを選択します。
>
>    ![Auth0 Dashboardのアプリケーションクレームマッピングページ](https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/sessions/anonymous_sessions/anonymous_sessions_claim_mapping.png)
>
> 3. **Add a claim**で、クレームの**Name** (例：`lang`) と、`anonymous_session.metadata.*`配下の値を参照する**Expression** (例：`anonymous_session.metadata.language`) を入力し、**Add**を選択します。
>
> 4. 既存のクレームを編集するには、その横にある鉛筆アイコンを選択します。削除するには、ゴミ箱アイコンを選択します。

> [tab] Management API
>
> APIのクレームマッピングを構成するには、[`/api/v2/resource-servers/{id}`](https://auth0.com/docs/ja-jp/api/management/v2/resource-servers/patch-resource-servers-by-id)エンドポイントに`PATCH`リクエストを送信します：
>
> ```json theme={null}
> {
>   "access_token": {
>     "claims_mapping": {
>       "custom_claims": [
>         {
>           "name": "tier",
>           "expression": "anonymous_session.metadata.tier"
>         },
>         {
>           "name": "lang",
>           "expression": "anonymous_session.metadata.language"
>         }
>       ]
>     }
>   }
> }
> ```
>
> `custom_claims`の各エントリーは、発行されるアクセストークンのクレーム`name`を、`anonymous_session.metadata.<key>`のように匿名セッションから値を読み取る`expression`にマッピングします。
>
> `PATCH`リクエストは`custom_claims`リスト全体を置き換えるため、残しておきたいクレームはすべて含める必要があります。`PATCH`の前に`GET`リクエストで既存のクレームを取得し、必要な変更を加えたうえで、オブジェクト全体を`PATCH`リクエストで渡してください。

## 次のステップ

> [card] [匿名セッションのユースケース](https://auth0.com/docs/ja-jp/manage-users/sessions/anonymous-sessions/anonymous-sessions-use-cases.md)
>
> 匿名セッションのユースケースについて学びます。
