ベストプラクティスAuth0 では多数の認証ワークフローをサポートしていますが、Auth0 Universal Login を使用するワークフローは、最適な機能とセキュリティ を提供するため、業界および Auth0 のベストプラクティスと見なされています。特に Universal Login は、シングルサインオン (SSO) を標準で提供 し、フィッシング や bucket brigade などの攻撃の軽減に役立ちます。そのため、ユーザーがパスワード認証情報を入力する場合は、可能な限りこれを優先する必要があります。さらに重要なのは、New Universal Login Experience が、Auth0 組織 機能の使用時にサポートされる唯一の仕組みであることです。
Auth0 では、Auth0 テナント ごとに認証済みユーザー コンテキストを 1 つのみサポートします。テナントで認証済みユーザー コンテキストを選択的に切り替えることはできません。ユーザー コンテキストを変更すると、アクティブな SSO セッションに影響が生じます。この影響は Auth0 組織 機能にも及びます。組織ごとのコンテキストがどうしても必要な場合は、複数の Auth0 テナント を本番環境にデプロイする必要があります。複数のテナントを使用すると、シングルサインオン (SSO) やユーザープロフィール管理などに影響が及ぶため、この方法を採る前に慎重に検討してください。
データベース接続

-
Hoekstra & Associates の Jennifer はブラウザーを開き、Hoekstra & Associates の Travel0 Corporate Booking インスタンスにアクセスします。
- Jennifer がすでに Hoekstra & Associates の Travel0 Corporate Booking インスタンスのセッションクッキーを保持している場合、通常はシステムにログイン済みのため、ここで処理を終了します。詳細については、シングルサインオン を参照してください。
-
Hoekstra & Associates の Travel0 Corporate Booking インスタンスは、
/authorizeエンドポイントを呼び出してパラメーターを渡し、Authorization Code Flow (PKCE の有無は問いません) を使用して Travel0 の Auth0テナントにリダイレクトします。通常、これは Auth0 SDK またはサードパーティ製ライブラリを使用して行います:-
redirect_uri:https://hoekstra.corp.travel0.net/login/callback -
response_type:code -
state: このセッションで生成された一意の state -
scope:openid profile… - ユーザーについて必要な情報に応じた、追加のOIDC スコープ。
-
client_id: Hoekstra & Associates の Travel0 Corporate Booking インスタンス向けに、Travel0 の Auth0 テナントで作成されたアプリケーションに関連付けられたクライアントID。 -
organization: 使用する Auth0 組織。組織が事前に判明している場合は、/authorizeへのリクエストにこのパラメーターを含めることができます。このパラメーターはorganization=organization_id の形式で指定します。ここで organization_id には、Auth0 テナント内の対応する Auth0 組織定義に関連付けられた識別子を設定します。あるいは、/authorizeの呼び出しからorganizationパラメーターを省略し、Auth0 テナントを構成して、第1認証要素の認証プロセスの一環として、ユーザーに適切な組織を選択させることもできます。詳細については、組織の動作を定義するを参照してください。
-
-
Travel0 Auth0テナントは、ユーザーから認証情報を取得するために
/loginにリダイレクトします。Jennifer が Hoekstra & Associates ですでに Database セッションを確立している場合、手順 3a と 4 はスキップされます。詳細については、シングルサインオンを参照してください。- ブランディング で説明されているとおり、組織固有のブランドアセットを含めるように設定できる Universal Login ページが表示されます。
-
ユーザーは認証情報を入力し、
loginをクリックします。 -
Travel0 Auth0テナントはユーザーの認証情報を確認し、有効な場合は Rules パイプラインが実行されます。認可 で説明されているように、Rules はアクセス制御の処理に使用できます。ユーザーの認証情報が無効な場合は、再入力を求められます。
このオプションが指定されている場合、メンバーシップは自動的に割り当てられます。詳細については、組織の接続に Just-In-Time メンバーシップを付与するを参照してください。手動で割り当てられたメンバーシップの場合、ユーザーがその組織のメンバーとしてまだ割り当てられていないと、検証に失敗します。
-
第1認証要素での認証と Rules の実行が正常に完了すると、ユーザーは、手順 2 で渡された
stateとcodeが付与されたredirect_uri(https://hoekstra.corp.travel0.net/login/callback) にリダイレクトされます。 -
Hoekstra & Associates の Travel0 Corporate Booking インスタンスは
stateを検証した後、https://auth.travel0.net/oauth/tokenにある Travel0 の Auth0テナントを呼び出し、codeとclient id、client secretを渡して、IDトークン を取得します。取得した IDトークンは、https://hoekstra.corp.travel0.netのセッション生成に使用されます。 - Hoekstra & Associates の Travel0 Corporate Booking インスタンスでは、ユーザーに適切なページが表示されます。
エンタープライズ接続

-
MetaHexa Bank の Amintha がブラウザーを開き、MetaHexa Bank 向けの Travel0 Corporate Booking インスタンスにアクセスします。
- Amintha がすでに MetaHexa Bank 向けの Travel0 Corporate Booking インスタンスのセッションクッキーを持っている場合、通常はそのままシステムにログインされるため、ここで処理は終了します。詳細は、シングルサインオン を参照してください。
-
MetaHexa Bank 向けの Travel0 Corporate Booking インスタンスは、
/authorizeエンドポイントを呼び出してパラメーターを渡し、Authorization Code Flow (PKCE の有無を問わず) を使用して Travel0 Auth0 テナントにリダイレクトします。通常、これは Auth0 SDK またはサードパーティライブラリを使用して行われます。-
redirect_uri:https://metahexa.corp.travel0.net/login/callback -
response_type:code -
state: このセッションで生成された一意の state -
scope:openid profile… - ユーザーについて必要な情報に応じて追加で必要になる OIDC Scopes
-
client_id: MetaHexa Bank 向けの Travel0 Corporate Booking インスタンス用に、Travel0 Auth0 テナント内で作成されたアプリケーションに関連付けられたクライアントID。 -
organization: 使用する Auth0 組織。組織が事前にわかっている場合は、/authorizeへのリクエストにこのパラメーターを含めることができます。これはorganization=organization_id の形式で指定し、organization_id には Auth0 テナント内の対応する Auth0 組織定義に関連付けられた識別子を設定します。あるいは、/authorizeの呼び出しからorganizationパラメーターを省略し、第 1 要素認証の一部として適切な組織をユーザーに選択させるよう Auth0 テナントを設定することもできます。詳細は、Define Organization Behavior を参照してください。 -
connection: MetaHexa Bank 向けに設定された Auth0 エンタープライズ接続の名前。ベストプラクティスconnectionパラメーターは常に指定してください。指定しない場合、ユーザーは上流の IDプロバイダー (IdP) に関連付けられたエンタープライズ接続を選択する必要があり、UX の観点では余分な手順になります。
-
-
Travel Auth0 テナントは、第 1 要素の認証情報を認証するために MetaHexa IdP にリダイレクトします。
- ログインページが表示され、ユーザーが認証情報を入力します。Amintha がすでに MetaHexa IdP とのセッションを持っている場合、手順 3a と 4 はスキップされます。詳細は、シングルサインオン (SSO) を参照してください。
-
ユーザーが認証情報を入力し、
loginをクリックします。 - 第 1 要素の認証が正常に完了すると、Rules パイプラインが実行されます。Rules は、Authorization で説明されているように、アクセス制御の処理に使用できます。ユーザーの認証情報が無効な場合は、再入力を求められます。
このオプションを指定すると、メンバーシップは自動的に割り当てられます。詳細については、組織接続へのジャストインタイムメンバーシップの付与を参照してください。手動で割り当てるメンバーシップの場合、ユーザーがすでに組織のメンバーとして割り当てられていないと、検証に失敗します。
metahexa.corp.travel0.net) を使用します。
ソーシャル接続を介した認証は、エンタープライズ接続 の場合と同様のパターンに従いますが、上流の IdP が特定の組織ではなくソーシャルプロバイダーに関連付けられている点が異なります。
ソーシャル接続では、ユーザーの分離を組織ごとに一貫した形でモデル化することはできません。Custom Social Connections を使用するなどして、ソーシャルプロバイダーに対して複数の接続を作成し、ユーザー分離をモデル化したくなるかもしれませんが、そのような方法は避けてください。このような戦略では、同じユーザー ID が複数の接続定義に作成されるおそれがあり、いずれ必ず問題を引き起こします。