メインコンテンツへスキップ
Native to Web を実装する際は、以下にまとめたベストプラクティスに従うことを Auth0 は推奨しています。これらのガイドラインは、セッションの整合性を確保するのに役立ちます:

Post Login Actions を使用してセッションの有効期間を制限する

post-login Action トリガーを使用すると、Native to Web SSO で作成される Web セッションに適切な有効期限を設定し、非アクティブな場合に速やかに期限切れになるようにできます。  post-login Actions を使用して、session_transfer_token によってセッションが開始されたことを検出し、より短いアイドルタイムアウトと絶対タイムアウトを適用できます。
exports.onExecutePostLogin = async (event, api) => {
  if (event.session_transfer_token) {
    const now = Date.now();

    // セッションを合計30分に制限する
    api.session.setExpiresAt(now + 30 * 60 * 1000);

    // アイドルタイムアウトを15分に設定する
    api.session.setIdleExpiresAt(now + 15 * 60 * 1000);
  }
};

session_transfer_token をデバイスまたは IP アドレスにバインドする

トークンが漏えいしたり、ログに記録されたり、傍受されたりした場合のトークン リプレイのリスクを軽減するため、session_transfer_token は常に enforce_device_binding を使用して送信元の環境にバインドしてください。
URL 経由でトークンが誤ってログに記録されたり共有されたりするのを防ぎ、トークン傍受の攻撃対象領域を減らすため、session_transfer_token は Auth0 ドメインに限定したセキュアな HTTPOnly Cookie を使って Web アプリケーションに送信してください。クエリパラメーターを使用する必要がある場合 (たとえば Chrome Custom Tabs の場合) は、URL で HTTPS を使用していることを確認し、使用後は URL からトークンを削除してください。

必要な場合を除き、Web アプリにリフレッシュトークンを発行しない

長期間有効なトークンが本当に必要な Web アプリケーションでのみ、allow_refresh_token を有効にしてください。ほとんどの場合、短期間有効な とサイレント認証の組み合わせで十分であり、ブラウザー環境ではその方が安全です。

必要に応じて Allow Refresh Tokens を有効にし、リフレッシュトークンを「オンライン」として設定する

孤立した認証情報の発生を防ぎ、がログアウト後も残り続けないようにするには、allow_refresh_token 設定を使用して、Native to Web SSO 経由で発行されたリフレッシュトークンが、その発行元のセッションに紐付けられるようにします。セッションが取り消されるか有効期限切れになると、リフレッシュトークンは自動的に無効化されます。

enforce_cascade_revocation を有効にする

session_transfer_token に関連付けられたすべての Web セッションとリフレッシュトークンを確実に失効させるには、ネイティブアプリケーションで enforce_cascade_revocation を有効にします。これは、アプリケーション間でセッションを安全に無効化するうえで重要です。