3

マルチテナント Rails 3 アプリケーションがあります。私は共有データベース アプローチを使用しています (すべてのスコープは tenant_id です)。

アプリケーション コントローラーのルーティングを設計するには、次の 3 つの異なるアプローチを考えることができます。

1) 各テナントに basecamp スタイルのサブドメインを設定します (例: customer1.myapp.com/projects 、 customer2.myapp.com/projects )。

2) myapp.com/customer1/projects 、 myapp.com/customer2/projects などのテナント識別子を使用して各ルートをスコープします。

3) ルーティングをマルチテナンシーに対して透過的にします。Tenant_id は、@user オブジェクトに tenant_id 属性があると仮定して、現在ログインしているユーザー (アプリケーション コントローラーの before_filter など) から取得されます。例: myapp.com/projects

私の質問は次のとおりです。

A)セキュリティ、開発の容易さ、コードの拡張性、およびエンドユーザーの観点から、これらのアプローチのそれぞれに利点または欠点はありますか? それとも純粋に開発者のスタイルの問題ですか?

B) #1 では、認証が成功した後にユーザーを customer1.myapp.com に転送する共通のログイン URL (例: login.myapp.com) を使用できますか? サブドメイン間でセッション Cookie を共有する際に問題はありませんか?

4

0 に答える 0