- ページの読み込みやセッションをまたいでゲストユーザーを追跡する
- ショッピングカートの参照情報、設定、同意、プロファイリング情報などのメタデータを保存する
- 認証なしでAPI呼び出し用のアクセストークンを発行する
- ユーザーがサインアップまたはログインした際に、匿名でのアクティビティを認証済みアカウントに移行する
仕組み
匿名セッションのデータを収集する
/anonymous/token エンドポイントに POST リクエストを送信します。
Auth0 は2つのトークンを返します。
- 匿名セッションを識別し、維持するための セッショントークン。
- ユーザーが リソースサーバー (API) に提示できる アクセストークン。
user_id のセッションが継続されるため、すべてのアクティビティを単一の起点にたどることができます。
アクセストークンを使用すると、匿名ユーザーは既存の任意の API を呼び出せます。
Anonymous session data of user anon@1234-5678-90
匿名セッションのデータをユーザーのメタデータに移行する
anonymous_session_tokenを/authorizeエンドポイントに渡します。
cookie example
authorize endpoint example
pre-user-registration および post-login の Actions トリガーで、event.anonymous_session オブジェクトを通じて匿名セッションデータを利用できます。
anonymous session object
転送後に匿名セッションを終了する
/anonymous/logout エンドポイントを使用します。
ベストプラクティス
- ユーザーの匿名セッションデータが失われないよう、適切な匿名セッションの有効期間を設定します。Auth0では、30日以上の有効期間を推奨しています。
- 攻撃者がセッションの内容を閲覧できないよう、匿名セッションのJSON Web Encryption (JWE) 暗号化を選択します。
-
匿名の
anon@ユーザーがAPIで実行できる操作を制限します。 - トークンを検証し、メタデータをサニタイズします。サーバー側でバリデーションを行わずに、クライアントからのメタデータやトークンを決して信頼しないでください。
- アクセストークンは有効期限まで再利用できるため、キャッシュします。
- メタデータの更新はまとめて行い、最小限に抑えます。メタデータを頻繁に更新しないでください。
制限事項
- 匿名セッションでは、パスワードリセットフローはサポートされていません。
- 認証リクエストと実際のログインが別のデバイスで行われるため、デバイスコードはサポートされていません。
- 認証リクエストと確認が別のデバイスで行われるため、クライアント主導のバックチャネル認証 (CIBA)はサポートされていません。
- トランザクションの性質上 (たとえば、代理ログイン) 、匿名データが誤ったユーザーに関連付けられるおそれがあるため、カスタムトークン交換はサポートされていません。
- リフレッシュトークンを持つユーザーはすでにログイン済みであるため、匿名セッションではリフレッシュトークン交換はサポートされていません。
詳細情報
- 匿名セッションを設定する 匿名セッションの設定方法について説明します。
- 匿名セッションのユースケース 匿名セッションのユースケースについて説明します。