メインコンテンツへスキップ
Session Metadata は現在、Enterprise 顧客のみを対象とした Early Access 機能です。この機能を使用することで、Okta の Master Subscription Agreement に定められた該当の無料トライアル条件に同意したものとみなされます。Auth0 の製品リリースサイクルの詳細については、Product Release Stages を参照してください。
セッションメタデータを設定するには、Auth0 の Post-Login ActionManagement API を使用できます。また、OpenID Connect Back-Channel Logout トークンに含めることもできます。

Auth0 Management API

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

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

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

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

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

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

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

セッションメタデータを削除するには、PATCH リクエストを /api/v2/sessions/{id} エンドポイントに送信します。
PATCH /api/v2/sessions/{id}
Content-Type: application/json

{
  "session_metadata": {}
}

Auth0 ポストログイン Actions

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

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

event.session.metadata?.deviceName オブジェクトを使用して、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() は、すべてのセッションメタデータを削除します
これらのオブジェクトの詳細については、次のドキュメントを参照してください。
  • Event object: リフレッシュトークンの Event オブジェクトとプロパティについて説明しています。
  • API object: リフレッシュトークンの API オブジェクトとメソッドについて説明しています。

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

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

Auth0 Dashboard

セッションメタデータを含む OIDC Back-Channel Logout トークンを設定するには、次の手順に従います。
  1. Dashboard > Applications に移動し、対象のアプリケーションを選択します。
  2. Settings タブを選択します。
  3. OpenID Connect Back-Channel Logout > Back-Channel Logout URL の項目で、logout_token を受信するアプリケーションのログアウト URI を追加します。
  4. Back-Channel Logout Initiators を次のいずれかに設定します。
    • Selected initiators only または
    • All supported 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 エンドポイントを使用してログを取得することで、Session メタデータに関するログイベントを確認できます。
  • Actions を使用して Session メタデータを追加または更新している際にエラーが発生すると、認証トランザクションは失敗し、コールバック URL にエラーが返されます。
失敗を表す f のイベントコードが、対応するエラーと共にログに記録されます。
{
  "error": "access_denied",
  "error_description": "セッションメタデータの設定に失敗しました: 無効なメタデータ: メタデータキーには文字、数字、アンダースコア、ハイフンのみ使用できます",
  "state": "my-custom-state"
}
  • Auth0 Management API を使用してセッションメタデータを管理している際に失敗が発生すると、API は HTTP status: 400 エラーとそれに対応するメッセージを返します。
{
  "statusCode": 400,
  "message": "メタデータは25エントリを超えることはできません。各キーと値は255文字以下である必要があります。"
}