ログアウトリダイレクトの移行ガイド
2021年12月1日にログアウトの動作が変更され、ログアウトの実行中にIDプロバイダーから/login/callback
に渡されるreturnTo
クエリパラメーターを使用する代わりに、Auth0ログアウトAPIに渡されるURIにユーザーを常にリダイレクトするようになりました。使用されるURIは、セッションのログアウト要求で呼び出されるAPIによって異なります。
https://{yourDomain}/logout
:Auth0はreturnTo
パラメーターを使用しますhttps://{yourDomain}/v2/logout?federated
:Auth0はreturnTo
パラメーターを使用しますhttps://{yourDomain}/wsfed/{yourClientId}?wa=wsignout1.0
:wreply
パラメーターです
これらいずれかのAPIへの以前の呼び出し記録がAuth0にない場合、ログアウトは完了しますが、リダイレクトは起こらず、エンドユーザーにはエラーページが表示されます。
影響を受けるエンドポイント
以下のエンドポイントはこの変更の影響を受けます。
https://{yourDomain}/v2/logout
:federated
クエリパラメーターを使用して、IDプロバイダーからユーザーをログアウトhttps://{yourDomain}/wsfed/{yourClientId}?wa=wsignout1.0
:wreply
クエリを使用して、WS-FedプロトコルでAuth0からログアウトhttps://{yourDomain}/login/callback
:returnTo
クエリパラメーターを使用する場合
以下の使用パターンに依存しているテナントは、2021年12月1日以降、希望のリダイレクトURIにリダイレクトできなくなります。
アプリケーションがログアウトURLを指定するのに、
/v2/logout or /wsfed/{yourClient}?wa=wsignout1.0
を先に呼び出すことなく、/login/callback?returnTo
を呼び出すIDプロバイダーが
/login/callback?returnTo
の呼び出しに指定するreturnTo
値が、以前の/v2/logout
または/wsfed/{yourClientId}
への呼び出しで提供された元の値と異なる影響を受けるAPIの1つに対して、アプリケーションが複数の呼び出しを同時に行い、それぞれに異なるリダイレクトURIを提供する
/v2/logout
または/wsfed/{yourClientId}?wa=wsignout1.0
を先に呼び出すかにかかわらず、影響を受けるAPIの1つと/authorize
APIをアプリケーションまたはユーザーが同時または交互に呼び出す
アクション
[Auth0 Dashboard]>[Monitoring(モニタリング)]>[Logs(ログ)]に移動して、
type:depnote AND description:*unvalidated*redirects*
を検索し、廃止された動作に依存するアプリケーションを見つけます。影響を受けるアプリケーションのそれぞれが以下であることを確実にします。
アプリケーションまたは証明書利用者が、Auth0の公開APIのAuthentication API:LogoutまたはAuthentication API:WS-Federationを使用して、ログアウトを開始する。
/login/callback?returnTo
に戻されるログアウトURLをIDプロバイダーが編集することにアプリケーションが依存しない。 そのような編集は受け付けなくなります。アプリケーションが異なるログアウトURLを使用して、ログアウトAPIを同時に呼び出さない。Auth0はユーザーエージェントについて、一度に1つのログアウトURLのみを保管します。つまり、同時実行のログアウトプロセスはリダイレクトに失敗します。
アプリケーションがログアウトAPIと
/authorize
を同時または交互に呼び出さない。ログイントランザクションを完了すると、ユーザーエージェントに保管済みのログアウトURLが消去されます。つまり、同時実行のログアウトプロセスはリダイレクトに失敗します。影響を受けるAPIの1つと
/authorize
をアプリケーションまたはユーザーが同時または交互に呼び出さない。
移行アクションが完了してテストし終わったら、移行を確認する必要があります。
移行を確認する
アプリケーションを移行して、廃止された使用パターンに依存していないことを確認したら、2021年12月1日までの任意のタイミングで廃止された動作を無効化し、変更を確認します。
[Auth0 Dashboard]>[Tenant Settings(テナントの設定)]>[Advanced(詳細設定)]に移動して、[Migrations(移行)]セクションを見つけます。
[Unvalidated redirects from /login/callback(/login/callbackからの未検証のリダイレクト)]スイッチを無効に設定します。このスイッチをオフにすると、廃止された動作がテナントで無効となり、使用を防ぐことができます。
このスイッチを無効にした後で、ログアウトURLへのリダイレクトが期待どおりに動作しない場合には、アプリケーションが廃止された動作にまだ依存していることを示しています。
移行が運用環境で正常に動作し、確認できた場合には、このスイッチをオフにしたままにできます。これで、廃止された機能は今後使用されなくなります。2021年12月1日付で、Auth0は廃止された動作とそれに関連するスイッチを完全に削除します。