マルチテナント アプリケーションをカスタマイズするには、次の 2 つの方法があります。 1. プレゼンテーション層の変更 2. システムの変更。
以下は、マルチテナント環境の Web アプリケーションで好まれる典型的なカスタマイズ オプションです。
1) ユーザーインターフェースとブランディング、
2) ワークフローとビジネス ルール、
3) データモデルの拡張、および
4) アクセス制御
そのうちの 1 つはプレゼンテーション層の変更に属し、残りはすべてマルチテナント アプリケーションのシステム レベルの変更を形成します。
MVC は、テナントが独自のテーマ、ロゴ、カスタム レイアウト、またはカスタム コントローラーとカスタム ページ セクションを持つことを許可するオプションがあるプレゼンテーション層のカスタマイズ オプションと見なされます。
システム設定の場合、これを実現する方法は多数ありますが、次の方法が最も一般的です。
- データベース レベルでのカスタマイズ
- ミドルウェア レベルでのカスタマイズ。
SaaS アプリには、機能と実装があります。後者の場合、テナントの構成に基づいて検討中のテナントに対してどの実装を呼び出すかを管理し、サービスを提供するテナント固有の構成があります。これらは、テナント対応のカスタム依存性注入メカニズムを使用して実現されます。また、このプロセスを容易にするために実行時に使用できるテナント固有の構成が必要になります。
(1)の場合、マルチテナント環境のテナント間で構成やメタデータが共有されないように、db内のデータをテナント識別子に基づいて分離する必要があります。
したがって、主なコンポーネントは次のようになります
- テナント コンテキストから取得したテナント識別子
- マルチテナント データストレージ
- テナント固有認証【フォーム署名・シングルサインオン等】
私見、あなたのトピックは幅広いので、より具体的な分野を提示していただければ、それらの実装について話し合います。
これがあなたの質問に答えてくれることを願っています。アップデートを投稿してください。