ログアウトリダイレクトの移行ガイド

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.0wreplyパラメーターです

これらいずれかのAPIへの以前の呼び出し記録がAuth0にない場合、ログアウトは完了しますが、リダイレクトは起こらず、エンドユーザーにはエラーページが表示されます。

影響を受けるエンドポイント

以下のエンドポイントはこの変更の影響を受けます。

以下の使用パターンに依存しているテナントは、2021年12月1日以降、希望のリダイレクトURIにリダイレクトできなくなります。

  1. アプリケーションがログアウトURLを指定するのに、/v2/logout or /wsfed/{yourClient}?wa=wsignout1.0を先に呼び出すことなく、/login/callback?returnToを呼び出す

  2. IDプロバイダーが/login/callback?returnToの呼び出しに指定するreturnTo値が、以前の/v2/logoutまたは/wsfed/{yourClientId}への呼び出しで提供された元の値と異なる

  3. 影響を受けるAPIの1つに対して、アプリケーションが複数の呼び出しを同時に行い、それぞれに異なるリダイレクトURIを提供する

  4. /v2/logoutまたは/wsfed/{yourClientId}?wa=wsignout1.0を先に呼び出すかにかかわらず、影響を受けるAPIの1つと/authorize APIをアプリケーションまたはユーザーが同時または交互に呼び出す

アクション

  1. [Auth0 Dashboard]>[Monitoring(モニタリング)]>[Logs(ログ)]に移動して、type:depnote AND description:*unvalidated*redirects*を検索し、廃止された動作に依存するアプリケーションを見つけます。

  2. 影響を受けるアプリケーションのそれぞれが以下であることを確実にします。

    1. アプリケーションまたは証明書利用者が、Auth0の公開APIのAuthentication API:LogoutまたはAuthentication API:WS-Federationを使用して、ログアウトを開始する。

    2. /login/callback?returnToに戻されるログアウトURLをIDプロバイダーが編集することにアプリケーションが依存しない。 そのような編集は受け付けなくなります。

    3. アプリケーションが異なるログアウトURLを使用して、ログアウトAPIを同時に呼び出さない。Auth0はユーザーエージェントについて、一度に1つのログアウトURLのみを保管します。つまり、同時実行のログアウトプロセスはリダイレクトに失敗します。

    4. アプリケーションがログアウトAPIと/authorizeを同時または交互に呼び出さない。ログイントランザクションを完了すると、ユーザーエージェントに保管済みのログアウトURLが消去されます。つまり、同時実行のログアウトプロセスはリダイレクトに失敗します。

    5. 影響を受けるAPIの1つと/authorizeをアプリケーションまたはユーザーが同時または交互に呼び出さない。

移行アクションが完了してテストし終わったら、移行を確認する必要があります。

移行を確認する

アプリケーションを移行して、廃止された使用パターンに依存していないことを確認したら、2021年12月1日までの任意のタイミングで廃止された動作を無効化し、変更を確認します。

  1. [Auth0 Dashboard]>[Tenant Settings(テナントの設定)]>[Advanced(詳細設定)]に移動して、[Migrations(移行)]セクションを見つけます。

  2. [Unvalidated redirects from /login/callback(/login/callbackからの未検証のリダイレクト)]スイッチを無効に設定します。このスイッチをオフにすると、廃止された動作がテナントで無効となり、使用を防ぐことができます。

このスイッチを無効にした後で、ログアウトURLへのリダイレクトが期待どおりに動作しない場合には、アプリケーションが廃止された動作にまだ依存していることを示しています。

移行が運用環境で正常に動作し、確認できた場合には、このスイッチをオフにしたままにできます。これで、廃止された機能は今後使用されなくなります。2021年12月1日付で、Auth0は廃止された動作とそれに関連するスイッチを完全に削除します。