{"id":3655,"date":"2017-05-31T13:31:31","date_gmt":"2017-05-31T20:31:31","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3655"},"modified":"2025-06-13T19:29:01","modified_gmt":"2025-06-14T02:29:01","slug":"authentication-authorization-rbac-net","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac-net\/","title":{"rendered":"Autenticaci\u00f3n y autorizaci\u00f3n con RBAC en .NET"},"content":{"rendered":"<div class=\"paragraph\">\n<p>La autenticaci\u00f3n y autorizaci\u00f3n han mejorado enormemente en Couchbase Server 5.0. Llevamos tiempo publicando en el blog las nuevas funciones RBAC de la versi\u00f3n preliminar para desarrolladores.<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac\/\">Autenticaci\u00f3n y autorizaci\u00f3n con RBAC<\/a> - introducci\u00f3n \/ parte 1<\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac-part-2\/\">Autenticaci\u00f3n y autorizaci\u00f3n con RBAC (Parte 2)<\/a> - gesti\u00f3n de usuarios<\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/new-sdk-authentication\/\">M\u00e9todos de autenticaci\u00f3n SDK mejorados - Couchbase 5.0<\/a> - una introducci\u00f3n a Python, Java, PHP y .NET<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Ahora que Couchbase Server 5.0 Beta ha sido lanzado, estoy escribiendo una entrada en el blog m\u00e1s en profundidad sobre c\u00f3mo utilizar el SDK .NET de Couchbase junto con estas nuevas caracter\u00edsticas.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><em>Los ejemplos de c\u00f3digo completos utilizados en esta entrada del blog son los siguientes <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/067RBACandSDK\/src\/rbacsdk\">disponible en Github<\/a>.<\/em><\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_create_a_bucket\">Crear un cubo<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Como he mencionado en los posts anteriores, los d\u00edas de los buckets con contrase\u00f1as han pasado. El futuro pertenece a los usuarios, usuarios que tienen permisos espec\u00edficos para cubos espec\u00edficos.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Empecemos por crear un bucket. En la interfaz de usuario de Couchbase, inicia sesi\u00f3n como el administrador que creaste al instalar Couchbase. Ve a \"Buckets\" y haz clic en \"ADD BUCKET\" (arriba a la derecha). Ver\u00e1s el cuadro de di\u00e1logo \"A\u00f1adir cubo de datos\". Observa que ya no existe el campo \"contrase\u00f1a\" (ni siquiera en \"Configuraci\u00f3n avanzada de cubos\").<\/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\/05\/06701-add-new-bucket.png\" alt=\"Add new bucket - no authentication options anymore\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Dale al cubo un nombre y una cantidad de memoria, y haz clic en \"A\u00f1adir cubo\". Ya tiene un cubo. Pero, aparte de un administrador en la interfaz de usuario, nadie puede acceder a este cubo todav\u00eda.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_create_a_user\">Crear un usuario<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Para tener acceso a este bucket, debes crear un usuario. En Couchbase 5.0, los \"usuarios\" son una caracter\u00edstica completamente nueva, trayendo caracter\u00edsticas m\u00e1s ricas de autenticaci\u00f3n y autorizaci\u00f3n a Couchbase Server.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Mientras sigue conectado como administrador, vaya a \"Seguridad\" para ver una lista de usuarios. Haz clic en \"A\u00d1ADIR USUARIO\" (arriba a la derecha).<\/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\/05\/06702-add-new-user-for-authentication.png\" alt=\"Adding a new user for authentication and authorization\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Cree un usuario con el nombre y la contrase\u00f1a que desee. Puede elegir qu\u00e9 funciones tiene el usuario y para qu\u00e9 cubos (si procede). Vamos a dar a este usuario los roles de Escritor de Datos y Lector de Datos, para el cubo que se acaba de crear (por ejemplo, \"mi cubo\"), pero NO cualquier rol de Consulta.<\/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\/05\/06703-add-data-roles.png\" alt=\"Adding authorization for data read and data write\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Una vez a\u00f1adido el usuario, puede pasar el rat\u00f3n por encima de los roles para obtener una descripci\u00f3n de lo que significa el rol.<\/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\/05\/06704-tool-tip-authorization.gif\" alt=\"Authorization tool tip\" \/><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_authentication_and_authorization_with_the_couchbase_net_sdk\">Autenticaci\u00f3n y autorizaci\u00f3n con el SDK .NET de Couchbase<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Ahora que tenemos un cubo y un usuario, veamos c\u00f3mo utilizarlos con el SDK .NET.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Empiece por crear un <code>Grupo<\/code> objeto.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">var cluster = new Cluster(new ClientConfiguration\r\n{\r\n    Servers = new List&lt;Uri&gt; { new Uri(\"https:\/\/localhost:8091\") }\r\n});<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Tiene un cl\u00faster, pero su programa a\u00fan no se ha autenticado. Utilice un <code>PasswordAuthenticator<\/code> para especificar las credenciales. A continuaci\u00f3n, utilice ese objeto con la funci\u00f3n <code>Autentificar<\/code> m\u00e9todo. En este ejemplo, estoy usando credenciales incorrectas.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">var authenticator = new PasswordAuthenticator(\"myuser\", \"wrongpassword\");\r\ncluster.Authenticate(authenticator);<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Ahora, si intento realizar una operaci\u00f3n como <code>OpenBucket<\/code> en el cluster, se lanza una excepci\u00f3n.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">try\r\n{\r\n    var bucket = cluster.OpenBucket(\"mybucket\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n    Console.WriteLine(\"Error getting bucket.\");\r\n    Console.WriteLine(ex.Message);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/05\/06705-authentication-error.png\" alt=\"Error in authentication\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Ahora, intent\u00e9moslo de nuevo usando las credenciales correctas. La autenticaci\u00f3n funcionar\u00e1. Pero hablemos ahora de la autorizaci\u00f3n.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Recuerda que s\u00f3lo le di a este usuario los roles de Escritor de Datos y Lector de Datos (para mybucket). Por lo tanto, si me autentifico e inserto un documento ahora, funciona.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">var cluster = new Cluster(new ClientConfiguration\r\n{\r\n    Servers = new List&lt;Uri&gt; { new Uri(\"https:\/\/localhost:8091\") }\r\n});\r\nvar authenticator = new PasswordAuthenticator(\"myuser\", \"password\");\r\ncluster.Authenticate(authenticator);\r\nvar bucket = cluster.OpenBucket(\"mybucket\");\r\n\r\n\/\/ insert a document, this should be allowed\r\nvar result = bucket.Insert(Guid.NewGuid().ToString(), new {foo = \"bar\"});\r\nConsole.WriteLine(\"Insert was successful: \" + result.Success);<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/05\/06706-console-output-authorization.png\" alt=\"Console output when authentication and authorization are valid\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Pero si intentara, por ejemplo, ejecutar un <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/n1ql\/\">Consulta N1QL (SQL para JSON)<\/a>fallar\u00eda. Esto se debe a que ese usuario no est\u00e1 autorizado a ejecutar consultas.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">var queryResult = bucket.Query&lt;int&gt;(\"SELECT COUNT(1) FROM `\" + bucket.Name + \"`\");\r\nConsole.WriteLine(\"Query was successful: \" + queryResult.Success);\r\nqueryResult.Errors.ForEach(e =&gt; Console.WriteLine(\"Error: \" + e.Message));<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>S\u00f3lo estoy haciendo un simple <code>CONTAR(1)<\/code> consulta de agregaci\u00f3n. Como ese usuario no est\u00e1 autorizado, esto es lo que se muestra:<\/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\/05\/06707-authorization-query.png\" alt=\"No authorization for running a query\" \/><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_one_more_thing\">Una cosa m\u00e1s<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Si te preocupa el efecto que esto tendr\u00e1 al actualizar de Couchbase Server 4.x a Couchbase Server 5.0, aqu\u00ed 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\"), entonces las antiguas APIs .NET de Couchbase que todav\u00eda esperan una contrase\u00f1a de bucket funcionar\u00e1n como antes. S\u00f3lo dale a ese usuario un rol de \"Administrador de Cluster\" por ahora. Esta es una buena soluci\u00f3n temporal hasta que puedas redise\u00f1ar tu sistema para usar una aproximaci\u00f3n regimentada a los roles.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_summary\">Resumen<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u00a1Couchbase Server 5.0 ya est\u00e1 en beta! Estas caracter\u00edsticas de autenticaci\u00f3n basada en roles (RBAC) hacen de Couchbase un l\u00edder en seguridad de bases de datos de documentos, y personalmente estoy muy contento de que Couchbase vaya en esta direcci\u00f3n. La seguridad es importante, pero a menudo los desarrolladores la pasan por alto.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Si tiene alguna pregunta, por favor <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">pregunte en los foros de Couchbase<\/a>deje un comentario a continuaci\u00f3n, o <a href=\"https:\/\/twitter.com\/mgroves\">ping me on Twitter @mgroves<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Authentication and authorization are vastly improved in Couchbase Server 5.0. We\u2019ve been blogging about the new RBAC features in the developer preview for a while. Authentication and Authorization with RBAC &#8211; introduction \/ part 1 Authentication and Authorization with RBAC [&hellip;]<\/p>","protected":false},"author":71,"featured_media":3004,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1816,1813],"tags":[1455,1456,1903],"ppma_author":[8937],"class_list":["post-3655","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-couchbase-server","category-security","tag-authentication","tag-authorization","tag-rbac"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Authentication and Authorization with RBAC in .NET - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Examples of using the Couchbase .NET SDK with the new authentication and authorization features of Couchbase Server 5.0\" \/>\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-net\/\" \/>\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 in .NET\" \/>\n<meta property=\"og:description\" content=\"Examples of using the Couchbase .NET SDK with the new authentication and authorization features of Couchbase Server 5.0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac-net\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-31T20:31:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:29:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1125\" \/>\n\t<meta property=\"og:image:height\" content=\"750\" \/>\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=\"5 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-net\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Authentication and Authorization with RBAC in .NET\",\"datePublished\":\"2017-05-31T20:31:31+00:00\",\"dateModified\":\"2025-06-14T02:29:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/\"},\"wordCount\":694,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg\",\"keywords\":[\"authentication\",\"authorization\",\"RBAC\"],\"articleSection\":[\".NET\",\"Couchbase Server\",\"Security\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/\",\"name\":\"Authentication and Authorization with RBAC in .NET - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg\",\"datePublished\":\"2017-05-31T20:31:31+00:00\",\"dateModified\":\"2025-06-14T02:29:01+00:00\",\"description\":\"Examples of using the Couchbase .NET SDK with the new authentication and authorization features of Couchbase Server 5.0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg\",\"width\":1125,\"height\":750,\"caption\":\"NoSQL has built-in security with Couchbase\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication and Authorization with RBAC in .NET\"}]},{\"@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 in .NET - The Couchbase Blog","description":"Ejemplos de uso del SDK .NET de Couchbase con las nuevas funciones de autenticaci\u00f3n y autorizaci\u00f3n de Couchbase Server 5.0","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-net\/","og_locale":"es_MX","og_type":"article","og_title":"Authentication and Authorization with RBAC in .NET","og_description":"Examples of using the Couchbase .NET SDK with the new authentication and authorization features of Couchbase Server 5.0","og_url":"https:\/\/www.couchbase.com\/blog\/es\/authentication-authorization-rbac-net\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-05-31T20:31:31+00:00","article_modified_time":"2025-06-14T02:29:01+00:00","og_image":[{"width":1125,"height":750,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Authentication and Authorization with RBAC in .NET","datePublished":"2017-05-31T20:31:31+00:00","dateModified":"2025-06-14T02:29:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/"},"wordCount":694,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg","keywords":["authentication","authorization","RBAC"],"articleSection":[".NET","Couchbase Server","Security"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/","url":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/","name":"Authentication and Authorization with RBAC in .NET - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg","datePublished":"2017-05-31T20:31:31+00:00","dateModified":"2025-06-14T02:29:01+00:00","description":"Ejemplos de uso del SDK .NET de Couchbase con las nuevas funciones de autenticaci\u00f3n y autorizaci\u00f3n de Couchbase Server 5.0","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/059-Hero-Key-Locks-Security-Authentication-Authorization-e1657658890360.jpeg","width":1125,"height":750,"caption":"NoSQL has built-in security with Couchbase"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/authentication-authorization-rbac-net\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Authentication and Authorization with RBAC in .NET"}]},{"@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\/3655","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=3655"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/3655\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/3004"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=3655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=3655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=3655"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=3655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}