この記事で使用されているソフトウェアアーキテクチャ用語の「テナント」は、アプリケーションにアクセスできるユーザーのグループを指しています。お客様のAuth0インスタンスを指す場合は、「Auth0テナント」という用語が使われます。
Auth0 Organizations
ほとんどのマルチテナントユースケースでは、Auth0 Organizationsは貴社と貴社のユーザーにとって理想的なソリューションです。Auth0 Organizationsは、エンドユーザーがアクセスできる1つ以上のアプリケーションを持つ企業間(B2B)の実装をサポートします。 一般的なB2Bの統合には以下のような特徴があります。- 従業員が別の企業にライセンスされた製品を使用する
- 独自のフェデレーションと認証エクスペリエンスの軽量ブランディングを必要とする複数の組織。
- ユーザーグループごとに異なるレベルのアプリケーションアクセス。
レガシーソリューション
Auth0 Organizationsで貴社のユースケースの要件が満たせない場合には、成功に繋がるソリューションを開発できるように、弊社のプロフェッショナルサービスチームまでお問い合わせください。 レガシーソリューションの例には、以下のようなものがあります:- 各テナントを表すためにAuth0接続を使用すること。
- 各テナントを表すためにAuth0アプリケーションを使用すること。
- 各テナントを表すためにAuth0テナントを使用すること。
- ユーザーのプロファイルにテナントの詳細を保管すること。
Auth0接続を使用する
エンティティ制限が適用されることがあります。詳細については、「エンティティ制限ポリシー」をお読みください。エンタープライズサブスクリプションをご利用の場合、エンティティ制限によって制約されることはありませんが、接続で膨大な数のクライアントが有効になっていると制約を受ける可能性があります。
- テナントごとに異なるパスワードポリシーなど、異なる接続レベルの要件がある場合。
- 異なる接続からのユーザープールがある場合。たとえば、あるテナントがユーザーにユーザー名/パスワード資格情報の提供を要求し、別のテナントがユーザーにエンタープライズ経由でのログインを要求する場合があります。
connection
パラメーターを含めます。
アプリケーションでロックを使用している場合には、1つのアプリケーションについてデータベース接続の上限が50までであることに注意してください。ソーシャル接続とエンタープライズ接続はこの制限の影響を受けませんが、それでもエンティティ制限ポリシーの対象にはなります。
Auth0アプリケーションを使用する
エンティティ制限が適用されることがあります。詳細については、「エンティティ制限ポリシー」をお読みください。エンタープライズサブスクリプションをご利用の場合、エンティティ制限によって制約されることはありませんが、接続で膨大な数のクライアントが有効になっていると制約を受ける可能性があります。
enabled_clients
パラメーターに渡します。
Auth0テナントを使用する
各テナントは、個別のAuth0テナントで表すことができます。 このアプローチにより、テナントによって制限されたAuth0ダッシュボードへのアクセスをユーザーと共有できますが、テナントごとにAuth0を個別に構成する必要があります。 つまり、各Auth0テナントの機能を個別に管理するだけでなく(ブランディング、アクション、攻撃防御など)、アプリケーションは複数のAuth0構成をサポートする必要があるということです。ユーザーのプロファイルにテナントの詳細情報を保管する
テナントの詳細情報をユーザーのプロファイルに保管し、ユーザーのログイン後にアプリケーションでその情報を読み取ることができます。 このアプローチでは、所属するテナントにかかわらず、すべてのユーザーが統一された構成(利用可能な接続など)でログインできるようになります。 これを実装するために、任意の識別子("tenant":"customer-group-12345"
など)を使用して、app_metadata
オブジェクトにあるユーザーのAuth0プロファイルにテナントの詳細を保管することができます。ユーザーがログインすると、アプリケーションはtenant
変数を取得し、返された値に適切なバージョンを表示します。