Organizations
hoekstraを、MetaHexa Bankを代表する組織として metahexaを作成します。から手動で、あるいはAuth0 を使ってプログラムで組織の作成が可能です。
アプリケーション
/authorizeエンドポイントの呼び出しの一部として、アプリケーション固有のclient_idパラメーターとorganizationパラメーターの双方が含まれます。詳細については、「認証」を参照してください。
ベストプラクティスAuth0では、アプリケーションを個別に定義した方が、構成しやすいだけでなく、セキュリティのために最大限の分離を実現できます。個別に定義することで、許可されるCallback URLなどの項目を個別に設定することができ、最小権限の原則(PoLP)に従って、クライアントIDやクライアントシークレット情報が漏洩する危険を最小限に抑えることができます。
client_idが必要ですが、 organizationパラメーターは/authorizeエンドポイント宛ての呼び出しでは省略されます。
接続
ベストプラクティス単一のIDプロバイダー(IdP)を使用している組織では、定義された組織ごとに接続を1つ作成して柔軟性を持たせ、多数のユースケースに対応します。たとえば、各組織につき1つのデータベース接続またはカスタムデータベース接続があれば、組織が閉鎖された場合に関連付けられているユーザーが簡単に削除できます。また、パスワードの複雑性に関して異なる要件を課している組織にとっても、柔軟性が高まります。
ユーザー
ユーザーに手動で組織のメンバーシップを割り当てるためには、そのユーザーにAuth0で定義されたユーザープロファイルがなければなりません。メンバーシップを手動で割り当てるときは、Auth0 Tenant DashboardまたはAuth0 Management APIを使用します。
Invitation(招待)
データベース接続

