メインコンテンツへスキップ
セッションメタデータを使用すると、ユーザーコンテキストのデータをセッションのライフサイクル全体およびログアウトイベントで共有し、参照できるようになります。 ダウンストリームシステムは、セッションメタデータの情報を使用して、監査の実施、分析の実行、失効パイプラインの適用などを行えます。
Auth0 Session Metadata はセキュアなデータストアではないため、機密情報の保存には使用しないでください。これには、シークレットや、社会保障番号、クレジットカード番号などの高リスクな PII が含まれます。Auth0 のお客様には、メタデータに保存するデータを評価し、アイデンティティおよびアクセス管理の目的に必要なものだけを保存することを強く推奨します。詳細については、Auth0 の GDPR コンプライアンス を参照してください。

組織情報をセッションメタデータに追加する

Actions を使用すると、post-loginapi.session.setMetadata() メソッドで組織の識別子をセッションに保存し、event.session.metadata オブジェクトを使って参照できます。 Post-Login Action コード:
/**
 * Post-Login Action(シンプル版)
 * 組織のコンテキストをセッションメタデータに追加し、後続のActions、
 * Management API、および(有効な場合)バックチャネルログアウトトークンに反映させます。
 */
exports.onExecutePostLogin = async (event, api) => {
  // トランザクションが組織を対象とする場合のみ処理を続行する
  if (!event.organization) return;

  // 値は短く文字列のみにする(セッションメタデータには文字列が必要)
  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から取得することも、OpenID Connect バックチャネルログアウトトークンに含めることもできます。
  • 後続のActionsでは、event.session.metadataオブジェクトを通じてデータを参照できます。
const orgId = event.session.metadata?.org_id;
  • Management API を使用している場合は、/api/v2/sessions/ エンドポイント経由でデータを照会できます。
GET /api/v2/sessions/{id}
レスポンス例:
{
  "session_metadata": {
    "org_id": "org_abc123",
    "org_slug": "acme",
    "org_name": "Acme Corp"
  }
}
/api/v2/sessions/{id} エンドポイントを呼び出すには、update:session スコープを持つ Management API アクセストークン が必要です。
{
  "events": { "http://schemas.openid.net/event/backchannel-logout": {} },
  "session_metadata": {
    "org_id": "org_abc123",
    "org_slug": "acme",
    "org_name": "Acme Corp"
  }
}