Sichern Dokument-style-Datenbanken (MongoDB, CouchDB, RavenDB) für Client (Browser) Zugang

StackOverflow https://stackoverflow.com/questions/3091956

Frage

Dokument-Datenbanken, die Unterstützung REST-Stil JSON über HTTP-Zugriff scheint ideal für die Unterstützung von AJAX-reichen Anwendungen, bei denen der Browser direkte Aufrufe an die Datenbank macht, die traditionellen Web-Server unter Umgehung / Anwendungslogik-Komponenten. Ein Beispiel hierfür könnte Benutzereinstellungen werden abzurufen, sobald ein Benutzer authentifiziert wurde. (BBC Homepage könnte ein gutes Beispiel dafür sein, bevor unter der Last abstürzt!)

Das Problem bei diesem Szenario ist die Frage der Sicherheit - wenn ein Benutzer einen Web-Server authentifiziert wird (z.B. Basisformularauthentifizierung), wie wird diese Identität auf das Dokument übertragen DB. Ist die einzige Antwort auf Proxy alle Anforderungen an die DB über den Webserver sowieso - das heißt sichert das Dokument DB, so dass es kein direkter Zugriff von außen

Das scheint am meisten Sinn zu machen, und ist am einfachsten zu implementieren, aber ich habe mich gefragt, ob jemand da draußen eine Erfahrung hatte und / oder Beratung über Dokument dbs mit in einer heterogenen Umgebung?

War es hilfreich?

Lösung

Dies unterscheidet sich wahrscheinlich in jeder Datenbank, die Sie erwähnen. Hier ist, wie es funktioniert in CouchDB.

CouchDB ermöglicht es Ihnen, Benutzer und Rollen zu verwalten.

Sie können die validate_doc_update Funktion in Ihrem Design-Dokumente verwenden, um die Dokumentenerstellung / Aktualisierung zu beschränken. Zum Beispiel können Sie eine Validierung schreiben, das Dokument Update jemand aber seinen Autor verweigert.

Um zu verhindern, die Dokumente aus einer Datenbank lesen können, können Sie die /db_name/_security Dokument und Liste der Benutzer oder Rollen bearbeiten.

Aber ich glaube nicht, dass Sie der Lesezugriff mehr granulare machen kann (das heißt einem Benutzer erlauben, nur die Dokumente zu lesen, die sie erstellt haben).

Um das zu erreichen, müssen Sie hinter einem Proxy und Nutzung Ansichten, die die CouchDB setzen, die Dokumente zu authentifizierten Benutzern zu dienen. Sie können immer noch CouchDB Benutzerverwaltung auf diese Weise nutzen. Der Proxy nur versteckt den direkten Zugriff auf die Datenbank.

Für nähere Informationen, überprüfen Sie die Sicherheits Übersicht über CouchDB Wiki , die Sicherheit Kapitel des Buches Entspannen Sie sich und diese kurze Screencasts .

Andere Tipps

Nun, ich nur Erfahrung mit CouchDB haben, aber ich hoffe, Sie dennoch helfen können.

CouchDB hat einen Validierungsprozess eingebaut, Sie Ihre Validierungsregeln in Javascript schreiben, und haben Zugriff auf die Gruppe, in der der aktuelle Benutzer ist. Es ist alles gehandhabt von CouchDB selbst im Grunde, Sie müssen nicht, wie Sie Login-Informationen erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top