{"id":11260,"date":"2021-06-22T00:00:43","date_gmt":"2021-06-22T07:00:43","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11260"},"modified":"2025-06-13T20:08:49","modified_gmt":"2025-06-14T03:08:49","slug":"oauth-2-oidc-fundamentals-authentication-authorization","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/oauth-2-oidc-fundamentals-authentication-authorization\/","title":{"rendered":"Fundamentos de OAuth 2.0 y OIDC para autenticaci\u00f3n y autorizaci\u00f3n [Parte 1 de 3]."},"content":{"rendered":"<p><strong>Promotores y arquitectos<\/strong> simplemente no se pueden crear aplicaciones modernas sin toparse con problemas de autorizaci\u00f3n y autenticaci\u00f3n. <\/p>\n<p><a href=\"https:\/\/oauth.net\/2\/\" target=\"_blank\" rel=\"noopener\">OAuth 2.0<\/a>\u00a0<span style=\"font-weight: 400\">es un est\u00e1ndar de la industria para la \"autorizaci\u00f3n delegada\", que es la capacidad de proporcionar a una aplicaci\u00f3n o cliente acceso a datos o funciones ofrecidos por otra aplicaci\u00f3n o servicio. OAuth 2.0 se centra en la autorizaci\u00f3n y no es prescriptivo sobre la autenticaci\u00f3n.<\/span>\u00a0<a href=\"https:\/\/openid.net\/connect\/\" target=\"_blank\" rel=\"noopener\">OpenID Connect (OIDC)<\/a> a\u00f1ade una capa de autenticaci\u00f3n basada en est\u00e1ndares sobre OAuth 2.0.<\/p>\n<p>Para ponerlo en contexto, <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/authentication-users.html?ref=blog\" target=\"_blank\" rel=\"noopener\">Couchbase Sync Gateway admite varias formas de autenticaci\u00f3n de clientes<\/a>. <em>Clientes<\/em> podr\u00edan ser clientes de Couchbase Lite que sincronizan datos con la puerta de enlace de sincronizaci\u00f3n a trav\u00e9s de Internet mediante un websocket basado en <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/sync-using-app.html?ref=blog\" target=\"_blank\" rel=\"noopener\">protocolo de r\u00e9plica<\/a>o pueden ser aplicaciones frontales web o m\u00f3viles que acceden a la puerta de enlace de sincronizaci\u00f3n a trav\u00e9s de la aplicaci\u00f3n <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/rest-api.html?ref=blog\" target=\"_blank\" rel=\"noopener\">punto final REST p\u00fablico<\/a>. Uno de los mecanismos de autenticaci\u00f3n de clientes m\u00e1s populares de Couchbase Sync Gateway es OIDC.<\/p>\n<p>En este post, vamos a cubrir los fundamentos de OAuth 2.0 y OIDC para la autenticaci\u00f3n y autorizaci\u00f3n. Voy a discutir dos flujos comunes, a saber, la <a href=\"https:\/\/openid.net\/specs\/openid-connect-implicit-1_0.html\" target=\"_blank\" rel=\"noopener\">Flujo impl\u00edcito<\/a> y el <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html\" target=\"_blank\" rel=\"noopener\">Flujo de c\u00f3digos de autorizaci\u00f3n<\/a>. Una comprensi\u00f3n b\u00e1sica de los flujos deber\u00eda proporcionarle los antecedentes suficientes para entender c\u00f3mo utilizar la autenticaci\u00f3n basada en OIDC en el contexto de la autenticaci\u00f3n de clientes de Sync Gateway. En una pr\u00f3xima entrada del blog hablaremos de ello, as\u00ed que permanezca atento.<\/p>\n<p>Para entender OIDC, primero tenemos que entender OAuth 2.0. Esto se debe a que, como marco de autenticaci\u00f3n, OIDC se basa en OAuth 2.0. Esto se debe a que, como marco de autenticaci\u00f3n, OIDC se basa en OAuth 2.0.<\/p>\n<h2>Introducci\u00f3n a OAuth 2.0<\/h2>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/oauth.net\/2\/\" target=\"_blank\" rel=\"noopener\">OAuth 2.0<\/a> es una norma del sector para la autorizaci\u00f3n delegada, y hay una serie de <a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_OAuth_providers\" target=\"_blank\" rel=\"noopener\">Proveedores OAuth<\/a> en el mercado.<\/p>\n<p>Pensemos, por ejemplo, en el bot\u00f3n \"Iniciar sesi\u00f3n con Facebook\" que utilizan varias aplicaciones web y m\u00f3viles. Para ello se utiliza OAuth 2.0.<\/p>\n<p>He aqu\u00ed una <em>simplificado<\/em> de lo que ocurre entre bastidores. A continuaci\u00f3n describo lo que se denomina el <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6749#section-1.3.1\" target=\"_blank\" rel=\"noopener\">Flujo de c\u00f3digos de autorizaci\u00f3n<\/a>. Tambi\u00e9n existe la alternativa \"Flujo impl\u00edcito\", que es m\u00e1s frecuente cuando se utiliza en el contexto de OIDC.<\/p>\n<h3>Requisitos previos<\/h3>\n<p>&nbsp;<\/p>\n<p>En primer lugar, la aplicaci\u00f3n\/cliente debe registrarse en el servidor de autorizaci\u00f3n. El proceso de registro da lugar a la generaci\u00f3n de un <code>client_id<\/code> y un <code>secreto_cliente<\/code> que debe configurarse en la aplicaci\u00f3n\/cliente que solicita la autenticaci\u00f3n.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/05\/oauth2-auth-code.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11246\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/05\/oauth2-auth-code.png\" alt=\"OAuth2 Authorization Flow\" width=\"800\" height=\"425\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/05\/oauth2-auth-code.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/05\/oauth2-auth-code-300x159.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/05\/oauth2-auth-code-768x408.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/05\/oauth2-auth-code-20x11.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Cuando el usuario (a.k.a., <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6749\" target=\"_blank\" rel=\"noopener\">\"Propietario de recursos\"<\/a> en lenguaje OAuth 2.0) hace clic en el bot\u00f3n <em>Iniciar sesi\u00f3n con Facebook<\/em> en su aplicaci\u00f3n favorita, la aplicaci\u00f3n env\u00eda un <em>Solicitud de autorizaci\u00f3n<\/em> a la URL de inicio de sesi\u00f3n del servidor de autorizaci\u00f3n. En nuestro ejemplo, el servidor de autorizaci\u00f3n es Facebook. La solicitud de autorizaci\u00f3n incluye una serie de par\u00e1metros. En aras de la brevedad, no voy a incluir la lista completa de par\u00e1metros que se pueden encontrar en <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6749#section-4.1.1\" target=\"_blank\" rel=\"noopener\">RFC6749<\/a>. Como m\u00ednimo, la solicitud debe incluir los siguientes par\u00e1metros:\n<ul>\n<li><code>client_id<\/code> que identifica de forma exclusiva la aplicaci\u00f3n ante el servidor de autorizaci\u00f3n<\/li>\n<li><code>tipo_respuesta<\/code> que debe especificarse como <code>c\u00f3digo<\/code> indicando que el cliente espera un C\u00f3digo de Autorizaci\u00f3n<\/li>\n<li><code>solicitud_uri<\/code> que especifica la URL a la que el Servidor de Autorizaci\u00f3n debe redirigir el control tras la autenticaci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<li>El servidor de autorizaci\u00f3n (Facebook) pide al usuario que introduzca su nombre de usuario y contrase\u00f1a y (opcionalmente) que responda a una serie de preguntas de seguridad necesarias para autenticar al usuario.<\/li>\n<li>Una vez autenticado, al usuario se le presenta (opcionalmente) un \"formulario de consentimiento de recursos\" en el que se enumera el conjunto de recursos de Facebook (como el perfil p\u00fablico del usuario) a los que la aplicaci\u00f3n quiere acceder.\n<ul>\n<li>El conjunto de recursos presentados en el formulario de consentimiento se especifica mediante un <code>alcance<\/code> en la solicitud de autorizaci\u00f3n inicial al servidor de autorizaci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<li>Una vez que el usuario autoriza el acceso a los recursos solicitados, se le redirige de nuevo a la aplicaci\u00f3n con un c\u00f3digo de autorizaci\u00f3n.\n<ul>\n<li>La URL a la que el Servidor de Autorizaci\u00f3n redirige al usuario se especifica mediante la directiva <code>redirect_uri<\/code> que tambi\u00e9n se incluye en la solicitud de autorizaci\u00f3n inicial.<\/li>\n<\/ul>\n<\/li>\n<li>A continuaci\u00f3n, la aplicaci\u00f3n\/cliente intercambia el c\u00f3digo de autorizaci\u00f3n con el Servidor de Autorizaci\u00f3n para obtener un <em>c\u00f3digo de acceso<\/em> (o <em>ficha de actualizaci\u00f3n<\/em>), pasando el <code>client_id<\/code> y <code>secreto_cliente<\/code> como parte de la solicitud.<\/li>\n<li>A continuaci\u00f3n, la aplicaci\u00f3n puede acceder a los recursos solicitados en Facebook utilizando el token de acceso.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>\u00bfLe ha quedado claro? No se preocupe, volveremos a tratar este tema en el contexto de OIDC.<\/p>\n<h2>\u00bfQu\u00e9 es OpenID Connect (OIDC)?<\/h2>\n<p>&nbsp;<\/p>\n<p>El objetivo principal de OAuth 2.0 es <a href=\"https:\/\/tools.ietf.org\/id\/draft-barnes-oauth-model-01.html\" target=\"_blank\" rel=\"noopener\">autorizaci\u00f3n delegada<\/a>. En otras palabras, como hemos visto antes, el objetivo principal de OAuth 2.0 es conceder a una aplicaci\u00f3n acceso a datos que pertenecen a otra aplicaci\u00f3n.<\/p>\n<p>OAuth 2.0 no se centra en la autenticaci\u00f3n y, como tal, cualquier implementaci\u00f3n de autenticaci\u00f3n que utilice OAuth 2.0 no es est\u00e1ndar. Ah\u00ed es donde entra OpenID Connect (OIDC). OIDC a\u00f1ade una capa de autenticaci\u00f3n basada en est\u00e1ndares sobre OAuth 2.0.<\/p>\n<p>El Servidor de Autorizaci\u00f3n en los flujos OAuth 2.0 asume ahora el papel de <em>Servidor de identidad<\/em> (o <em>Proveedor de OIDC<\/em>). El protocolo subyacente es casi id\u00e9ntico a OAuth 2.0, salvo que el Servidor de Identidad entrega un <em>Ficha de identidad<\/em> (token de identidad) a la aplicaci\u00f3n solicitante. El token de identidad es una forma est\u00e1ndar de codificar las afirmaciones sobre la autenticaci\u00f3n del usuario. Hablaremos m\u00e1s sobre los tokens de identidad m\u00e1s adelante.<\/p>\n<p>Describir\u00e9 aqu\u00ed dos flujos OIDC populares: Flujo Impl\u00edcito y Flujo de C\u00f3digo de Autorizaci\u00f3n.<\/p>\n<h3>Requisitos previos<\/h3>\n<p>&nbsp;<\/p>\n<p>Para ambos flujos, la aplicaci\u00f3n\/cliente debe registrarse en el servidor de autorizaci\u00f3n. El proceso de registro da lugar a la generaci\u00f3n de un <code>client_id<\/code> y un <code>secreto_cliente<\/code> que debe configurarse en la aplicaci\u00f3n\/cliente que solicita la autenticaci\u00f3n.<\/p>\n<h3>Flujo impl\u00edcito OIDC<\/h3>\n<p>&nbsp;<\/p>\n<p>La OIDC <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html#ImplicitFlowAuth\" target=\"_blank\" rel=\"noopener\">Flujo impl\u00edcito<\/a> es el m\u00e1s simple de los dos y se recomienda para su uso en Couchbase Lite autenticaci\u00f3n de cliente con Sync Gateway que vamos a hablar m\u00e1s en mi pr\u00f3xima entrada del blog.<\/p>\n<p>Una vez m\u00e1s, utilizaremos <em>Iniciar sesi\u00f3n con Facebook<\/em> como ejemplo para ilustrar el flujo.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/05\/oidc-implicit.png\" alt=\"OIDC Implicit Flow\" \/><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Cuando el usuario hace clic en el bot\u00f3n <em>Iniciar sesi\u00f3n con Facebook<\/em> en su aplicaci\u00f3n favorita, la aplicaci\u00f3n env\u00eda una solicitud de autenticaci\u00f3n a la URL de inicio de sesi\u00f3n del servidor de autorizaci\u00f3n o servidor de identidad. En nuestro ejemplo, el servidor de autorizaci\u00f3n es Facebook.\n<ul>\n<li>La solicitud de autenticaci\u00f3n incluye una serie de par\u00e1metros. Por brevedad, no incluyo la lista completa de todos los par\u00e1metros que <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html#ImplicitAuthRequest\" target=\"_blank\" rel=\"noopener\">en la especificaci\u00f3n OIDC<\/a>. Como m\u00ednimo, la solicitud debe incluir los siguientes par\u00e1metros:\n<ul>\n<li><code>client_id<\/code> que identifica de forma exclusiva la aplicaci\u00f3n ante el servidor de autorizaci\u00f3n<\/li>\n<li><code>tipo_respuesta<\/code> que debe especificarse como <code>id_token<\/code> indicando que el cliente espera un ID Token.<\/li>\n<li><code>alcance<\/code> que <strong>debe<\/strong> contienen el <code>openid<\/code> adem\u00e1s de una lista opcional de recursos a los que la aplicaci\u00f3n solicita acceso<\/li>\n<li><code>solicitud_uri<\/code> que especifica la URL a la que la Autorizaci\u00f3n debe redirigir el control tras la autenticaci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>A continuaci\u00f3n, el servidor de identidad (Facebook) pide al usuario que introduzca su nombre de usuario y contrase\u00f1a y (opcionalmente) que responda a una serie de preguntas de seguridad necesarias para autenticar al usuario.<\/li>\n<li>Una vez autenticado, al usuario se le presenta (opcionalmente) un \"formulario de consentimiento de recursos\" en el que se enumera el conjunto de recursos de Facebook (como el perfil p\u00fablico del usuario) a los que la aplicaci\u00f3n quiere acceder.\n<ul>\n<li>El conjunto de recursos presentados en el formulario de consentimiento se especifica a trav\u00e9s de la opci\u00f3n <code>alcance<\/code> que se incluy\u00f3 en la solicitud de autenticaci\u00f3n inicial al servidor de autorizaci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<li>Una vez que el usuario autoriza el acceso a los recursos solicitados, se le redirige de nuevo a la aplicaci\u00f3n con un icono <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html#ImplicitIDToken\" target=\"_blank\" rel=\"noopener\">Ficha de identidad<\/a> y, opcionalmente, un c\u00f3digo de acceso\n<ul>\n<li>La URL a la que el Servidor de Autenticaci\u00f3n redirige al usuario se especifica mediante la directiva <code>redirect_uri<\/code> que tambi\u00e9n se incluye en la solicitud de autenticaci\u00f3n inicial.<\/li>\n<\/ul>\n<\/li>\n<li>A continuaci\u00f3n, la aplicaci\u00f3n valida el token de identidad con arreglo a los criterios especificados en el campo <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html#ImplicitIDTValidation\" target=\"_blank\" rel=\"noopener\">Especificaci\u00f3n OIDC<\/a> y recupera la identidad del usuario autenticado.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Flujo de c\u00f3digos de autorizaci\u00f3n OIDC<\/h3>\n<p>&nbsp;<\/p>\n<p>La OIDC <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html#CodeFlowAuth\" target=\"_blank\" rel=\"noopener\">Flujo de c\u00f3digos de autorizaci\u00f3n<\/a> es muy similar al flujo de c\u00f3digo de autorizaci\u00f3n de OAuth 2.0 descrito anteriormente.<\/p>\n<p>Una vez m\u00e1s, utilizaremos <em>Iniciar sesi\u00f3n con Facebook<\/em> como ejemplo para ilustrar el flujo.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/05\/oidc-authflow.png\" alt=\"OIDC Auth code flow\" \/><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Cuando el usuario hace clic en el bot\u00f3n <em>Iniciar sesi\u00f3n con Facebook<\/em> en su aplicaci\u00f3n favorita, la aplicaci\u00f3n env\u00eda una solicitud de autenticaci\u00f3n a la URL de inicio de sesi\u00f3n del servidor de autorizaci\u00f3n o del servidor de identidad. En nuestro ejemplo, el servidor de autorizaci\u00f3n es Facebook.\n<ul>\n<li>La solicitud de autenticaci\u00f3n incluye una serie de par\u00e1metros. En aras de la brevedad, no voy a incluir la lista completa de todos los par\u00e1metros que se pueden encontrar en <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html#ImplicitAuthRequest\" target=\"_blank\" rel=\"noopener\">Especificaci\u00f3n OIDC<\/a>. Como m\u00ednimo, la solicitud debe incluir los siguientes par\u00e1metros:\n<ul>\n<li><code>client_id<\/code> que identifica de forma exclusiva la aplicaci\u00f3n ante el servidor de autorizaci\u00f3n<\/li>\n<li><code>tipo_respuesta<\/code> que debe especificarse como <code>c\u00f3digo<\/code> indicando que el cliente espera un C\u00f3digo de Autorizaci\u00f3n.<\/li>\n<li><code>alcance<\/code> que <strong>debe<\/strong> contienen el <code>openid<\/code> adem\u00e1s de una lista opcional de recursos a los que la aplicaci\u00f3n solicita acceso<\/li>\n<li><code>solicitud_uri<\/code> que especifica la URL a la que la Autorizaci\u00f3n debe redirigir el control tras la autenticaci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>A continuaci\u00f3n, el servidor de identidad (Facebook) pide al usuario que introduzca su nombre de usuario y contrase\u00f1a y (opcionalmente) que responda a una serie de preguntas de seguridad necesarias para autenticar al usuario.<\/li>\n<li>Una vez autenticado, al usuario se le presenta (opcionalmente) un \"formulario de consentimiento de recursos\" en el que se enumera el conjunto de recursos de Facebook (como el perfil p\u00fablico del usuario) a los que la aplicaci\u00f3n quiere acceder.\n<ul>\n<li>El conjunto de recursos presentados en el formulario de consentimiento se especifica a trav\u00e9s de la opci\u00f3n <code>alcance<\/code> que tambi\u00e9n se incluye en la solicitud de autenticaci\u00f3n inicial al servidor de autorizaci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<li>Una vez que el usuario autoriza el acceso a los recursos solicitados, se le redirige de nuevo a la aplicaci\u00f3n con un icono <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6749#section-1.3.1\" target=\"_blank\" rel=\"noopener\">C\u00f3digo de autorizaci\u00f3n<\/a>\n<ul>\n<li>La URL a la que el Servidor de Autorizaci\u00f3n redirige al usuario se especifica mediante la directiva <code>redirect_uri<\/code> que tambi\u00e9n se incluye en la solicitud de autorizaci\u00f3n inicial.<\/li>\n<\/ul>\n<\/li>\n<li>A continuaci\u00f3n, la aplicaci\u00f3n\/cliente intercambia el c\u00f3digo de autorizaci\u00f3n con el Servidor de Autorizaci\u00f3n para obtener un <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html#ImplicitIDToken\" target=\"_blank\" rel=\"noopener\">Ficha de identidad<\/a> y un Access Token opaco, pasando el <code>client_id<\/code> y <code>secreto_cliente<\/code> como parte de la solicitud.<\/li>\n<li>A continuaci\u00f3n, la aplicaci\u00f3n valida el token de identidad con arreglo a los criterios especificados en el campo <a href=\"https:\/\/openid.net\/specs\/openid-connect-core-1_0.html#ImplicitIDTValidation\" target=\"_blank\" rel=\"noopener\">Especificaci\u00f3n OIDC<\/a> y recupera la identidad del usuario autenticado.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Token web JSON (JWT)<\/h2>\n<p>&nbsp;<\/p>\n<p>Un elemento clave de OIDC es el token de identidad, que es un token de seguridad que codifica las demandas de autenticaci\u00f3n sobre un usuario en un formato est\u00e1ndar denominado <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7519\" target=\"_blank\" rel=\"noopener\">Token web JSON (JWT)<\/a>. El JWT est\u00e1 firmado digitalmente.<\/p>\n<p>Una \"claim\" es una afirmaci\u00f3n sobre el usuario. Este es un ejemplo de un JWT con un conjunto t\u00edpico de afirmaciones.<\/p>\n<pre class=\"lang:js decode:true\" title=\"Ejemplo de JWT\">{\r\n  \"sub\": \"AItOawmwtWwcT0k51BayewNvutrJUqsvl6qs7A4\",\r\n  \"name\": \"Priya Rajagopal\",\r\n  \"email\": \"priya.rajagopal@example.com\",\r\n  \"iss\": \"https:\/\/pk-demo.okta.com\/OAuth 2.0\/default\",\r\n  \"aud\": \"WuRuBAgABMP7_w4K9L-40Jhh\",\r\n  \"iat\": 1622246311,\r\n  \"exp\": 1624838311,\r\n  \"amr\": [\r\n    \"pwd\"\r\n  ]\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><code>sub<\/code> es el usuario al que se refiere el JWT<\/li>\n<li><code>iss<\/code> es el emisor del JWT que tambi\u00e9n firma el JWT<\/li>\n<li><code>aud<\/code> es el destinatario de la ficha<\/li>\n<li><code>iat<\/code> es la marca de tiempo emitida<\/li>\n<li><code>exp<\/code> es la fecha de expiraci\u00f3n<\/li>\n<li><code>amr<\/code> se refiere al m\u00e9todo de autenticaci\u00f3n utilizado para emitir tokens<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>M\u00e1s recursos<\/h2>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/jwt.io\/\" target=\"_blank\" rel=\"noopener\">jwt.io<\/a> es muy \u00fatil para decodificar y verificar un JWT.<\/p>\n<p>En <a href=\"https:\/\/www.oauth.com\/playground\/index.html\" target=\"_blank\" rel=\"noopener\">Parque infantil OIDC y OAuth<\/a> de Okta es un gran recurso para probar los flujos sin llegar a implementarlos.<\/p>\n<h2>El futuro<\/h2>\n<p>&nbsp;<\/p>\n<p>En este post describimos los fundamentos de OpenID Connect (OIDC) y los flujos de OAuth 2.0. En el post de la pr\u00f3xima semana, hablaremos de la autenticaci\u00f3n basada en OIDC en el contexto de la autenticaci\u00f3n de clientes de Sync Gateway. Permanezca atento.<\/p>\n<p>Si tiene alguna pregunta o sugerencia, deje un comentario a continuaci\u00f3n o env\u00edeme un correo electr\u00f3nico. <a href=\"mailto:priya.rajagopal@couchbase.com\">priya.rajagopal@couchbase.com<\/a>. En <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Foros de Couchbase<\/a> son otro buen lugar al que dirigirse con preguntas.<br \/>\n&nbsp;<\/p>\n<p><em>P\u00f3ngase al d\u00eda con el resto de entradas de esta serie sobre autenticaci\u00f3n y autorizaci\u00f3n:<\/p>\n<ul>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/oauth-2-oidc-fundamentals-authentication-authorization\/?ref=blog\" rel=\"noopener\" target=\"_blank\">Fundamentos de OAuth 2.0 y OIDC para autenticaci\u00f3n y autorizaci\u00f3n [Parte 1].<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/oidc-implicit-flow-client-authentication-couchbase-sync-gateway\/?ref=blog\" rel=\"noopener\" target=\"_blank\">Flujo impl\u00edcito OIDC para autenticaci\u00f3n de clientes en Couchbase Sync Gateway [Parte 2]<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/oidc-authorization-code-flow-client-authentication-couchbase-sync-gateway\/?ref=blog\" rel=\"noopener\" target=\"_blank\">Flujo de c\u00f3digo de autorizaci\u00f3n OIDC para autenticaci\u00f3n de cliente en Couchbase Sync Gateway [Parte 3]<\/a><\/li>\n<\/ul>\n<\/ul>\n<p><\/em><br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Developers and architects simply can&#8217;t build modern applications without running into issues of authorization and authentication. OAuth 2.0\u00a0is an industry standard for \u201cdelegated authorization\u201d which is the ability to provide an application or client access to data or features offered [&hellip;]<\/p>","protected":false},"author":1423,"featured_media":11261,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,7667,1810,1813,2366],"tags":[9266,9250,1261,2251,9234,1713],"ppma_author":[8948],"class_list":["post-11260","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-lite","category-couchbase-mobile","category-security","category-sync-gateway","tag-authorization-code-flow","tag-implicit-flow","tag-json","tag-jwt","tag-oidc","tag-openid-connect"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OAuth 2.0 &amp; OIDC Fundamentals for Authentication &amp; Authorization [Part 1 of 3]<\/title>\n<meta name=\"description\" content=\"Discover how to implement implicit and authorization code flows for user authentication and authorization using OAuth 2.0 and OIDC alongside Couchbase.\" \/>\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\/oauth-2-oidc-fundamentals-authentication-authorization\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OAuth 2.0 &amp; OIDC Fundamentals for Authentication &amp; Authorization [Part 1 of 3]\" \/>\n<meta property=\"og:description\" content=\"Discover how to implement implicit and authorization code flows for user authentication and authorization using OAuth 2.0 and OIDC alongside Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/oauth-2-oidc-fundamentals-authentication-authorization\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-22T07:00:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:08:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rajagp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"OAuth 2.0 &amp; OIDC Fundamentals for Authentication &amp; Authorization [Part 1 of 3]\",\"datePublished\":\"2021-06-22T07:00:43+00:00\",\"dateModified\":\"2025-06-14T03:08:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/\"},\"wordCount\":1818,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png\",\"keywords\":[\"Authorization Code Flow\",\"Implicit Flow\",\"JSON\",\"jwt\",\"OIDC\",\"OpenID Connect\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Security\",\"Sync Gateway\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/\",\"name\":\"OAuth 2.0 &amp; OIDC Fundamentals for Authentication &amp; Authorization [Part 1 of 3]\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png\",\"datePublished\":\"2021-06-22T07:00:43+00:00\",\"dateModified\":\"2025-06-14T03:08:49+00:00\",\"description\":\"Discover how to implement implicit and authorization code flows for user authentication and authorization using OAuth 2.0 and OIDC alongside Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png\",\"width\":1200,\"height\":628,\"caption\":\"Learn more about using various OIDC and OAuth 2.0 authentication flows with Couchbase Sync Gateway\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OAuth 2.0 &amp; OIDC Fundamentals for Authentication &amp; Authorization [Part 1 of 3]\"}]},{\"@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\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"caption\":\"Priya Rajagopal, Senior Director, Product Management\"},\"description\":\"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.\",\"sameAs\":[\"https:\/\/x.com\/rajagp\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Fundamentos de OAuth 2.0 y OIDC para autenticaci\u00f3n y autorizaci\u00f3n [Parte 1 de 3].","description":"Descubre c\u00f3mo implementar flujos de c\u00f3digo impl\u00edcitos y de autorizaci\u00f3n para la autenticaci\u00f3n y autorizaci\u00f3n de usuarios utilizando OAuth 2.0 y OIDC junto con Couchbase.","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\/oauth-2-oidc-fundamentals-authentication-authorization\/","og_locale":"es_MX","og_type":"article","og_title":"OAuth 2.0 &amp; OIDC Fundamentals for Authentication &amp; Authorization [Part 1 of 3]","og_description":"Discover how to implement implicit and authorization code flows for user authentication and authorization using OAuth 2.0 and OIDC alongside Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/oauth-2-oidc-fundamentals-authentication-authorization\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-06-22T07:00:43+00:00","article_modified_time":"2025-06-14T03:08:49+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"OAuth 2.0 &amp; OIDC Fundamentals for Authentication &amp; Authorization [Part 1 of 3]","datePublished":"2021-06-22T07:00:43+00:00","dateModified":"2025-06-14T03:08:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/"},"wordCount":1818,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png","keywords":["Authorization Code Flow","Implicit Flow","JSON","jwt","OIDC","OpenID Connect"],"articleSection":["Best Practices and Tutorials","Couchbase Lite","Couchbase Mobile","Security","Sync Gateway"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/","url":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/","name":"Fundamentos de OAuth 2.0 y OIDC para autenticaci\u00f3n y autorizaci\u00f3n [Parte 1 de 3].","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png","datePublished":"2021-06-22T07:00:43+00:00","dateModified":"2025-06-14T03:08:49+00:00","description":"Descubre c\u00f3mo implementar flujos de c\u00f3digo impl\u00edcitos y de autorizaci\u00f3n para la autenticaci\u00f3n y autorizaci\u00f3n de usuarios utilizando OAuth 2.0 y OIDC junto con Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/feature.png","width":1200,"height":628,"caption":"Learn more about using various OIDC and OAuth 2.0 authentication flows with Couchbase Sync Gateway"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/oauth-2-oidc-fundamentals-authentication-authorization\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"OAuth 2.0 &amp; OIDC Fundamentals for Authentication &amp; Authorization [Part 1 of 3]"}]},{"@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\/c2da90e57717ee4970c48a87a131ac2c","name":"Priya Rajagopal, Directora de Gesti\u00f3n de Productos","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734","url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","caption":"Priya Rajagopal, Senior Director, Product Management"},"description":"Priya Rajagopal es directora s\u00e9nior de gesti\u00f3n de productos en Couchbase y responsable de las plataformas de desarrollo para la nube y el per\u00edmetro. Lleva m\u00e1s de 20 a\u00f1os dedic\u00e1ndose profesionalmente al desarrollo de software en varios puestos de liderazgo t\u00e9cnico y de producto, con m\u00e1s de 10 a\u00f1os centrados en tecnolog\u00edas m\u00f3viles. Como delegada de est\u00e1ndares IPTV de TISPAN, fue una colaboradora clave en las especificaciones de est\u00e1ndares IPTV. Tiene 22 patentes en las \u00e1reas de redes y seguridad de plataformas.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/priya-rajagopalcouchbase-com\/"}]}},"authors":[{"term_id":8948,"user_id":1423,"is_guest":0,"slug":"priya-rajagopalcouchbase-com","display_name":"Priya Rajagopal, Senior Director, Product Management","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","author_category":"","last_name":"Rajagopal, Senior Director, Product Management","first_name":"Priya","job_title":"","user_url":"","description":"Priya Rajagopal es directora s\u00e9nior de gesti\u00f3n de productos en Couchbase y responsable de las plataformas de desarrollo para la nube y el per\u00edmetro. Lleva m\u00e1s de 20 a\u00f1os dedic\u00e1ndose profesionalmente al desarrollo de software en varios puestos de liderazgo t\u00e9cnico y de producto, con m\u00e1s de 10 a\u00f1os centrados en tecnolog\u00edas m\u00f3viles. Como delegada de est\u00e1ndares IPTV de TISPAN, fue una colaboradora clave en las especificaciones de est\u00e1ndares IPTV. Tiene 22 patentes en las \u00e1reas de redes y seguridad de plataformas."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/11260","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\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=11260"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/11260\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/11261"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=11260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=11260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=11260"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=11260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}