.NET

Autenticación y autorización con RBAC en .NET

Lectura de 5 minutos

La autenticación y la autorización están enormemente mejoradas en Couchbase Server 5.0. Llevamos un tiempo escribiendo en el blog sobre las nuevas funciones de RBAC en la vista previa para desarrolladores.

Ahora que se ha lanzado la versión Beta de Couchbase Server 5.0, estoy escribiendo una publicación de blog más detallada sobre cómo usar el SDK de .NET de Couchbase junto con estas nuevas características.

Los fragmentos de código completos utilizados en esta publicación de blog son disponible para ti en Github.

Crear un bucket

Como mencioné en las publicaciones anteriores, los días de los *buckets* con contraseñas han quedado atrás. El futuro pertenece a los usuarios: usuarios que tienen permisos específicos para *buckets* específicos.

Empecemos creando un bucket. En la interfaz de usuario de Couchbase, inicie sesión como el Administrador que creó cuando instaló Couchbase. Vaya a “Buckets” y haga clic en “ADD BUCKET” (arriba a la derecha). Verá el cuadro de diálogo “Add Data Bucket”. Tenga en cuenta que ya no hay un campo de “contraseña” (ni siquiera en “Advanced bucket settings”).

Add new bucket - no authentication options anymore

Dale un nombre al depósito y una cantidad de memoria, y haz clic en “Agregar depósito”. Ahora tienes un depósito. Pero, aparte de un Administrador en la interfaz de usuario, nadie puede acceder a este depósito todavía.

Crear un usuario

Para obtener acceso a este bucket, debe crear un usuario. En Couchbase 5.0, los “usuarios” son una función completamente nueva que aporta características más enriquecidas de autenticación y autorización a Couchbase Server.

Mientras sigues conectado como administrador, ve a “Seguridad” para ver una lista de usuarios. Haz clic en “AGREGAR USUARIO” (arriba a la derecha).

Adding a new user for authentication and authorization

Crea un usuario con el nombre y la contraseña que prefieras. Puedes elegir qué roles tiene el usuario y para qué buckets (cuando corresponda). Asignemos a este usuario los roles de Escritor de datos y Lector de datos para el bucket que se acaba de crear (por ejemplo, “mybucket”), pero NINGÚN rol de consulta.

Adding authorization for data read and data write

Una vez que se agrega al usuario, puede pasar el cursor sobre los roles para obtener una descripción de lo que significa el rol.

Authorization tool tip

Autenticación y autorización con el SDK de .NET para Couchbase

Ahora que tenemos un depósito y un usuario, veamos cómo usarlos con el SDK de .NET.

Comience por crear un Clúster objeto.

Tienes un clúster, pero tu programa aún no ha sido autenticado. Usa un AutenticadorDeContraseñas objeto para especificar las credenciales. Luego, use ese objeto con el Autenticar método. En el ejemplo siguiente, estoy usando credenciales incorrectas.

Ahora, si intento realizar una operación como OpenBucket en el clúster, se arroja una excepción.

Error in authentication

Ahora, intentémoslo de nuevo usando las credenciales correctas. La autenticación funcionará. Pero hablemos de la autorización a continuación.

Recuerda que solo le di a este usuario los roles de Escritor de datos y Lector de datos (para mi bucket). Entonces, si me autentico e inserto un documento ahora, funciona.

Console output when authentication and authorization are valid

Pero si intentara, por ejemplo, ejecutar un consulta N1QL (SQL para JSON), entonces fallaría. Esto se debe a que ese usuario no tiene autorización para ejecutar consultas.

Solo estoy haciendo algo sencillo CONTAR(1) consulta de agregación. Como ese usuario no está autorizado, esto es lo que se muestra:

No authorization for running a query

Una cosa más

Si te preocupa el efecto que esto tendrá al actualizar de Couchbase Server 4.x a Couchbase Server 5.0, aquí tienes un consejo. Si creas un usuario con el mismo nombre que el bucket (por ejemplo, un bucket llamado “foo” y un usuario llamado “foo”), las API de .NET de Couchbase más antiguas que aún esperan una contraseña de bucket funcionarán como antes. Simplemente asigna a ese usuario el rol de “Administrador del clúster” por ahora. Esta es una buena solución temporal hasta que puedas reestructurar tu sistema para utilizar un enfoque metódico de roles.

Resumen

¡Ya está disponible la versión beta de Couchbase Server 5.0! Estas funciones de autenticación basada en roles (RBAC) convierten a Couchbase en un líder en seguridad de bases de datos de documentos, y personalmente me complace mucho que Couchbase esté avanzando en esta dirección. La seguridad es importante, pero con demasiada frecuencia los desarrolladores la pasan por alto.

Si tiene alguna pregunta, por favor pregunta lo que quieras en los foros de Couchbase, deja un comentario abajo, o escríbeme en Twitter @mgroves.

Compartir este artículo

Autor

Matthew D. Groves es un tipo al que le encanta programar. No importa si se trata de C#, jQuery o PHP: envía solicitudes de incorporación de cambios para cualquier cosa. Se ha dedicado profesionalmente a la programación desde que escribió una aplicación de punto de venta en QuickBASIC para la pizzería de sus papás allá por los años 90. Actualmente trabaja como gerente sénior de mercadotecnia de productos en Couchbase. Dedica su tiempo libre a su familia, a ver a los Reds y a participar en la comunidad de desarrolladores. Es autor de *AOP in .NET* y *Pro Microservices in .NET*, colaborador de Pluralsight y MVP de Microsoft.

Deja un comentario

¿Listo para comenzar con Couchbase Capella?

Comenzar a construir

Visita nuestro portal para desarrolladores para explorar NoSQL, consultar recursos y comenzar con los tutoriales.

Usa Capella gratis

Empieza a usar Couchbase en tan solo unos clics. Capella DBaaS es la forma más fácil y rápida de comenzar.

Ponte en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítenos ayudarte.