Skip to main content

前提条件

correlation_id を使用するには、次の条件を満たしている必要があります。
  • Auth0 の Universal Login が設定されていること: Correlation ID は Universal Login フローで利用できます。
  • 一意の ID を生成できるアプリケーションがあること: アプリケーションは UUID またはトランザクション ID を生成できる必要があります。 (例: txn_12345_xyz、セッション ID、注文 ID)
認可リクエストで correlation_id を使用できない場合は、テナントでこの機能が有効になっていない可能性があります。
Auth0 では、Correlation ID を使用して認証トランザクションを追跡できます。この追跡機能により、サポート対応時間を短縮し、認証イベントの後続にある複数のシステムにまたがって追跡できるようになります。 correlation_id パラメーターは、アプリケーションが生成した一意の識別子を認可 URL に追加します。この ID は自動的に記録されるため、Auth0 テナントログ でイベントを追跡および絞り込みできます。 Correlation ID は、次のイベント全体で保持されます。
  • サインアップ
  • ログイン
  • Multi-Factor Authentication (MFA) の登録とチャレンジ
  • パスワードのリセット
Correlation ID は、Universal Login、Universal Login Page Templates、メールテンプレート、SMSテンプレート、カスタムエラーページ、Flows、Auth0 Actions で使用できます。

Correlation ID を設定する

correlation_id の値には、次の制限があります。
  • 使用できる文字: /^[-\w.*~@+/:]{1,64}$/ に一致する英数字および特殊文字
  • 最大長: 64 文字
  • 禁止事項: 個人を特定できる情報 (PII) を含めないこと
次の例のように、一意の ID を認可 URL に追加するには、authorizationParams オブジェクトに correlation_id パラメーターを渡します。
const { loginWithRedirect } = useAuth0();
loginWithRedirect({
  authorizationParams: {
    // トラッキング用にURLに "&correlation_id=..." を追加します
    correlation_id: "YOUR_CORRELATION_ID"
  }
});

Universal Login

すべての Universal Login フローで correlation_id がサポートされています。correlation ID の値を /authorize エンドポイントに渡すと、認証イベントにより、追跡に使用できる correlation ID を含むテナントログが生成されます。Management API SDK を使用して最新のイベントを取得し、フィルタリングすることで、特定のトランザクションを特定できます。 次のサンプルコールでは、Management API SDK を使用して最新の認証イベントを取得し、その後ローカルでフィルタリングして特定のイベントを特定します。
// 1. Management API を呼び出す(SDK v5 構文)
const { data: logs } = await management.logs.list({
  per_page: 100,
  sort: 'date:-1'
});
// 2. クライアント側で配列をフィルタリングして対象の ID を見つける
const transactionEvents = logs.filter(log =>
  log.references?.correlation_id === "YOUR_CORRELATION_ID"
);
console.log(`Found ${transactionEvents.length} events for this transaction.`);

ログインページテンプレート

Universal Login Page Templates を使用してログインエクスペリエンスをカスタマイズする場合は、カスタムログインの認証イベントを追跡できるよう、テンプレートに correlation_id を追加します。 次のサンプルは、{%- auth0:widget -%}correlationId: "{{correlation_id}}" を追加する例を示しています。
<!-- 例: IDをクライアントサイドスクリプトに注入する -->
<!-- 注意: {{ }} はAuth0によってサーバーサイドで評価されるLiquidテンプレート構文です。ドキュメントのプレースホルダーではありません -->
<script>
  window.addEventListener("load", function () {
    const loginContext = {
      application: "{{application.name}}",
      // Liquid構文でcorrelation_idに直接アクセスする
      correlationId: "{{correlation_id}}"
    };

    console.log("Tracking Context:", loginContext);
    // loginContext.correlationIdを分析ツールに渡せます
  });
</script>

メールテンプレート

パスワードのリセットや確認用メールの送信など、メール通知をトリガーした認証イベントを追跡しやすくするために、メールテンプレートcorrelation_id を含めることができます。 次のサンプルは、メールテンプレートの本文に {{correlation_id}} を追加した例です。
<p>If you did not initiate this request, please ignore this email.</p>
<p>Tracking reference: {{correlation_id}}</p>

SMSテンプレート

MFA チャレンジなど、SMS 通知をトリガーする認証イベントを追跡するために、SMSテンプレートcorrelation_id を含めることができます。 次のサンプルは、SMSテンプレートに {{correlation_id}} を追加した例です。
Your verification code is: {{code}}. Ref: {{correlation_id}}

カスタムエラーページ

カスタムエラーページcorrelation_id を含めると、追跡用の参照 ID をエラーページに直接表示できます。これにより、ユーザーは問題を報告しやすくなり、サポートチームも失敗したトランザクションを追跡しやすくなります。 次のサンプルは、カスタムエラーページのテンプレートに {{correlation_id}} を追加した例です。
<h1>{{error | escape}}: {{error_description | escape}}</h1>
<p>If you need support, reference this ID: {{correlation_id}}</p>

Auth0 Actions

Auth0 Actions の Signup and Login Triggers では、event オブジェクトを使用してイベントをサードパーティサービスにログとして記録したり、ダウンストリーム API に渡したりできます。 次のイベントオブジェクトでは correlation_id を利用できます。 サンプルの Post-Login Action では、event オブジェクトから correlation_id を抽出する方法を示しています。
exports.onExecutePostLogin = async (event, api) => {
  console.log('PostLogin Action Start');
  const correlation_id = event.transaction?.correlation_id;
  // correlation_idが存在するか確認
  if (correlation_id) {
    console.log(`Correlation ID found: ${correlation_id}`);
  } else {
    console.log('No correlation_id found in transaction');
  }
  console.log('PostLogin Action End');
};

Forms

Forms と Flows では Correlation ID を使用できます。Forms では、Flows で作成したカスタムロジックを使って、サインアップとログインをカスタマイズできます。Forms と Flows で Correlation ID を使用するには、Flows エディターで context オブジェクトを使用し、関連イベント変数 {{context.transaction.correlation_id}} をロジックに追加します。詳細については、変数とヘルパー関数を参照してください。