{"id":2997,"date":"2017-03-17T11:08:51","date_gmt":"2017-03-17T18:08:51","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2997"},"modified":"2025-06-13T19:29:14","modified_gmt":"2025-06-14T02:29:14","slug":"authentication-authorization-rbac","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac\/","title":{"rendered":"Autenticaci\u00f3n y autorizaci\u00f3n con RBAC"},"content":{"rendered":"<div class=\"paragraph\">\n<p>En la versi\u00f3n para desarrolladores de marzo, puedes empezar a ver algunos cambios importantes en la autenticaci\u00f3n y autorizaci\u00f3n dentro del Control de Acceso Basado en Roles (RBAC) que llega a Couchbase Server. Estos cambios son un trabajo en progreso: la versi\u00f3n para desarrolladores es esencialmente una versi\u00f3n nocturna que se libera al p\u00fablico. Pero hay algunas cosas buenas en RBAC por las que vale la pena entusiasmarse.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Vaya a <a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/\">descargue la versi\u00f3n para desarrolladores 5.0.0 de marzo de Couchbase Server<\/a> hoy. Aseg\u00farate de hacer clic en la pesta\u00f1a \"Desarrollador\" para obtener la versi\u00f3n para desarrolladores (DB) y comprobarla. A\u00fan tienes tiempo de hacernos llegar tus comentarios antes del lanzamiento oficial.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><em>Ten en cuenta que estoy escribiendo esta entrada del blog en las primeras versiones, y algunas cosas pueden cambiar en menor medida en el momento de obtener la versi\u00f3n, y algunas cosas todav\u00eda pueden ser buggy.<\/em><\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_authentication_and_authorization\">Autenticaci\u00f3n y autorizaci\u00f3n<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>S\u00f3lo un breve recordatorio de la diferencia entre autenticaci\u00f3n y autorizaci\u00f3n:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><strong>Autenticaci\u00f3n<\/strong> es el proceso de identificar que un usuario es quien dice ser.<\/li>\n<li><strong>Autorizaci\u00f3n<\/strong> es el proceso de asegurarse de que el usuario tiene permiso para hacer lo que est\u00e1 intentando hacer.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Si has usado Couchbase antes, estar\u00e1s familiarizado con el acceso a lo que a veces llamamos \"Admin Web Console\".<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/05901-Couchbase-Web-Console.png\" alt=\"Couchbase authentication screen\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Sin embargo, la Consola Web no es s\u00f3lo para administradores, sino tambi\u00e9n para desarrolladores. Pero hasta ahora, no ten\u00edas mucho control incorporado en Couchbase sobre qui\u00e9n puede iniciar sesi\u00f3n y (lo que es m\u00e1s importante) qu\u00e9 se les permite hacer.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>As\u00ed que me gustar\u00eda presentarte la nueva funci\u00f3n de usuario de primera clase de Couchbase.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_users\">Usuarios<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Todav\u00eda hay un usuario administrador completo. Este es el usuario que creas cuando instalas Couchbase por primera vez. Este es el usuario que no tiene restricciones, y puede hacer cualquier cosa, incluyendo crear nuevos usuarios. As\u00ed, por ejemplo, un administrador completo puede ver el enlace \"Seguridad\" en la navegaci\u00f3n, mientras que otros usuarios no pueden.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/05902-Security-Link-Web-Console.gif\" alt=\"Security link to manage authentication and authorization\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Ahora, una vez en esta p\u00e1gina de seguridad, puede a\u00f1adir, editar y eliminar usuarios.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A <strong>usuario<\/strong> puede identificar a una persona, pero tambi\u00e9n puede identificar alg\u00fan servicio o proceso. Por ejemplo, si est\u00e1 escribiendo una aplicaci\u00f3n ASP.NET, es posible que desee crear un usuario con un conjunto limitado de permisos denominado \"servicio web\". Por lo tanto, las credenciales para ese \"usuario\" no ser\u00edan para una persona, sino para una aplicaci\u00f3n ASP.NET.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A continuaci\u00f3n, intenta a\u00f1adir un nuevo usuario Couchbase haciendo clic en \"+ A\u00f1adir usuario\". Voy a crear un usuario llamado \"fts_admin\", con un nombre de \"Full Text Search Admin\", una contrase\u00f1a y un \u00fanico rol: FTS Admin del bucket travel-sample (FTS = Full Text Search).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_adding_a_new_user\">A\u00f1adir un nuevo usuario<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>He aqu\u00ed una animaci\u00f3n de la adici\u00f3n de ese usuario:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/05903-Add-New-User.gif\" alt=\"Add a new user with Couchbase authentication\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Algunas notas sobre la animaci\u00f3n anterior:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>He seleccionado \"Couchbase\" en lugar de \"External\". Externa est\u00e1 pensada para la integraci\u00f3n LDAP. Tenga en cuenta que \"Couchbase\" (autenticaci\u00f3n interna) probablemente se convertir\u00e1 en el valor predeterminado en futuras versiones.<\/li>\n<li>FTS Admin da permiso al usuario para hacer de todo con las B\u00fasquedas de Texto Completo: crearlas, modificarlas, borrarlas y ejecutarlas.<\/li>\n<li>He concedido FTS Admin s\u00f3lo para el cubo de muestras de viajes. Si seleccionara \"todos\", conceder\u00eda permiso a todos los cubos, incluso a los creados en el futuro.<\/li>\n<li>Los usuarios con el rol de Buscador FTS s\u00f3lo tienen acceso a ejecutar b\u00fasquedas, no a modificarlas o crearlas.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>M\u00e1s adelante hablaremos de la diferencia entre FTS Admin y FTS Searcher.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_logging_in_as_a_new_user\">Iniciar sesi\u00f3n como nuevo usuario<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Ahora que este usuario est\u00e1 creado, puedo iniciar sesi\u00f3n como fts_admin. La autenticaci\u00f3n de este usuario se maneja dentro de Couchbase.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/05904-Login-as-new-user.gif\" alt=\"Login with Couchbase authentication\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>En primer lugar, en la animaci\u00f3n anterior, observe que el usuario fts_admin tiene un conjunto de opciones mucho m\u00e1s limitado en comparaci\u00f3n con el usuario admin completo.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A continuaci\u00f3n, cabe se\u00f1alar que los usuarios pueden restablecer su contrase\u00f1a:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/05905-Reset-password.png\" alt=\"Reset password\" \/><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_creating_an_fts_index\">Creaci\u00f3n de un \u00edndice FTS<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Dado que ya he creado un usuario fts_admin con la directiva <strong>FTS Admin<\/strong> crear\u00e9 otro usuario llamado fts_searcher que s\u00f3lo tendr\u00e1 el rol <strong>Buscador FTS<\/strong> papel para el cubo de muestras de viaje.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/05906-List-of-users.png\" alt=\"List of users\" \/><\/span><\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_using_the_rest_api_for_fts\">Uso de la API REST para FTS<\/h3>\n<div class=\"paragraph\">\n<p>Voy a utilizar la API REST para demostrar que estos usuarios est\u00e1n limitados por los roles que les he dado. <em>Si necesita un repaso de la API REST, puede consultar la p\u00e1gina <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/rest-api\/rest-fts.html\">documentaci\u00f3n de la API de b\u00fasqueda de texto completo<\/a>. Tambi\u00e9n tenga en cuenta que estoy usando la API REST porque hay algunos errores en la interfaz de usuario como estoy escribiendo esto.<\/em><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Empecemos por crear un nuevo \u00edndice de b\u00fasqueda de texto completo (FTS). Lo har\u00e9 a trav\u00e9s de <a href=\"https:\/\/www.getpostman.com\/\">Cartero<\/a>pero puede utilizar <a href=\"https:\/\/curl.haxx.se\/\">rizo<\/a> o <a href=\"https:\/\/www.telerik.com\/fiddler\">Violinista<\/a> o la herramienta REST que prefiera.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_create_an_fts_index\">Crear un \u00edndice FTS<\/h3>\n<div class=\"paragraph\">\n<p>Para crear un \u00edndice con la API REST, tengo que hacer una solicitud PUT al archivo <code>\/api\/index\/<\/code> punto final.<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>En primer lugar, crear\u00e9 un \u00edndice para el tipo 'hotel' en el bucket travel-sample, as\u00ed que har\u00e9 un PUT a <code>\/api\/index\/hoteles<\/code><\/li>\n<li>Adem\u00e1s, se pueden poner credenciales en la URL para utilizar la autenticaci\u00f3n b\u00e1sica<\/li>\n<li>Adem\u00e1s, los puntos finales REST est\u00e1n disponibles en el puerto 8094<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Por \u00faltimo, la URL para la solicitud PUT deber\u00eda ser algo parecido a esto:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code><a class=\"bare\" href=\"https:\/\/fts_searcher:password@192.168.1.10:8094\/api\/index\/hotels\">https:\/\/fts_searcher:password@192.168.1.10:8094\/api\/index\/hotels<\/a><\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>El cuerpo del PUT es un gran objeto JSON. A continuaci\u00f3n se muestra parte de \u00e9l. Puede encontrar el <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/blob\/master\/Groves\/059SpockRBAC\/src\/newsearchindex.json\">versi\u00f3n completa en GitHub<\/a> para que lo pruebes por ti mismo.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\">{\r\n  \"type\": \"fulltext-index\",\r\n  \"name\": \"hotels\",\r\n  \"sourceType\": \"couchbase\",\r\n  \"sourceName\": \"travel-sample\",\r\n\r\n\/\/ ... snip ...\r\n\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Normalmente, usted puede crear esto a trav\u00e9s de la interfaz de usuario en lugar de tener que crear JSON a mano. No voy a entrar en FTS en mucho detalle en este post, porque mi objetivo es demostrar las nuevas caracter\u00edsticas de autenticaci\u00f3n y autorizaci\u00f3n, no FTS en s\u00ed.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_trying_to_create_an_index_without_authorization\">Intento de crear un \u00edndice sin autorizaci\u00f3n<\/h3>\n<div class=\"paragraph\">\n<p>F\u00edjate que estoy usando fts_searcher como usuario. S\u00e9 que fts_searcher no deber\u00eda tener permiso para crear \u00edndices, as\u00ed que esperar\u00eda un 403. Y eso es justo lo que obtengo. Y eso es justo lo que obtengo.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\">{\r\n  \"message\": \"Forbidden. User needs one of the following permissions\",\r\n  \"permissions\": [\r\n    \"cluster.bucket[travel-sample].fts!write\"\r\n  ]\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>As\u00ed que, aunque la autenticaci\u00f3n funcion\u00f3, ese usuario no tiene la autorizaci\u00f3n necesaria.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_creating_an_index_with_authorization\">Creaci\u00f3n de un \u00edndice con autorizaci\u00f3n<\/h3>\n<div class=\"paragraph\">\n<p>Lo intentar\u00e9 de nuevo con fts_admin:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code><a class=\"bare\" href=\"https:\/\/fts_admin:password@192.168.1.10:8094\/api\/index\/hotels\">https:\/\/fts_admin:password@192.168.1.10:8094\/api\/index\/hotels<\/a><\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Y suponiendo que no exista ya un \u00edndice llamado 'hoteles', obtendr\u00e1s un 200, y esto en el cuerpo de la respuesta:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\">{\r\n  \"status\": \"ok\"\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_using_the_fts_index\">Utilizaci\u00f3n del \u00edndice FTS<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>A continuaci\u00f3n, utilicemos la API REST para buscar en el \u00edndice la palabra \"breakfast\".<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>En primer lugar, haga un POST al <code>\/api\/index\/hoteles\/consulta<\/code> endpoint, de nuevo con las credenciales y el n\u00famero de puerto adecuados.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code><a class=\"bare\" href=\"https:\/\/fts_admin:password@192.168.1.10:8094\/api\/index\/hotels\/query\">https:\/\/fts_admin:password@192.168.1.10:8094\/api\/index\/hotels\/query<\/a><\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>o<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code><a class=\"bare\" href=\"https:\/\/fts_searcher:password@192.168.1.10:8094\/api\/index\/hotels\/query\">https:\/\/fts_searcher:password@192.168.1.10:8094\/api\/index\/hotels\/query<\/a><\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Ambos usuarios deber\u00edan poder ejecutar una b\u00fasqueda utilizando ese \u00edndice.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A continuaci\u00f3n, en el cuerpo del POST debe haber un simple objeto JSON. De nuevo, normalmente no tienes que crear esto a mano - tu SDK de elecci\u00f3n o la interfaz de usuario de la consola web pueden hacerlo por ti.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\">{\r\n  \"explain\": true,\r\n  \"fields\": [\r\n    \"*\"\r\n  ],\r\n  \"highlight\": {},\r\n  \"query\": {\r\n    \"query\": \"breakfast\"\r\n  }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Por \u00faltimo, el resultado de esta solicitud de b\u00fasqueda ser\u00e1 una respuesta JSON de gran tama\u00f1o. Mira dentro de los \"hits\" <a href=\"https:\/\/www.couchbase.com\/blog\/es\/subdoc-explained\/\">subdocumento<\/a> para \"fragmentos\" para verificar que la b\u00fasqueda funcionaba. He aqu\u00ed un fragmento de mi b\u00fasqueda de \"breakfast\". De nuevo, el <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/blob\/master\/Groves\/059SpockRBAC\/src\/searchresults.json\">el resultado completo est\u00e1 en Github<\/a>.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\">\/\/ ... snip ...\r\n\r\n        \"reviews.content\": [\r\n          \"\u00e2\u20ac\u00a6 to watch TV. &lt;mark&gt;Breakfast&lt;\/mark&gt; was served every morning along with a copy of the Times-Picayune. I took my &lt;mark&gt;breakfast&lt;\/mark&gt; downstairs in the patio, the coffee was very good. The continental &lt;mark&gt;breakfast&lt;\/mark&gt; is nothing to\u00e2\u20ac\u00a6\"\r\n        ]\r\n      },\r\n\r\n\/\/ ... snip ...<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_this_is_a_preview_expect_some_bugs\">Esto es un avance, \u00a1espera algunos fallos!<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Hay algunos errores y algunas funciones incompletas.<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>He mostrado aqu\u00ed los roles FTS a prop\u00f3sito. Esto se debe a que los otros roles a\u00fan no est\u00e1n completamente formados. Por favor, pru\u00e9balos y dinos lo que piensas, pero recuerda que no est\u00e1n en su forma final. FTS es el que est\u00e1 m\u00e1s cerca de estar listo.<\/li>\n<li>He visto algunos problemas cuando el inicio de sesi\u00f3n como usuario no administrador hace que la consola web se comporte mal. Debido a esto, mostr\u00e9 el ejemplo REST arriba en lugar de confiar en la interfaz de usuario.<\/li>\n<li>Por \u00faltimo, es posible que haya otros errores que a\u00fan no conozcamos. H\u00e1znoslo saber. Puedes presentar un problema en nuestro <a href=\"https:\/\/issues.couchbase.com\">Sistema JIRA en issues.couchbase.com<\/a> o env\u00ede una pregunta a <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">Foros de Couchbase<\/a>. O ponte en contacto conmigo con una descripci\u00f3n del problema. Estar\u00e9 encantado de ayudarte o de enviar el error por ti (mis gestores de Couchbase me env\u00edan un pastel cuando env\u00edo un buen error).<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Si tiene alguna pregunta, la mejor forma de ponerse en contacto conmigo es <a href=\"https:\/\/twitter.com\/mgroves\">Twitter @mgroves<\/a> o env\u00edeme un correo electr\u00f3nico <a href=\"mailto:matthew.groves@couchbase.com\">matthew.groves@couchbase.com<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>In March\u2019s developer build, you can start to see some major changes to authentication and authorization within Role Based Access Control (RBAC) coming to Couchbase Server. These changes are a work in progress: the developer build is essentially a nightly [&hellip;]<\/p>","protected":false},"author":71,"featured_media":10349,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1813],"tags":[1455,1456,1903],"ppma_author":[8937],"class_list":["post-2997","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-security","tag-authentication","tag-authorization","tag-rbac"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Authentication and Authorization with RBAC - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"In March&#039;s developer build, you can start to see some major changes to authentication and authorization within RBAC coming to Couchbase Server.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Authentication and Authorization with RBAC\" \/>\n<meta property=\"og:description\" content=\"In March&#039;s developer build, you can start to see some major changes to authentication and authorization within RBAC coming to Couchbase Server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-17T18:08:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:29:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1575\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Authentication and Authorization with RBAC\",\"datePublished\":\"2017-03-17T18:08:51+00:00\",\"dateModified\":\"2025-06-14T02:29:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/\"},\"wordCount\":1303,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg\",\"keywords\":[\"authentication\",\"authorization\",\"RBAC\"],\"articleSection\":[\"Couchbase Server\",\"Security\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/\",\"name\":\"Authentication and Authorization with RBAC - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg\",\"datePublished\":\"2017-03-17T18:08:51+00:00\",\"dateModified\":\"2025-06-14T02:29:14+00:00\",\"description\":\"In March's developer build, you can start to see some major changes to authentication and authorization within RBAC coming to Couchbase Server.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg\",\"width\":1575,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication and Authorization with RBAC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Authentication and Authorization with RBAC - The Couchbase Blog","description":"In March's developer build, you can start to see some major changes to authentication and authorization within RBAC coming to Couchbase Server.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac\/","og_locale":"es_MX","og_type":"article","og_title":"Authentication and Authorization with RBAC","og_description":"In March's developer build, you can start to see some major changes to authentication and authorization within RBAC coming to Couchbase Server.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-03-17T18:08:51+00:00","article_modified_time":"2025-06-14T02:29:14+00:00","og_image":[{"width":1575,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Authentication and Authorization with RBAC","datePublished":"2017-03-17T18:08:51+00:00","dateModified":"2025-06-14T02:29:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/"},"wordCount":1303,"commentCount":5,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg","keywords":["authentication","authorization","RBAC"],"articleSection":["Couchbase Server","Security"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/","url":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/","name":"Authentication and Authorization with RBAC - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg","datePublished":"2017-03-17T18:08:51+00:00","dateModified":"2025-06-14T02:29:14+00:00","description":"In March's developer build, you can start to see some major changes to authentication and authorization within RBAC coming to Couchbase Server.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/11\/blogbanner-2.jpg","width":1575,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Authentication and Authorization with RBAC"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"A Matthew D. Groves le encanta programar. No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa. Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa. Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores. Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"A Matthew D. Groves le encanta programar.  No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa.  Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa.  Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores.  Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2997","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2997"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2997\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/10349"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2997"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}