私はマルチテナントSaaSアプリケーションを構築しようとしていますが、それには複数のアプローチがありますが、マルチデータベースを選択しました。マルチテナントSaaSアプリケーションのための最善のアプローチ
私はテナントごとにdbを作成し、メインデータベース にテナントのテーブルを格納し、サブドメインに基づいてそれぞれのデータベースにユーザーを接続します。
ここで私の問題は、どこにメインデータベースにユーザーを格納するのですか?またはテナントDBは、メインDBにユーザーを格納することは、他のDBのユーザーに関連するモデルを取得することが困難になりますが、テナントdb内に格納することは、すべてのユーザーを認証することが困難になります...
何が最善のシナリオですか?
- を取得し、jwtトークンを取得します。
- 各リクエストでトークンを送信します。
- 各トークンの検証、サブドメインのチェック、それぞれのテナントdbへの接続、実行要求。
これは良いアプローチですか? usersテーブルの問題をどうすればいいですか? ThnQ
セッションを生成し、なぜ「テナントDB内にそれを保存するのは難しい、すべてのユーザーに認証するようになるだろう」あなたはそれをしたいですか? –
多分私はそれを明確にしなかったかもしれません...テナントを指定しなくてもユーザログが初めての場合、テナントDBに保存してください。どのデータベースから認証するのですか? – Sherif
メールのように見えるuserid([email protected]など)を使用してテナントを明示的に指定するか、リクエストを処理したドメイン名を調べて暗黙的にテナントを特定します。どちらの場合でも、各テナント内でユーザーIDを一意にする必要があります。つまり、誰かがテナント#1内でユーザIDボブを設定している場合、テナント#2内で他人がユーザIDボブを使用することを妨げてはなりません。 –