2

私は、CouchDB にもっと慣れるために趣味のプロジェクトに取り組んでいます。CouchDB を使用するのはこれが初めてです。このプロジェクトの目標は、HTML、CSS、JavaScript、CouchDB、および nginx だけで Web アプリケーションを構築できるかどうかを調査することです (つまり、Couch でコードをホストしているのではなく、データのみをホストしています)。 .

これは非常に非現実的かもしれませんが、まずこのスタックのすべてのオプションを検討したいと思います。

現在、私の最大の疑問はセキュリティに関するものです。CouchDB にいくつかのデータベースがあり、それぞれがホストされたサイトに対応しているとします。この例では、単一のデータベース、つまり単一のサイトに焦点を当てます。このサイトのコンテンツの一部は、匿名ユーザーであっても、すべての人が利用できるようにする必要があります。その他のものは、特定の役割を持つユーザーのみが利用できるようにする必要があります。どのような選択肢がありますか? また、それぞれの選択肢はどの程度安全ですか?

これまでにいくつかのアイデアを思いつきましたが、これは週末に取り組む予定だったものです。

  1. ユーザーと役割を に追加します/{site_db}/_security
  2. という名前のユーザーを追加します。このユーザーにはanon、役割が 1 つしかありませんanon
  3. ユーザーが最初にサイトにアクセスすると、JS モデルが現在のセッションのステータスを確認します ( GET /_session)。
    • セッションが存在しない場合、JS モデルはanonアカウントを使用して認証します。
  4. デザイン ドキュメントでビューを定義します。
    • 非匿名ユーザーのみが使用できるビューは、userCtxオブジェクトのロールを確認する必要があります。
    • 新しく作成されたドキュメントの検証ではuserCtx、ユーザーの役割がホワイトリストにあるかどうかを確認する必要があります。

これは機能するはずですが、複雑すぎると思わずにはいられず、もっと良い方法があるに違いありません。anonまた、ユーザーが自分のユーザー ドキュメントを更新して役割を追加できないようにする方法もわかりません。

4

1 に答える 1

0

CouchDB セキュリティ モデルが気に入らない場合は、代わりにリバース プロキシに簡単に実装できます。

これはApacheのですが、nginxでも非常に似ているようです。

于 2013-04-04T06:17:12.840 に答える