セッションメタデータを設定するには、Auth0 の Post-Login Action と Management API を使用できます。また、OpenID Connect バックチャネルログアウト トークンに含めることもできます。
Auth0 セッションメタデータは安全なデータストアではないため、機密情報の保存には使用しないでください。これには、シークレットや、社会保障番号やクレジットカード番号などの機微性の高い PII が含まれます。Auth0 をご利用のお客様には、メタデータに保存するデータを評価し、アイデンティティおよびアクセス管理の目的に必要なものだけを保存することを強く推奨します。詳細については、Auth0 の GDPR コンプライアンス を参照してください。
Auth0 Management API
Management API を使用して、セッションメタデータに対する CRUD (作成、置換、更新、削除) リクエストを管理できます。
/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" : {}
}
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 とメソッドについて確認してください。
Auth0 の Dashboard または Management API を使用して、logout_token にセッションメタデータを含めるよう設定できます。
セッションメタデータを含めて OIDC バックチャネルログアウトトークンを設定するには、次の手順に従います。
Dashboard > Applications に移動し、アプリケーションを選択します。
Settings タブを選択します。
OpenID Connect バックチャネルログアウト > Back-Channel Logout URL で、logout_tokens を受信するアプリケーションのログアウト URI を追加します。
Back-Channel Logout Initiators を次のいずれかに設定します。
選択したイニシエーターのみ または
サポートされているすべてのイニシエーター
Include Session Metadata をオンにします。
Save Changes を選択します。
設定が完了すると、logout_token には保存されているすべてのセッションメタデータが含まれます。
/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."
}