- アプリケーションにカスタムログインルートハンドラーを追加します。
-
SAML 接続を次のように更新します。
- 受信したIdP開始のSAMLレスポンスを受け入れる。
- サービスプロバイダー開始の認証リクエストを送信するデフォルトのアプリケーションにリダイレクトする。
仕組み

- ユーザーが SAML IdP のログイン エンドポイントにアクセスします。
- SAML IdP がログインページを返します。
- ユーザーが SAML IdP に資格情報を送信します。
- SAML IdP はユーザーのセッションを作成し、Form Post と SAML レスポンスを含む HTML ページを返します。
- ページは HTTP
POST呼び出しによって、SAML レスポンスを Auth0 テナントに自動送信します。 - Auth0 テナントは、ID トークンを URL フラグメントとして付与し、ユーザーのブラウザーを OIDC アプリケーションのカスタム ログイン ルート ハンドラーにリダイレクトします。
- ブラウザーは、
connectionパラメーターと ID トークンを付けて、OIDC アプリケーションのカスタム ログイン ルート ハンドラーを呼び出します。 - OIDC アプリケーションは ID トークンを無視し、
connectionパラメーターを解析してセッション用のstateパラメーターを作成した後、ユーザーのブラウザーを Auth0 テナントの/authorizeエンドポイントにリダイレクトします。 - ブラウザーは、指定された
connectionパラメーターとstateパラメーターを付けて、Auth0 テナントの/authorizeエンドポイントを呼び出します。 - Auth0 テナントは SAML ログイン リクエストを生成し、ユーザーのブラウザーを SAML IdP のログイン エンドポイントにリダイレクトします。
- ブラウザーは SAML ログイン リクエストを SAML IdP のログイン エンドポイントに送信します。
- SAML IdP はユーザーのセッションを見つけると、Form Post と SAML レスポンスを含む HTML ページを返します。
- ページは HTTP
POST呼び出しによって、SAML レスポンスを Auth0 テナントに自動送信します。 - Auth0 テナントは、ユーザーのブラウザーをアプリケーションのログイン ルート ハンドラーにリダイレクトします。
- ブラウザーは、指定された
stateパラメーターと ID トークンを付けて、アプリケーションのログイン ルート ハンドラーを呼び出します。 - OIDC アプリケーションは
stateパラメーターを検証し、ID トークンを解析して、ユーザーのアプリケーションセッションを作成します。
カスタムログインルートハンドラーを作成する
connection パラメーターを受け取り、それを Auth0 テナントに送信する認証リクエストに含める必要があります。
カスタムログインルートハンドラーは、標準のログインルートハンドラーとは別のエンドポイントに関連付けることをおすすめします。たとえば、標準のログインルートハンドラーが /login エンドポイントに関連付けられている場合は、カスタムログインルートハンドラーを /startlogin エンドポイントに関連付けることができます。
例
login メソッドを更新して connection パラメーターに対応させることができます。
クエリ文字列を作成する
redirect_uri パラメーターが含まれます。このパラメーターの値は URL エンコードする必要があり、次の要素で構成されます。
- カスタムログインルートハンドラーに対応するアプリケーションのエンドポイント。
- SAML 接続名を値として指定した
connectionパラメーター。
例
https://exampleco.com/startlogin で、SAML接続の名前が my-saml-connection の場合、クエリ文字列は redirect_uri=https%3A%2F%2Fexampleco.com%2Fstartlogin%3Fconnection%3Dmy-saml-connection になります。
アプリケーションを設定する
- Auth0 Dashboard > アプリケーション > アプリケーション に移動します。
- Auth0 で OIDC アプリケーションを表す新しいアプリケーションを作成します。
- Allowed Callback URLs を更新し、カスタムログインルートハンドラーに関連付けられたアプリケーションのエンドポイントを追加します。
接続を設定する
- Auth0 Dashboard > Authentication > Enterprise > SAML に移動します。
- 新しい SAML 接続を作成します。
- IdP-Initiated SSO ビューに切り替えます。
- Accept Requests を選択します。
- Default Application で、先ほど作成したアプリケーションを選択します。
- Response Protocol で OpenID Connect を選択します。
- クエリ文字列 に、先ほど作成したクエリ文字列を入力します。