-
Hoekstra & Associateに勤めるジェニファーは、Hoekstra & AssociatesのTravel0 Corporate Bookingインスタンスの代理として、Travel0のAuth0テナントからメールを受信します。
- メールは「組織メンバーを招待する」で説明した通り送信され、Auth0 DashboardとAuth0 Management APIのいずれかを使ってトリガーされた可能性があります。
-
ジェニファーはメールを開いて、提供されたリンクをクリックします。そうすると、ブラウザーにHoekstra & AssociatesのTravel0 Corporate Bookingインスタンスが表示されます。リンク内のベースURLはアプリケーション ログイン URIとして指定されたもので、Travel0 Auth0 TenantのTravel0 Corporate BookingアプリケーションのHoekstra & Associatesのインスタンスの一部を構成します。
- リンクには
organizationとorganization_nameパラメーターが含まれます。organizationパラメーターは、Auth0テナント内で対応するAuth0 Organization定義のIDに設定されます。これは、手順3の一部でAuth0テナントへ転送されます。 - このリンクにはまた、やはり手順3の一部として転送される
invitationパラメーターも含まれます。
- リンクには
-
Hoekstra & AssociatesのTravel0 Corporate Bookingインスタンスは、
/authorizeエンドポイントを呼び出して、通常はAuth0 SDKまたはサードパーティのライブラリを通して、以下に類似したパラメーターを渡すことにより、 認可コードフロー(PKCEを使用または不使用)を使ってTravel0 Auth0 Tenantにリダイレクトします。redirect_uri:https://hoekstra.corp.travel0.net/login/callbackresponse_type:codestate:このセッションで生成された一意の statescope:openid profile…- ユーザー関連情報をベースとした、必要な追加のOIDCスコープ
client_id:Hoekstra & AssociatesのTravel0 Corporate Bookingインスタンスのため、Travel0 Auth0テナントで作成されたアプリケーションに関連付けられているクライアントIDorganization:手順2の説明にあるように、通常はメール内のリンクを通して取得される招待側組織のID。organization=organization_idの形式で指定されます(organization_idは、Auth0 Tenantで、対応するAuth0 Organization定義と関連付けられている識別子)。invitation:手順2の説明にあるように、メール内のリンクに関連付けられる追加のinvitationパラメーター。
-
Travel0 Auth0テナントは、
/signup/invitationにリダイレクトしてユーザーからパスワード資格情報を収集します。- 「ブランディング」で説明した通り、組織固有のブランドコラテラルを表示するように設定できるユニバーサルログインページが表示されます。
- ユーザーはパスワード(と、ユーザー名など、追加の資格情報)を入力して、[続行]をクリックします。ユーザーIDは、ユーザーに関連付けられているメールアドレスに設定され、ユーザーはこの設定を変更できません。
-
Travel0のAuth0テナントが資格情報を確認します。有効であれば、ユーザーがプロビジョニングされ、Auth0 Organizationのメンバーシップが設定されます。ユーザーは暗黙的に認証され、 Rulesのパイプラインが実行されます。ルールは、「認証」で説明した通り、アクセス制御を取り扱うために使われます。
- ユーザーの資格情報が無効な場合には、ユーザーに再入力が要求されます。
-
資格情報のチェックとルールの実行が完了すると、ユーザーは
redirect_uri(https://hoekstra.corp.travel0.net/login/callback)にリダイレクトされ、手順3のstateとcodeが渡されます。 -
Hoekstra & AssociatesのTravel0 Corporate Bookingインスタンスが
stateを検証し、https://auth.travel0.net/oauth/tokenでTravel0 Auth0のテナントを呼び出して、 ID トークンと引き換えにcodeとそのクライアントIDおよびクライアントシークレットを渡します。その後IDトークンを使ってhttps://hoekstra.corp.travel0.netのセッションが作成されます。 - Hoekstra & AssociatesインスタンスのTravel0 Corporate Bookingインスタンスは、ユーザーに適切なページを表示します。
エンタープライズ接続

-
MetaHexa Bankに勤めるアミンサは、MetaHexa BankのTravel0 Corporate Bookingインスタンスの代理として、Travel0のAuth0テナントからメールを受信します。
- メールは「組織メンバーを招待する」で説明した通り送信され、Auth0 DashboardとAuth0 Management APIのいずれかを使ってトリガーされた可能性があります。
-
Aminthaはメールを開いて、提供されたリンクをクリックします。そうすると、ブラウザーにMetaHexa BankのTravel0 Corporate Bookingインスタンスが表示されます。リンク内のベースURLはアプリケーション ログイン URIとして指定されたもので、Travel0 Auth0 TenantのTravel0 Corporate BookingアプリケーションのMetaHexa Bankのインスタンスの一部を構成します。
- リンクには
organizationとorganization_nameパラメーターが含まれます。organizationパラメーターは、Auth0テナント内で対応するAuth0 Organization定義のIDに設定されます。これは、手順3の一部でAuth0テナントへ転送されます。 - このリンクにはまた、やはり手順3の一部として転送される
invitationパラメーターも含まれます。
- リンクには
-
MetaHexa BankのTravel0 Corporate Bookingインスタンスは、
/authorizeエンドポイントを呼び出して、通常はAuth0 SDKまたはサードパーティのライブラリを通して、以下に類似したパラメーターを渡すことにより、 認可コードフロー(PKCEを使用または不使用)を使ってTravel0 Auth0 Tenantにリダイレクトします。redirect_uri:https://metahexa.corp.travel0.net/login/callbackresponse_type:codestate:このセッションで生成された一意の statescope:openid profile…- ユーザー関連情報をベースとした、必要な追加のOIDCスコープ
client_id:MetaHexa BankのTravel0 Corporate Bookingインスタンスのために、Travel0のAuth0テナントで作成されたアプリケーションに関連付けられているクライアントID。organization:手順2の説明にあるように、通常はメール内のリンクを通して取得される招待側組織のID。organization=organization_idの形式で指定されます(organization_idは、Auth0 Tenantで、対応するAuth0 Organization定義と関連付けられている識別子)。invitation:手順2の説明にあるように、メール内のリンクに関連付けられる追加のinvitationパラメーター。
-
Travel0 Auth0テナントは
/invitationにリダイレクトして、そこでアミンサは第1要素の資格情報のためにMetaHexaのIdPにリダイレクトされることを知らされます。- ユーザーが同意すると
- Auth0がMetaHexa BankのIdPインスタンスにリダイレクトし
- ログインページが表示され、ユーザーは資格情報を入力してから
[login(ログイン)]をクリックします。
- 成功すると、Auth0 Organizatioメンバーシップが設定され、ユーザーは暗黙的に認証されて、ルールパイプラインが実行されます。ルールは、「認証」で説明した通り、アクセス制御を取り扱うために使われます。
metahexa.corp.travel0.net)が使われます。
ソーシャル接続を介した招待は、エンタープライズ接続と似たパターンを使用しますが、アップストリームIdPは、特定の組織でなく、ソーシャルプロバイダーと関連付けられます。ソーシャル接続の使用に関して追加で考慮するべき内容については、「認証」を参照してください。