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

-
Hoekstra & Associates の Jennifer はブラウザーを開き、Hoekstra & Associates の Travel0 Corporate Booking インスタンスにアクセスします。
- Jennifer が Hoekstra & Associates の Travel0 Corporate Booking インスタンスのセッションCookieをすでに保持している場合、通常はシステムにログイン済みのため、ここで処理を終了します。詳しくは、シングルサインオンをご覧ください。
-
Hoekstra & Associates の Travel0 Corporate Booking インスタンスは、通常 Auth0 SDK またはサードパーティのライブラリを使用して
/authorizeエンドポイントを呼び出し、パラメーターを渡すことで、認可コードフロー (PKCE の有無を問わず) を使って Travel0 の Auth0 テナントにリダイレクトします。-
redirect_uri:https://hoekstra.corp.travel0.net/login/callback -
response_type:code -
state: このセッションで生成された一意のstate -
scope:openid profile… - ユーザーについて必要な情報に応じて、必要な追加のOIDC Scopes。
-
client_id: Hoekstra & Associates の Travel0 Corporate Booking インスタンス向けに、Travel0 Auth0 テナントで作成されたアプリケーションに関連付けられた Client ID。 -
organization: 使用する Auth0 Organization。organization が事前にわかっている場合は、/authorizeへのリクエストにこのパラメーターを含めることができます。このパラメーターはorganization=organization_id の形式で指定します。ここで、organization_id には、Auth0 テナント内の対応する Auth0 Organization 定義に関連付けられた識別子を設定します。あるいは、/authorizeの呼び出しからorganizationパラメーターを省略し、第一認証要素による認証の一環として、適切な organization をユーザーに選択させるよう Auth0 テナントを設定することもできます。詳しくは、Define Organization Behavior を参照してください。
-
-
Travel0 Auth0 テナントは、ユーザーに資格情報を入力してもらうため
/loginにリダイレクトします。Jennifer が Hoekstra & Associates の Database セッションをすでに持っている場合は、ステップ 3a と 4 はスキップされます。詳しくは、シングルサインオン をご覧ください。- ブランディングで説明されているように、organization固有のブランド要素を含めるように設定した Universal Login ページが表示されます。
-
ユーザーは資格情報を入力し、
loginをクリックします。 -
Travel0 Auth0 テナントはユーザーの資格情報を確認し、有効であれば ルール パイプラインが実行されます。ルールは、認可 で説明されているように、アクセス制御を処理するために使用できます。ユーザーの資格情報が無効な場合は、再入力を求められます。
このオプションを指定すると、メンバーシップが自動的に割り当てられます。詳細については、Organization Connection に Just-In-Time メンバーシップを付与するを参照してください。手動で割り当てるメンバーシップの場合、ユーザーがまだ組織のメンバーとして割り当てられていないと、バリデーションは失敗します。
-
第1認証要素による認証とルールの実行が正常に完了すると、ユーザーは手順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 インスタンスのセッション Cookie を保持している場合、通常はシステムにログイン済みのため、ここで処理は終了します。詳細については、シングルサインオン を参照してください。
-
MetaHexa Bank 用の Travel0 Corporate Booking インスタンスは、
/authorizeエンドポイントを呼び出し、通常は Auth0 SDK またはサードパーティのライブラリを使用して各種パラメーターを渡すことで、Travel0 の Auth0 テナントに対して 認可コードフロー (PKCE あり/なし) を開始します。-
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 テナントで作成されたアプリケーションに関連付けられた Client ID -
organization: 使用する Auth0 組織。組織が事前にわかっている場合は、/authorizeへの request にこのパラメーターを含めることができます。これはorganization=organization_id の形式で指定し、organization_id には Auth0 テナント内の対応する Auth0 組織定義に関連付けられた identifier を設定します。あるいは、/authorizeの呼び出しでorganizationパラメーターを省略し、最初の認証要素の認証時に適切な 組織 をユーザーが選択するよう Auth0 テナントを設定することもできます。詳細については、Define Organization Behavior を参照してください。 -
connection: MetaHexa Bank 用に設定された Auth0 エンタープライズ接続の名前ベストプラクティスconnectionパラメーターは必ず指定してください。指定しない場合、ユーザーは upstream IDプロバイダー (IdP) に関連付けられたエンタープライズ接続を選択する必要があり、UX の観点では余計な手順になります。
-
-
Travel0 の Auth0 テナントは、第1認証要素の資格情報を認証するため、MetaHexa IdP にリダイレクトします。
- ログインページが表示され、ユーザーは資格情報を入力します。Amintha がすでに MetaHexa IdP とのセッションを持っている場合、手順 3a と 4 はスキップされます。詳細については、シングルサインオン (SSO) を参照してください。
-
ユーザーは資格情報を入力し、
loginをクリックします。 - 第1認証要素の認証が成功すると、ルール pipeline が実行されます。ルールは、Authorization で説明されている access control の処理に使用できます。ユーザーの資格情報が無効な場合は、再入力を求められます。
このオプションが指定されている場合、メンバーシップは自動的に割り当てられます。詳しくは、Organization Connection に Just-In-Time メンバーシップを付与するを参照してください。手動で割り当てられたメンバーシップでは、ユーザーがその組織のメンバーとしてまだ割り当てられていない場合、バリデーションに失敗します。
metahexa.corp.travel0.net) を使用します。
ソーシャル接続による認証は、エンタープライズ接続の場合とほぼ同じパターンに従いますが、上流の IdP は特定の organization ではなく、ソーシャルプロバイダーに関連付けられています。
ソーシャル接続 では、organization ごとに一貫した形でユーザー分離をモデル化することはできません。カスタムソーシャル接続を使用して、1 つのソーシャルプロバイダーに対して複数の接続を作成し、ユーザー分離をモデル化したくなるかもしれませんが、そのような方法は避けてください。このような戦略では、同じ user ID が複数の接続定義に作成される可能性があり、将来的に確実に問題を引き起こします。