ユーザーをリダイレクトする

ユーザーのIDトークンを検証(認証)したら、アプリケーション内でユーザーを特定のページ(URL)に戻すことができます。動作する仕組みの例については、「React:ログインのクイックスタート」を参照してください。

AllowListにあるCallback URLにユーザーをリダイレクトする

Callback URLは認可されていない第三者によって操作される可能性があるため、Auth0はアプリケーションの設定[Allowed Callback URLs(許可されているCallback URL)]フィールドのAllowListに含まれるURLのみを有効だと認めます。AllowListにあるCallback URLにユーザーを戻すには、ユーザーがどのようにすれば先に進み続けられるかをアプリケーションが理解しなければなりません。

これを行うには次の2つの方法があります。

  • クッキーとブラウザーセッションを使用する

  • stateパラメーターを使用する

ユーザーの認証では、要求内のredirect_uriパラメーターがCallback URLとして使用されます。これは、アプリケーションがAuth0からの応答を受け取って処理する場所で、大抵の場合には認証後にユーザーをリダイレクトするURLになります。redirect_uriが動作する仕組みについては、「OAuth 2.0の認可フレームワーク」を参照してください。

リターンURLの値を保存するために、クッキーやブラウザーセッションを使用することができます。この方法は簡単ですが、クッキーが保持されていない場合は問題が起きる可能性があります。この状況では、2つの別々のユーザーセッションが開始されます。それぞれの目的は異なっており、希望するユーザーエクスペリエンスを実現するために注意が必要です。

  • Auth0提供のSSOセッション:Auth0は、シングルサインオン(SSO)を有効にするためのセッションを提供しており、ユーザーが一度だけ資格情報を入力すれば、認証セッションを維持できるようにします。このセッションは、Auth0によって維持され、テナントドメイン(またはCNAME)に関連付けられたクッキーバウンドとして参照されます。Auth0セッションの長さを決定するテナント設定は2つあります。

    • idle_session_lifetimeは、ユーザーが操作しない状態でセッションがどれだけ長く保持されるかを示します。

    • session_lifetimeは、セッションが保持される最長期間です。

    これらの設定は、テナント内のすべてのアプリケーションに適用され、ユースケースに一致するセキュリティモデルに適合している必要があります。

  • アプリケーションセッション:アプリケーションにはセッションのコンセプトも含む必要があります。ユーザーセッションを通して、アプリケーションは追加トークンの要求、または有効期限切れトークンの更新をする必要があるかもしれません。これらのトークンをアプリケーション内に保存し、セキュアクッキーを使用してブラウザーに返されたIDで参照する必要があります。

ユーザーがAuth0で認証したら、このセッションがどれだけ保持されるかはアプリケーションによります。

他のURLにユーザーをリダイレクトする

認証後にユーザーを送りたいリダイレクト先が必ずしもCallback URLだとは限りません。たとえば、アプリケーションでユーザーが保護されたページにアクセスしようとして、その操作が認証要求のトリガーとなった場合には、そのURLを保管し、認証の完了後にユーザーをその意図したページにリダイレクトで戻すことができます。以下の方法で、使用したいURLを保管します。

使用しているアプリケーションの種類とフローに最適なオプションを選択します。アプリケーション内で必要なロジックを作成し、保管されているURLを取得して、ユーザーを送りたい場所にリダイレクトできるようにします。Auth0 SDKにも、リダイレクトURLへの対応が含まれています。

もっと詳しく