/authorize エンドポイントへの呼び出しを開始すると、Auth0 はアクティブなセッションがあるかどうかを確認し、既存のセッションを再利用するか、指定された session_transfer_token を使用します。セッションインジェクションのリスクを回避するため、Auth0 は session_transfer_token が有効かどうかを判断するための、安全な事前定義済みの評価を行います。詳しくは、Configure and Implement Native to Web SSO を参照してください。
ネイティブからWebへのSSOは、標準の Auth0 Single Sign-On 認証を変更するものではありません。
- 有効な
session_transfer_tokenが送信され、既存の Auth0 セッションがない場合、ユーザーはログインした状態になります。 - 有効な
session_transfer_tokenが送信され、同じユーザーの既存の Auth0 セッションが見つかった場合、ユーザーはログインした状態になります。 - 既存の Auth0 セッションが見つかり、
session_transfer_tokenが別のユーザーに属している場合、ユーザーはログインを求められます。さらに、既存の Auth0 セッションは取り消されます。 - 既存の Auth0 セッションが見つかり、
session_transfer_tokenが無効な場合、ユーザーはログインを求められます。
これらの動作は、標準のネイティブからWebへのSSOに適用されます。アクターを含む
session_transfer_token (Session Delegation 用に発行されたもの) は異なる動作をします。サブジェクトユーザーがすでにアクティブなセッションを持っている場合、既存のセッションを取り消す代わりに、エラーページによって試行がブロックされます。詳細については、Delegated Session Behavior and Monitoring を参照してください。セッションとリフレッシュトークンの取り消し
session_transfer_token は、WebView またはブラウザーで安全なセッションを開始し、ユーザーにログインを求めることなく安全に認証するために使用されます。これらのWebセッションは、独自の を発行することもあります。
ネイティブからWebへのSSO では、セッションやリフレッシュトークンが取り消された際に、一貫性のある安全な動作を確保するため、一連の取り消しルールが適用されます。
- リフレッシュトークンが取り消されると、ネイティブアプリケーションで
enforce_cascade_revocationが有効になっている場合、それに関連付けられたリフレッシュトークンとセッションも取り消されます。 - Webセッションが取り消されると、Webアプリケーションで
enforce_online_refresh_tokensが有効になっている場合、それに関連付けられたリフレッシュトークンも取り消されます。 - ネストされたネイティブからWebへのSSOは許可されていません。
session_transfer_tokenを使用して作成されたWebセッションでは、別のsession_transfer_tokenを生成できません。