> ## 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.

> Auth0 Actions を使用して、ユーザーの 組織 情報をセッションメタデータに追加する方法を学びます。

# ユースケース: セッションメタデータ内の組織情報

セッションメタデータを使用すると、ユーザーコンテキストデータをセッションのライフサイクル全体および logout イベント全体で引き継いで参照できます。

下流システムでは、セッションメタデータの情報を監査、分析、取り消しパイプラインの適用などに利用できます。

<Warning>
  Auth0 セッションメタデータは安全なデータストアではないため、機密情報の保存には使用しないでください。これには、secrets や、社会保障番号やクレジットカード番号などの高リスクな PII が含まれます。Auth0 のお客様には、メタデータに保存するデータを十分に評価し、identity and access management の目的に必要なものだけを保存することを強くお勧めします。詳しくは、[Auth0 General Data Protection Regulation Compliance](/docs/ja-jp/secure/data-privacy-and-compliance/gdpr) をご覧ください。
</Warning>

<div id="add-organization-information-to-session-metadata">
  ## 組織 の情報をセッションメタデータに追加する
</div>

[Actions](/docs/ja-jp/customize/actions) を使用すると、[post-login](/docs/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger) の `api.session.setMetadata()` メソッドで 組織 の識別子をセッションに保存し、`event.session.metadata` オブジェクトから参照できます。

Post-Login Action コード:

```javascript lines theme={null}
/**
 * post-login Action（シンプル版）
 * 後続のActions、Management API、および（有効な場合）バックチャネルログアウトトークンに
 * 組織コンテキストをセッションメタデータへ追加して反映させます。
 */
exports.onExecutePostLogin = async (event, api) => {
  // transactionが組織を対象とする場合のみ処理を続行する
  if (!event.organization) return;

  // 値は短くString型のみにする（セッションメタデータにはStringが必要）
  const orgId = String(event.organization.id || "");
  const orgSlug = String(event.organization.name || "");
  const orgDisplay = String(event.organization.display_name || orgSlug);

  // 最小限の冪等な書き込み（制限を大幅に下回るよう、キー数を少なく抑える）
  api.session.setMetadata("org_id", orgId);
  api.session.setMetadata("org_slug", orgSlug);
  api.session.setMetadata("org_name", orgDisplay);
};
```

セッションメタデータは後続のActionsで利用でき、[Management API](https://auth0.com/docs/api/management/v2)から取得することも、[OpenID Connect Back-Channel Logout](/docs/ja-jp/authenticate/login/logout/back-channel-logout)トークンに含めることもできます。

* 後続のActionsでは、`event.session.metadata` オブジェクトを使用してデータを参照できます。

```javascript lines theme={null}
const orgId = event.session.metadata?.org_id;
```

* Management API を使用している場合は、[/api/v2/sessions/{id}](https://auth0.com/docs/api/management/v2/sessions/get-session) エンドポイント経由でデータを取得できます。

```bash lines theme={null}
GET /api/v2/sessions/{id}
```

レスポンス例:

```json lines theme={null}
{
  "session_metadata": {
    "org_id": "org_abc123",
    "org_slug": "acme",
    "org_name": "Acme Corp"
  }
}
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  `/api/v2/sessions/{id}` エンドポイントを呼び出すには、`update:session` スコープを持つ [Management API access token](/docs/ja-jp/secure/tokens/access-tokens) が必要です。
</Callout>

* [OIDC Back-Channel Logout session metadata](/docs/ja-jp/manage-users/sessions/session-metadata/configure-session-metadata) が設定されたアプリケーションでは、`logout_token` にセッションメタデータが含まれます。

```json lines theme={null}
{
  "events": { "http://schemas.openid.net/event/backchannel-logout": {} },
  "session_metadata": {
    "org_id": "org_abc123",
    "org_slug": "acme",
    "org_name": "Acme Corp"
  }
}
```
