Skip to main content

開始する前に

次の準備ができていることを確認してください:
  • アプリケーション用に Custom Domain を構成済みの Auth0 テナント
  • インストールおよび認証済みの Auth0 CLI
  • post-login Action
  • Auth0 テナントセッションが non-persistent セッションポリシーを使用していること
  • (オプション)セッションのアイドルおよび絶対セッションタイムアウト値の構成
Keep Me Signed In エクスペリエンスは、信頼済みデバイス上でログイン状態を維持するオプションをユーザーに提供します。
ログインの画像
  • Keep Me Signed In チェックボックスが選択されている場合、ブラウザの再起動後も維持される永続セッションが設定されます。
  • Keep Me Signed In チェックボックスが選択されていない場合、ブラウザを閉じると失効する非永続セッションが設定されます。
non-persistent(エフェメラル)セッションActions を使用すると、リフレッシュトークンをフロントエンドに公開することなく、サーバー側でこのロジックを安全に処理できます。 Custom Prompts、Auth0 CLI、および Actions 経由のエフェメラルセッションを使用することで、リフレッシュトークン不要、クライアント側セッションハック不要、かつバックエンドで完全に制御された、安全でモダンな「Keep Me Signed In」フローを実装できます。 このソリューションは、次を重視するお客様に最適です:
  • ゼロトラストを前提としたブラウザセッション処理
  • 最小限のセッション永続化
  • 信頼済みデバイスによる上書き設定

1. Universal Login ページを設定し、カスタムプロンプトを追加する

ユーザーの Keep Me Signed In の設定内容を取得するには、Auth0 CLI を使用してページテンプレートを設定し、カスタムプロンプトを追加することで、Universal Login をカスタマイズする必要があります。

任意: Universal Login ページテンプレートを有効にする

この手順は、テナントに Universal Login テンプレートが構成されていない場合にのみ必要です。
次のコマンドを使用して、ページテンプレートを作成または更新します。
カスタマイズエディタがログインページテンプレートを開きます。ブランドに合う任意の HTML 構造を使用できます。 以下は、背景とウィジェットのラッパーを含む最小限のテンプレート例です。
エディタの内容を保存して閉じると、Auth0 CLI から確認メッセージが表示されます。

2. Auth0 CLI を使用して「サインインしたままにする」チェックボックスを追加する

Universal Login 画面にチェックボックスを追加するには、次の手順に従ってください。

カスタマイズエディターを起動する

  1. テナントの設定に応じて、login-id プロンプトまたは login プロンプトのカスタマイズエディターを開きます。
  1. レンダリングモードは standard を選択します
カスタマイズエディタがローカルアドレスで起動します。
自身のテナントで loginlogin-id のどちらが使われているか分からない場合は、Auth0 の プロンプトのカスタマイズ を参照してください。

チェックボックスを設定する

カスタマイズエディターで Partials オプションを開きます。
  1. Promptlogin-id(または login)に設定します。
  2. Screenlogin-id(または login)に設定します。
  3. Partialform-footer-end に設定します。
Auth0 CLI partials
次の HTML スニペットを追加します。
これで、ログインフォームの下にチェックボックスが表示されます。

変更をデプロイする

右上にある Deploy Changes を選択して、カスタマイズ内容を保存して適用します。

チェックポイント

Universal Login を使用してログインします。
ログイン画面には、ログインしたままにする チェックボックスがあります。
ログイン画面の画像

3. Auth0 CLI を使用して Post-Login Action を作成する

Auth0 CLI 用に set-session-persistence.js という名前の新しいファイルを作成し、次のコードを追加します。
Auth0 CLI を使用し、set-session-persistence.js ファイルを使って Post-Login Action を作成または更新します。
Auth0 CLI は Action の ID を返します:
id を指定して Action をデプロイします:
新しい Action を現在のフローに追加するには、Auth0 Dashboard > Actions > Triggers > Post-Login に移動し、Apply を選択します。
Dashboard Actions Triggers Post Login

任意 - 信頼済みデバイスのセッション期間を設定する

api.session.setExpiresAt() または api.session.setIdleExpiresAt() メソッドを使用して、セッションの有効期間をさらに細かく設定できます。

4. テスト実装

セッションの動作を検証するには、次のことを行います。 Universal Login を使用してログインし、Keep Me Signed In チェックボックスを選択します。
  • テナントログで、イベントタイプが s または ssa のものを検索し、
    • cookie: { mode: "non-persistent" }
    • cookie: { mode: "persistent" }
  • Actions 内で event.session.cookie.mode を検索します