Del anterior Café en Couchbase Sync Gateway, exploramos cómo autenticar a los usuarios y también cómo utilizar los canales en Sync Gateway. Sync Gateway proporciona la capa de orquestación de datos para Couchbase Mobile y anteriormente vimos cómo el enrutamiento de datos puede realizarse mediante validación de los tipos de documentos desde la función de sincronización.
En el siguiente vídeo, nos acompañan de nuevo Chris Anderson que debatiremos juntos sobre Sync Gateway y profundizaremos en cómo asegurar tus aplicaciones móviles con el uso de Channels. Seguiremos utilizando el Stackoverflow y las etiquetas que hemos importado.
El administrador puede especificar cualquier canal que quiera ver desde el puerto de administración, que está protegido por un cortafuegos. El puerto público es donde los usuarios finales se conectan a través de los privilegios que se establecen a partir de la clave "usuarios". Esto se define como:
1 |
"admin_canales" : ["android"] |
donde el usuario puede ver el canal 'android'; esto es las preguntas de Stackoverflow que contienen todas las etiquetas android estarán disponibles para el usuario si la etiqueta específica está contenida en la clave 'admin_channels'. Si un usuario en particular accede a un canal para el que no ha sido autorizado, el usuario final verá un conjunto vacío. Esta es la configuración del canal en el lado del servidor donde los usuarios/clientes no necesitan especificar el canal en el que están interesados.
API de administrador
Si queremos que nuestros usuarios tengan diferentes accesos a los canales aparte de los establecidos explícitamente en el lado del servidor, una forma de establecerlo es utilizar el método API de administrador. La API REST de Admin se ejecuta en el puerto 4985 y podemos actualizar el registro de usuario con un JSON como :
1 2 3 4 |
{ "desactivado" : falso, "admin_canales" : ["html"] } |
y a través de la API REST de Admin, podemos dar acceso al usuario GUEST a un conjunto diferente de canales ejecutando el comando:
1 |
rizo -X PUT -H contenido-tipo:aplicación/json -d '{"desactivado": falso, "admin_canales":["html"]}' http://localhost:4985/db/_user/GUEST |
El envío de la solicitud anterior a Sync Gateway permitirá al usuario GUEST acceder también al canal 'html'. Hay un punto final de la API que es GET/{db}/_cambios que nos permitiría ver todas las peticiones de cambio de documentos realizadas a la base de datos desde el puerto 4984. Desde la perspectiva de un administrador, esto le permite proporcionar permisos a lo que sus usuarios se les permite ver y por lo tanto controlar el acceso READ a sus datos.
Si ahora proporcionamos los nombres de las etiquetas 'html' y 'android' para los canales en el comando de abajo:
1 |
rizo -X PUT -H contenido-tipo:aplicación/json -d '{"desactivado": falso, "admin_canales":["html","android"]}' http://localhost:4985/db/_user/GUEST |
el usuario GUEST tendrá ahora acceso a ambos canales y el conjunto de datos se ampliará en consecuencia con los documentos 'android' y 'html' en el endpoint '_changes'. Esto controla qué canales puede ver un usuario y controla el acceso de LECTURA a la base de datos. El modelo de seguridad de los canales puede controlarse con la API REST de administración y, a través de los requisitos del usuario, usted, como desarrollador, puede incorporar un control detallado de la base de datos.
Pasarela de sincronización
En la serie Coffee on Couchbase Sync Gateway, hemos hablado de Canales y cómo puede proteger o restringir las proporciones de su base de datos a través de varias funciones habilitadas en la función de sincronización. Exploraremos Pasarela de sincronización y profundizaremos en la encriptación de datos en nuestra próxima serie con ForestDB como nuestro nuevo motor de almacenamiento en Couchbase Lite.
No dejes de conectarte con nosotros en nuestro Foros para desarrolladores de móviles para cualquier pregunta o en Stackoverflow.