メインコンテンツへスキップ
セッションメタデータを設定するには、Auth0 の Post-Login ActionManagement API を使用できます。また、OpenID Connect バックチャネルログアウト トークンに含めることもできます。
Auth0 セッションメタデータは安全なデータストアではないため、機密情報の保存には使用しないでください。これには、シークレットや、社会保障番号やクレジットカード番号などの機微性の高い PII が含まれます。Auth0 をご利用のお客様には、メタデータに保存するデータを評価し、アイデンティティおよびアクセス管理の目的に必要なものだけを保存することを強く推奨します。詳細については、Auth0 の GDPR コンプライアンス を参照してください。

Auth0 Management API

Management API を使用して、セッションメタデータに対する CRUD (作成、置換、更新、削除) リクエストを管理できます。
/api/v2/sessions/{id} エンドポイントの呼び出しには、update:session スコープを持つ Management API アクセストークン が必要です。

既存のセッションメタデータを取得する

/api/v2/sessions/{id} エンドポイントに GET リクエストを送信します。
GET /api/v2/sessions/{id}

既存のセッションメタデータを追加または更新する

/api/v2/sessions/{id} エンドポイントに PATCH リクエストを送信します。
PATCH /api/v2/sessions/{id}
Content-Type: application/json

{
  "session_metadata": {
    "my_metadata": "my new metadata"
  }
}

セッションメタデータを削除する

/api/v2/sessions/{id} エンドポイントに対して PATCH リクエストを送信します。
PATCH /api/v2/sessions/{id}
Content-Type: application/json

{
  "session_metadata": {}
}

Auth0 Post-Login Actions

post-login Action では、api.session オブジェクトを使用して、セッションメタデータに対する CRUD 操作を実行できます。これにより、ユーザーやコンテキスト固有のロジックに基づいてセッションメタデータを管理できます。

既存のセッションメタデータを取得する

deviceName メタデータを読み取るには、event.session.metadata?.deviceName オブジェクトを参照します。
const device = event.session.metadata?.deviceName;
event.session.metadata オブジェクトには、次の場所で設定されたメタデータが含まれます。 *同じフロー内のそれ以前の Actions *セッションが再利用された場合は、以前のトランザクション

既存のメタデータを追加または更新する

セッションメタデータを更新するには、api.session.setMetadata() メソッドを使用します。
api.session.setMetadata("deviceName", "Auth0's iPhone");
変更内容は、後続の Actions の event.session オブジェクトですぐに利用できます。

セッションメタデータを削除する

セッションメタデータを削除するには、次の api.session オブジェクトを使用します。
  • api.session.deleteMetadata("key") は、指定したセッションメタデータを削除します
  • api.session.evictMetadata() は、すべてのセッションメタデータを削除します
これらのオブジェクトの詳細については、次を参照してください。
  • イベントオブジェクト: リフレッシュトークンのイベントオブジェクトとプロパティについて確認してください。
  • API object: リフレッシュトークンの API object とメソッドについて確認してください。

OIDC バックチャネルログアウト

Auth0 の Dashboard または Management API を使用して、logout_token にセッションメタデータを含めるよう設定できます。

Auth0 Dashboard

セッションメタデータを含めて OIDC バックチャネルログアウトトークンを設定するには、次の手順に従います。
  1. Dashboard > Applications に移動し、アプリケーションを選択します。
  2. Settings タブを選択します。
  3. OpenID Connect バックチャネルログアウト > Back-Channel Logout URL で、logout_tokens を受信するアプリケーションのログアウト URI を追加します。
  4. Back-Channel Logout Initiators を次のいずれかに設定します。
    • 選択したイニシエーターのみ または
    • サポートされているすべてのイニシエーター
  5. Include Session Metadata をオンにします。
  6. Save Changes を選択します。
設定が完了すると、logout_token には保存されているすべてのセッションメタデータが含まれます。

Auth0 Management API

/api/v2/clients/{id} エンドポイントを使用して、logout_token にセッションメタデータが含まれるようにアプリケーションを更新できます。 /api/v2/sessions/{id} エンドポイントに PATCH リクエストを送信します:
"oidc_backchannel_logout": {
  "backchannel_logout_initiators": {
    "mode": "all"
  },
  "backchannel_logout_urls": [
    "https://httpdump.app/inspect/9bccf574-e55f-4b2e-9822-f37372588fc1"
  ],
  "backchannel_logout_session_metadata": {
    "include": true
  }
}

エラー処理

Dashboard > Monitoring > Logs に移動してセッションメタデータのログイベントを確認するか、Management API logs エンドポイントを使用してログを取得できます。
  • Actions によるセッションメタデータの追加または更新中にエラーが発生した場合、認証トランザクションは失敗し、エラーがコールバック URL に返されます。
失敗を示す f イベントコードが、対応するエラーとともに記録されます。
{
  "error": "access_denied",
  "error_description": "Failed to set session metadata: Invalid metadata: Metadata keys may only include letters, numbers, underscores, or hyphens",
  "state": "my-custom-state"
}
  • Auth0 Management API を使用した セッションメタデータの管理中に失敗が発生した場合、API は HTTP status: 400 エラーと対応するエラーメッセージを返します。
{
  "statusCode": 400,
  "message": "Metadata must not exceed 25 entries. Each key and value must be ≤ 255 characters."
}