investigación Antecedentes:del lado del cliente Secure autenticación de usuario couchApp/couchdb
User Signup in Couchapp/CouchDB through jquery.couch.js or Otherwise
https://issues.apache.org/jira/browse/COUCHDB-1175 - específicamente "Ari Najarian" 's mensajes
Pregunta:
Para parafrasear la pregunta SO que publiqué anteriormente:
"Básicamente, quiero tener un formulario de registro para registrar una cuenta en couchdb para una couchapp. Esto implicaría la creación de un nuevo usuario en la base de datos de usuarios de couchdb, y la creación de una nueva base de datos, con el nuevo usuario asignado el rol de administrador de la base de datos. Todo lo que requiere credenciales de administración del servidor. "
La respuesta a la pregunta anterior involucraba el uso de un servidor externo separado que estaba conectado a couchdb como administrador para supervisar couchdb y modificar couchdb como se desee en respuesta a ciertos eventos de datos provenientes de un cliente .0 Mi pregunta es, ¿es esa la única forma? ¿No derrota todo el propósito de la pila web de 2 niveles de couchdb? ¿Hay alguna manera de modificar una base de datos de couchdb dentro de una función de validación que comprueba "tipo"? == usuario "documento mientras" internamente "/ por separado inició sesión como administrador quizás?
Me disculpo si hay alguna forma directa de hacerlo y no lo hice. t encuentra la documentación correcta.
extra Aclaración Problema:
- No es la instancia couchdb sentado en una dirección de Internet.
- Esta base de datos de sofá sirve a un cliente aleatorio una página html y un script javascript incrustado que contiene un formulario de registro/inicio de sesión.
- El cliente ingresa información de registro (nombre, contraseña) y envía
- La secuencia de comandos JS utiliza el objeto XMLHttpRequest para abrir una conexión a la instancia de couchdb y envía ... ¡PROBLEMA!
Problema n. ° 1: si las credenciales están almacenadas en el código (para enviarlas como verificación para la nueva base de datos), cualquiera podría "ver la fuente html" y hacerse cargo de la base de datos.
-O-
Problema # 2 - Si las credenciales no son suministrados y la petición se envía de forma anónima, a continuación, un nuevo usuario será creado en la base de datos _users y un mensaje de respuesta de éxito será enviado. Pero no se creó ninguna nueva base de datos para el usuario (y no puede carecer de credenciales de administrador) con las que el usuario puede interactuar para fines específicos de la aplicación (por ejemplo, agregar/eliminar datos). Y, desde el enlace del blog couchbase anterior, si ha asegurado su base de datos con roles/nombres contra lectores anónimos y funciones de validación para evitar escrituras anónimas, entonces una cuenta de usuario anónima (por ejemplo, un cliente que desea registrar el espacio de la base de datos para usar aplicación) no puede hacer nada porque un usuario anónimo no puede, por obvias razones de seguridad, especificar los roles que desea tener.Lo que significa que la única forma de tener usuarios funcionales es crear cuentas de usuario + bases de datos asociadas como administrador de antemano y luego repartir estas credenciales de usuario, por lo que es como un sistema de invitación privado, ¿sí?
Para reiterar, ¿hay alguna manera, usando solo couchdb y una combinación de controladores de autenticación de couchdb, funciones de documentos de diseño, ajax del lado del cliente, etc. para que un cliente se registre y obtenga una base de datos personal (y SOLAMENTE esa base de datos obviamente) tienen acceso y pueden interactuar con?
posible duplicado de [Registro de usuario en Couchapp/CouchDB a través de jquery.couch.js o de lo contrario] (http://stackoverflow.com/questions/5305543/user-signup-in-couchapp-couchdb-through-jquery-couch -js-or-otherwise) –
Tengo esa pregunta en mi sección de "investigación de antecedentes" de mi pregunta (y las 2 preguntas están enlazadas ahora). Creé esta publicación porque las soluciones de sugerencia sobre la otra pregunta implican agregar otra minicapa al nivel de sofá y quiero saber si hay una solución "pura" de sofá para el problema. Me habría publicado en el enlace de arriba, pero no quería secuestrar la pregunta de otra persona. – jigritsn
Esta pregunta es ciertamente relevante. Quiero tener una solución pura Y segura, solo de sofádb – gregm