マルチテナントソリューションを開発していて、最新の ASP.NET Identity フレームワーク、具体的には Entity Framework 実装を使用したいと考えています。
基本的に、2人のユーザーが同じユーザー名を持つことを許可する必要がありますが、テナント内で一意である必要がありますが、Twitter、Microsoft、Facebook、Googleなどの外部サインインも利用したいと思います。
私の知る限り、フレームワークはマルチテナンシーを念頭に置いて設計されていませんが、拡張性は許容されているようです。できるだけ多くの既存のコンポーネントを利用したいと思いますが、現時点では Entity Framework 実装を放棄し、すべて自分でコーディングする必要があると思います。
他の誰かがこれを試しましたか、そして彼らはどれだけ彼ら自身をコーディングしなければなりませんでしたか。
これで、GitHubリポジトリで共有した実用的なソリューションができました。
https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant
マルチテナンシーをサポートするために必要な拡張性は、 Microsoft.AspNet.Identity.EntityFramework の1.0.0リリースでは不可能ですが(少なくとも多くのカスタム作業がなければ)、1.1では利用可能です。現在、アルファリリースは Nightly ASP.NET Web Stack NuGetパッケージ から入手できます。
NuGetパッケージとして作成したものをリリースすることにしました AspNet.Identity.EntityFramework.Multitenant 、現在必要なのは Nightly ASP.NET Web Stack NuGetパッケージ =。
パッケージを利用してマルチテナンシーを可能にする2つの簡単なサイトを提供しました。
ASP.NET Identityの1.1バージョンがリリースされたら、ソリューションを更新する予定です。
私がリリースしたnugetパッケージで他の人が使用できることを願っています。フィードバックは大歓迎です。 見つけた問題を提起してください 。
ソリューションは、 Microsoft.AspNet.Identity.EntityFramework の2.0リリースを使用するように更新されました。
ええ、私たちはこれを拡張性のシナリオとして明示的に残しました。これは、UserManagerプロパティをオーバーライドし、独自のカスタムIUserStoreを実装することで実行できるはずです。 EF UserStoreを拡張して、tenantIdをユーザーに追加することもできるかもしれませんが。