6

REST スタイルの JSON over HTTP アクセスをサポートするドキュメント データベースは、従来の Web サーバーやアプリケーション ロジック コンポーネントをバイパスして、ブラウザがデータベースを直接呼び出す AJAX リッチ アプリケーションをサポートするのに理想的です。この例としては、ユーザーが認証された後にユーザー設定を取得することがあります。(BBC ホームページは、負荷の下でクラッシュする前の良い例かもしれません!)

このシナリオの問題は、セキュリティの問題です。ユーザーが Web サーバーを使用して認証される場合 (基本的なフォーム認証など)、この ID がドキュメント DB にどのように引き継がれるかです。とにかく、Webサーバーを介してDBへのすべてのリクエストをプロキシする唯一の答えはありますか?つまり、直接の外部アクセスがないようにドキュメントDBを保護しますか?

これは最も理にかなっているようで、最も簡単に実装できますが、異機種環境でドキュメント データベースを使用することについて経験やアドバイスを持っている人がいるかどうか疑問に思っていました。

4

2 に答える 2

1

まあ、私は CouchDB の経験しかありませんが、それでもあなたを助けることができれば幸いです.

CouchDB には検証プロセスが組み込まれており、JavaScript で検証ルールを記述し、現在のユーザーが属するグループにアクセスできます。基本的にすべて CouchDB 自体によって処理されます。ログイン情報を取得する方法を気にする必要はありません。

于 2010-06-24T15:08:49.937 に答える
1

これはおそらく、言及したすべてのデータベースで異なります。CouchDB での動作は次のとおりです。

CouchDB を使用すると、ユーザーとロールを管理できます。

設計ドキュメントでこの機能を使用して、validate_doc_updateドキュメントの作成/更新を制限できます。たとえば、作成者以外のドキュメントの更新を拒否する検証を作成できます。

データベースからドキュメントを読み取ることができるユーザーを制限するには、/db_name/_securityドキュメントを編集して、ユーザーまたはロールを一覧表示します。

ただし、読み取りアクセスをより細かくすることはできないと思います (つまり、ユーザーが作成したドキュメントのみを読み取ることを許可する)。

これを実現するには、CouchDB をプロキシの背後に配置し、ビューを使用して認証されたユーザーにドキュメントを提供する必要があります。この方法で CouchDB ユーザー管理を引き続き使用できます。プロキシは、データベースへの直接アクセスを隠すだけです。

詳細については、CouchDB wiki のセキュリティの概要、Relax ブックのセキュリティの章、およびこの短いスクリーンキャストを確認してください。

于 2010-07-15T10:37:15.647 に答える