背景研究:セキュアクライアント側couchApp/CouchDBのユーザー認証
User Signup in Couchapp/CouchDB through jquery.couch.js or Otherwise
https://issues.apache.org/jira/browse/COUCHDB-1175 - 特に "アリNajarian" さんの記事
質問:
私が上に投稿したSOの質問を言い換えると:
"couchdbのcouchdbにアカウントを登録するためのサインアップフォームがあります。これにより、couchdb_usersデータベースに新しいユーザーが作成され、新しいユーザーがデータベース管理者の役割を割り当てられた新しいデータベースが作成されます。 "
上記の質問に対する回答は、couchdbを監視してクライアントからの特定のデータイベントに応じてcouchdbを変更するためにcouchdbに管理者としてログインしていた外部の別のサーバーを使用することに関連していました。 。
私の質問は - それは唯一の方法ですか?それはcouchdbの2層ウェブスタックの全目的を凌ぐものではありませんか?couchdbデータベースを変更する方法はありますか? ==ユーザー "文書を"内部的に "/別途管理者としてログインした場合
これを行う簡単な方法がある場合はお詫びします。適切な文書を見つける。
エクストラ問題の明確化:
- インターネットアドレスの前に座っCouchDBのインスタンスがあります。
- このcouchデータベースは、htmlページとサインイン/ログインフォームを含む埋め込みjavascriptスクリプトをランダムなクライアントに提供します。
- クライアントはサインイン情報(名前、パスワード)を入力して送信
- JSスクリプトはXMLHttpRequestオブジェクトを使用してcouchdbインスタンスへの接続を開き、送信します...問題!
問題#1 - 資格情報が(新しいユーザーデータベースの検証として送信される)コードに格納されている場合、誰もが "HTMLソースを表示"してデータベースを引き継ぐことができます。
-OR-
問題#2 - 資格情報が供給されず、要求が匿名で送信された場合、新しいユーザーが_usersデータベースに作成され、成功応答メッセージが送信されます。ユーザーがアプリケーション固有の目的(たとえば、データの追加/削除)を行うための新しいデータベースは作成されていません(管理者の資格情報を使用することもできません)。そして、上記のcouchbaseのブログのリンクから、匿名の書き込みを防ぐための匿名の読者と妥当性検査機能に対するロール/名前でデータベースを保護していれば、匿名のユーザーアカウント(たとえば、データベーススペースを登録してapp)は何もできません。匿名ユーザーは明らかなセキュリティ上の理由から、必要な役割を指定することができないからです。つまり、-functional-usersを持つ唯一の方法は、事前にユーザーアカウントと関連付けられたデータベースをadminとして作成してから、これらのユーザー資格情報を渡すことです。プライベートな招待システムのように、はい?
これを繰り返すには、couchdbとcouchdbの認証ハンドラ、デザインドキュメント関数、クライアントサイドのAjaxなどの組み合わせを使用して接続クライアントが登録してパーソナルデータベースを取得する方法はありますか?明らかに)彼らはアクセス権を持ち、相互作用することができますか?
[User Signup in Couchapp/CouchDB through jquery.couch.jsまたはそれ以外]の可能な複製(http://stackoverflow.com/questions/5305543/user-signup-in-couchapp-couchdb-through-jquery-couch -js-or-otherwise) –
私は、私の質問の「バックグラウンドリサーチ」セクションにその質問を掲載しました(そして2つの質問は今リンクされています)。私はこの記事を作成しました。なぜなら、他の質問に関する提案解決策は、couchdb層にもう1つのミニ層を追加することであり、この問題に対する「純粋な」couchdb解決策があるかどうかを知りたいのです。私は上記のリンクに投稿していただろうが、私は別の人の質問をハイジャックしたくなかった。 – jigritsn
この質問は確かに関係しています。私は純粋で安全なcouchdb-onlyソリューションを手に入れたいです – gregm