Auth0 Organizations を使用すると、B2B 製品や SaaS アプリケーションを提供する組織は、マルチテナント アーキテクチャを構築し、識別トークンを適切に保存して、エンドユーザーのログイン時の負担を最小限に抑えることができます。
アプリケーションは Login Experience タブで設定でき、次の 3 種類のユーザーに対応できます。
個人
ビジネスユーザー
両方
Netflix や Spotify のように、明確に一般消費者向けに設計されたアプリケーションでは、通常、組織の管理は必要ありません。Individuals を選択すると、ユーザーはアプリケーションに直接ログインし、組織コンテキストは提供されません。
Slack や Jira のような B2B または SaaS アプリケーションには、Business Users が適しています。これにより、エンドユーザーは Auth0 の組織コンテキスト内でのみアプリケーションにアクセスできるようになります。複数の組織に所属しているユーザーは、ログインフローの後に Organization Picker に移動し、参加している最初の 20 件の組織が表示されます。
エンドユーザーがアプリケーションで個人用アカウントとビジネス用アカウントの両方を持つ可能性がある場合は、Both を選択します。たとえば、GitHub では個人用と業務用の両方のコードリポジトリを管理することがよくあります。
アプリケーションのユーザータイプは、Auth0 Dashboard (前述のとおり) または Management API で設定できます。具体的には、Update a client エンドポイントの organization_usage パラメーターを使用して、適切なユーザータイプを設定します。両方の方法の詳細については、Define Organization Behavior を参照してください。
Business Users または Both を選択すると、ユーザーがアプリケーションにログインする際の体験をさらにカスタマイズできます。ほとんどの組織では、Prompt for Credentials を選択し、Identifier First Authentication を有効にするのが一般的です。ユーザーがログインしようとしている組織がすでにわかっている場合は、No Prompt オプションと Custom Development with Organizations を組み合わせることで、アプリでブランドを反映したカスタマイズ済みのログインフローを維持できます。
管理者は、Prompt for Organization トグルを有効にすることで、エンドユーザー体験をさらに細かく調整できます。これにより、ユーザーは組織名または組織のメールアドレスを使用して、ログイン先の組織を指定する必要があります。
アプリケーションのログインフローは、Auth0 Dashboard (前述のとおり) または Management API で設定できます。具体的には、Update a client エンドポイントの organization_require_behavior パラメーターを使用して、適切なフローを設定します。両方の方法の詳細については、Define Organization Behavior を参照してください。
資格情報入力を求める Identifier First Authentication
エンタープライズアプリケーションで Enterprise Federation を使用している場合は、その Authentication Profile で Identifier First Authentication with Home Realm Discovery を有効にできます。有効にすると、Home Realm Discovery が既知のドメインのメールアドレスを検出し、自動的に適切な Workforce ログインに転送します。
このフローでは、ユーザーのメールアドレスのドメインが、どのエンタープライズ接続の IDプロバイダー (IdP) ドメインにも一致しない場合のフォールバックとして、Auth0 の Database Connection を 1 つだけ使用できます。ユーザーには組織のログインプロンプトではなく、アプリケーションのログインプロンプトが表示され、アプリケーションで有効になっている接続 が表示されます。
Auth0 テナントの設定で Default Directory が構成されている場合、アプリケーションで Default Directory が有効になっていなくても、Auth0 はこのログインフローの接続としてそれを使用します。Default Directory は、アプリケーションで有効になっている接続より優先されます。 この動作は Prompt for Credentials フローにのみ適用されます。Prompt for Organization フローまたはプロンプトを表示しないシナリオでは、Auth0 がそれを選択できるように、アプリケーションで Default Directory を有効にする必要があります。
ユーザーがメールアドレスを入力すると、Auth0 はそのメールアドレスを、このアプリケーションで有効になっている Enterprise Connections と、Organizations で有効になっているすべての Enterprise Connections に照合します。一致が見つかった場合、ユーザーは関連付けられた IdP で認証するよう誘導されます。一致が見つからない場合は、パスワード入力欄が表示されます。
Prompt for Organization を使用する Identifier First Authentication
ユーザーが認証を開始すると、Auth0 はまず組織 (該当する場合) を特定し、次に認証に使用する適切なIDプロバイダー (IdP) または接続を特定します。
ユーザーはまず、メールアドレス (例: alice@rockymountainadventures.com) または組織名 (例: Rocky Mountain High Adventures) のいずれかを入力します。
プロンプト画面の内容は、アプリケーションの Login Experience > Type of Users 設定によって異なります。
Business Users では組織のプロンプトのみが表示され、ユーザーは組織でログインする必要があります。
Both では組織のプロンプトと個人アカウント用のプロンプトの両方が表示され、ユーザーはいずれでもログインできます。
Auth0 は組織ドメインの検出をサポートしており、必要に応じて、Identifier First Authentication の実行前にユーザーの組織を検出できます。
設定すると、ユーザーがメールアドレスを入力したときに、Auth0 がそのユーザーの組織を自動的に検出したり、組織の候補を絞り込んだりできるようになります。組織ドメインの検出によって、サインアップまたはログインできるユーザーが制限されることはありません。
Identifier First Authentication と組織ドメインの検出を組み合わせることで、複数組織環境でも明確さと制御を維持しながら、エンタープライズログインフローを効率化できます。
テナントで検証済みの組織ドメインを設定 しており、organization パラメーターが指定されていない場合、Auth0 は検証済み (保留中ではない) のドメインに基づいて、ユーザーの組織を自動的に判定しようとします。
一致する組織が 1 つだけの場合、Auth0 はその組織を自動的に選択し、その組織のコンテキストで Identifier First Authentication フローを続行します。
複数の組織が同じドメインまたは名前を共有している場合 (たとえば、AdventureZ と Granite Outpost の両方で travelco.com が設定されている場合) 、Auth0 はユーザーが選択できるように組織セレクターを表示します。選択後、Auth0 は Identifier First Authentication フローを続行します。
一致する組織が見つからない場合、Auth0 は標準の Identifier First Authentication に進みます。
Identifier First Authentication
Identifier First Authentication の目的は、ユーザーをどの接続または IDプロバイダー (IdP) に振り分けるかを判定することです。
組織 (存在する場合) が特定されると、Auth0 はホームレルム検出とともに Identifier First Authentication を適用します。
connection パラメーターが指定されている場合、Auth0 はそれを使用してユーザーをその特定の接続に振り分けます。
それ以外の場合、Auth0 はアプリケーションと組織 (該当する場合) の両方で有効になっているすべてのエンタープライズ接続を確認します。
ユーザーのメールアドレスのドメインに基づいて一致する IdP が見つかった場合、Auth0 は認証のためにユーザーをその IdP にリダイレクトします。
一致するものが見つからない場合、またはユーザーのメールアドレスのドメインが有効な IdP のいずれにも対応していない場合、Auth0 は Auth0 データベース接続 (アプリケーションで有効になっている場合) にフォールバックします。このフォールバック状態では、ユーザーには組織のログインプロンプトではなく、アプリケーションのログインプロンプトと、アプリケーションで有効になっているすべての接続が表示されます。
異なる組織に複数のデータベース設定が割り当てられている場合など、Auth0 がユーザーのメールアドレスをどの IdP に関連付けるべきか判断できないユースケースがあります。このような場合は、ログイン開始プロンプトとして Prompt for Organization を選択するか、organization パラメーターを Auth0 に送信してください。
Management API を使用して、Identifier First Authentication を設定できます。具体的には、Update prompts settings エンドポイントの identifier_first パラメーターを使用します。
ユーザーを組織に直接招待したり割り当てたりする代わりに、フェデレーション IdP で認証できる任意のユーザーに組織へのアクセスを付与したい場合があります。このようなシナリオでは、Auth0 は Auto-Membership 設定を推奨しています。
自動メンバーシップは通常、ユーザーを組織のログインプロンプトに誘導してログインさせる ことでトリガーされます。この方法では、ユーザーに代わって connection パラメーターと organization パラメーターを渡すことができます。ログイン前にユーザーの対象の組織を特定できない場合は、Prompt for Credentials フローにより、自動メンバーシップが設定されている唯一の組織にメンバーシップが付与されます。
ただし、ログインに誘導する前に、ユーザーの対象の組織を特定できないケースもあります。この場合も、前述の Prompt for Credentials フローを使用できますが、ユーザーに組織のメンバーシップが付与されるのは、自動メンバーシップが有効化されている組織のうち、この接続がその組織で有効な接続として設定されている組織がただ 1 つだけである場合に限られます。
Management API を使用して自動メンバーシップを設定できます。具体的には、Modify an organization’s connection エンドポイントの assign_membership_on_login パラメーターを使用します。