2016-11-08 7 views
1

マルチテナントアプリケーションを作成する予定であるため、AzureドキュメントDBを使用して遊んでいます。マルチテナントアプリケーションのAzure DocumentDBユーザー

マルチテナントアプリケーションでは、私の考えはテナントごとに1 dbユーザーを作成することです。テナントデータが完全に分離されるという利点があります。ドキュメントを作成するときに、テナントユーザーに権限が追加されます。 (読み取り/書き込み)これは、照会すると、データは常に現在のテナントにスコープされることを意味します。

また、エンドユーザーあたり1 DBユーザーで遊んでいました。しかし、これは私に文書のセキュリティを管理するためのオーバーヘッドを与える。テナントzのユーザーxがドキュメントを追加すると、テナントzのすべてのユーザーがそのドキュメントの追加のアクセス許可で更新される必要があります。これは実現不可能と思われる。

私の前提は正しいですか?それとももう一つのアプローチを提案しますか?このアプローチには欠点がありますか?

答えて

2

マルチテナントソリューションでは、DocumentDBのコントロールをまったく使用しないことを選択しました。中間層での権限のすべては、主に述語ベースでテナントごとに異なるためです。つまり、テナントレベルでDocumentDBの認可機能を使用するあなたのアプローチは理にかなっています。それはあなたのテナントに、他のテナントが自分のデータを見ることができないという保証を追加します。

クロステナント機能(多分テナントグループの形式)があれば、それを考慮してモデルを破ることになると思うかもしれません。

テナントは数百人で、ユーザーは何人でも何でも構いませんが、DocumentDBの承認機能がそのレベルまで拡大することを確認する必要があります。おそらく、これを監視するDocumentDBプロダクトマネージャの1人がチャイムインしますか?

+1

DocumentDBのユーザーとアクセス許可の機能は、一連のきめ細かなリソースのデータベースへの直接アクセスを許可することを目的としています。パーミッションを作成して生成されたリソーストークンは一時的なもので、OATHトークンの動作と同様です。ユーザーがリソースのセットに対してデータベースエンドポイントに直接アクセスできるようにする場合は、これが最適です。アプリケーションのテナントを単離したい場合は、中間層でこれを実行するほうがずっと簡単です。 –

関連する問題