0

最近リリースされた DocumentDb をテストしていますが、ユーザー データ分離の実行方法に関するベスト プラクティスを示すドキュメントが見つかりません。

大まかなデザインは次のようになると思います。

  • ユーザーを認証し、新しいユーザー ID を作成する/既存のユーザー ID を取得する
  • ドキュメントの挿入時に、ユーザー ID をドキュメントに挿入します
  • ドキュメントの読み取り時/ドキュメントのコレクションのクエリで、ドキュメントのユーザー ID = 現在のユーザー ID

私は AngularJs アプリケーションを作成しており、現在 Azure Sql Database と Azure Mobile Services を組み合わせて使用​​しています。

モバイル サービスは、データ スクリプト JavaScript 関数を使用して、ユーザー認証とサーバー側のユーザー データの分離を処理します。

例えば

function insert(item, user, request) {
  item.userId = user.userId;
  request.execute();
}

DocumentDB を使用して AngularJS からユーザー データを安全に分離するための手法について何か提案はありますか?

4

1 に答える 1

1

あなたのアプローチは私には合理的に思えます-大まかな設計で言及されているロジックがバックエンドサービスで行われると仮定します。

通常、DocumentDB は他のデータストアと同様に扱います。クライアント (AngularJS) は、データストアを直接呼び出すのではなく、バックエンド サービスを呼び出します。バックエンドは、データストアに作業を委譲する前に、クライアントの要求を検証します (つまり、ユーザーが認証されており、特定のデータに触れる可能性があることをアサートします)。

クライアントからデータベースに直接アクセスする必要がある場合は、DocumentDB のユーザーとアクセス許可を確認してください。アプリケーションにマルチテナンシーを実装するために、実際のユーザーまたはアプリケーションのテナントに対応する DocumentDB にユーザーを作成できます。次に、さまざまなコレクション、ドキュメント、添付ファイルなどに対するアクセス制御に対応する特定のユーザーのアクセス許可を作成できます。クライアントでは、DocumetnDB の管理者キーではなく、ユーザーのリソース キーを使用してデータベースに接続できます。

DocumentDB ユーザー/アクセス許可に関するこのブログ投稿を確認してください: http://blogs.msdn.com/b/cloud_solution_architect/archive/2014/12/09/permissions-in-azure-documentdb.aspx

于 2014-09-04T17:58:19.510 に答える