<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kong on Atlas</title><link>https://www.javiercd.es/tags/kong/</link><description>Recent content in Kong on Atlas</description><generator>Hugo -- gohugo.io</generator><language>es</language><lastBuildDate>Sun, 26 Jul 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://www.javiercd.es/tags/kong/index.xml" rel="self" type="application/rss+xml"/><item><title>Introducción a Kong Gateway</title><link>https://www.javiercd.es/posts/kong/01-introduccion-kong-gateway/01-introduccion-kong-gateway/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/01-introduccion-kong-gateway/01-introduccion-kong-gateway/</guid><description>&lt;p&gt;Kong Gateway es un &lt;strong&gt;API Gateway&lt;/strong&gt; basado en &lt;strong&gt;NGINX&lt;/strong&gt; y desarrollado en &lt;strong&gt;Lua&lt;/strong&gt;. Actúa como punto de entrada entre los consumidores de una API y los servicios backend, desempeñando el papel de un &lt;strong&gt;reverse proxy&lt;/strong&gt; con capacidades avanzadas para gestionar, proteger y observar el tráfico.&lt;/p&gt;
&lt;p&gt;Su función va mucho más allá de reenviar peticiones. Entre las capacidades que proporciona de forma nativa se encuentran:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Autenticación y autorización mediante mecanismos como API Keys, JWT, Basic Auth u OIDC.&lt;/li&gt;
&lt;li&gt;Control del tráfico mediante políticas de &lt;em&gt;rate limiting&lt;/em&gt;, cuotas y listas de acceso.&lt;/li&gt;
&lt;li&gt;Transformación de peticiones y respuestas sin modificar las aplicaciones.&lt;/li&gt;
&lt;li&gt;Registro de eventos, métricas y trazas para mejorar la observabilidad.&lt;/li&gt;
&lt;li&gt;Exposición centralizada de múltiples servicios a través de un único punto de entrada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gracias a este enfoque, las APIs pueden centrarse exclusivamente en la lógica de negocio, mientras que Kong Gateway asume las funcionalidades comunes relacionadas con la seguridad, el control del tráfico, la observabilidad y la gestión de las comunicaciones.&lt;/p&gt;</description></item><item><title>Instalación de Kong con Docker (modo híbrido)</title><link>https://www.javiercd.es/posts/kong/02-instalacion-docker-hibrido/02-instalacion-docker-hibrido/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/02-instalacion-docker-hibrido/02-instalacion-docker-hibrido/</guid><description>&lt;h2 id="introducción"&gt;Introducción&lt;/h2&gt;
&lt;p&gt;En este artículo desplegaremos &lt;strong&gt;Kong Gateway 3.10 open source&lt;/strong&gt; en &lt;strong&gt;modo Hybrid&lt;/strong&gt; utilizando Docker Compose. Esta arquitectura, basada en la separación entre &lt;strong&gt;Control Plane (CP)&lt;/strong&gt; y &lt;strong&gt;Data Plane (DP)&lt;/strong&gt;, es una de las opciones recomendadas por Kong para entornos de API Gateway debido a su flexibilidad, escalabilidad y alta disponibilidad.&lt;/p&gt;
&lt;p&gt;En un despliegue Hybrid, únicamente el &lt;strong&gt;Control Plane&lt;/strong&gt; mantiene una conexión directa con la base de datos y es responsable de gestionar toda la configuración del gateway mediante la &lt;strong&gt;Admin API&lt;/strong&gt; y &lt;strong&gt;Kong Manager&lt;/strong&gt;. Por su parte, los &lt;strong&gt;Data Planes&lt;/strong&gt; funcionan en modo &lt;em&gt;DB-less&lt;/em&gt; y reciben automáticamente la configuración desde el Control Plane a través de un canal seguro protegido mediante &lt;strong&gt;mTLS&lt;/strong&gt;. Esto permite que los Data Planes continúen procesando tráfico incluso si el Control Plane o la base de datos dejan de estar disponibles temporalmente.&lt;/p&gt;</description></item><item><title>Instalación de Kong Ingress Controller (KIC)</title><link>https://www.javiercd.es/posts/kong/03-instalacion-kic/03-instalacion-kic/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/03-instalacion-kic/03-instalacion-kic/</guid><description>&lt;p&gt;En este artículo vamos a pasar de la teoría al despliegue real. El objetivo es instalar &lt;strong&gt;Kong Ingress Controller (KIC)&lt;/strong&gt; en un clúster de Kubernetes, comprobar que &lt;strong&gt;Kong Gateway&lt;/strong&gt; está funcionando correctamente y preparar la exposición externa del proxy para poder publicar aplicaciones desde el propio clúster.&lt;/p&gt;
&lt;p&gt;Para mantener el laboratorio simple, usaré una única máquina virtual creada con &lt;strong&gt;Vagrant&lt;/strong&gt; sobre la que ejecutaré un clúster &lt;strong&gt;k3s&lt;/strong&gt;. Esta elección no cambia el funcionamiento de Kong, pero nos permite centrarnos en lo importante: qué instala KIC, por qué el servicio de proxy aparece inicialmente en estado &lt;code&gt;Pending&lt;/code&gt; y cómo resolverlo con &lt;strong&gt;MetalLB&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Basic Auth en kong</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/10-autenticacion-basic-auth/10-autenticacion-basic-auth/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/10-autenticacion-basic-auth/10-autenticacion-basic-auth/</guid><description>&lt;p&gt;Basic Authentication suele parecer un mecanismo trivial porque solo utiliza un usuario y una contraseña. Sin embargo, para utilizarlo correctamente conviene separar tres ideas: el estándar HTTP, la validación que realiza Kong Gateway y la identidad que Kong asocia a unas credenciales válidas.&lt;/p&gt;
&lt;p&gt;En este artículo veremos esas tres capas y construiremos un laboratorio reproducible con Kong Ingress Controller. El objetivo no es limitarse a copiar ficheros y aplicarlos sin cabeza. Primero entenderemos qué representa cada recurso, después lo aplicaremos y finalmente comprobaremos qué ocurre dentro de Kong.&lt;/p&gt;</description></item><item><title>Key Auth en Kong</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/11-autenticacion-key-auth/11-autenticacion-key-auth/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/11-autenticacion-key-auth/11-autenticacion-key-auth/</guid><description>&lt;p&gt;Una API key suele parecer poco más que una cadena aleatoria que el cliente añade a cada petición. Sin embargo, para utilizarla correctamente conviene separar tres ideas: la credencial que presenta el cliente, la validación que realiza Kong Gateway y la identidad del consumidor (&lt;code&gt;Consumer&lt;/code&gt;) asociado a esa credencial.&lt;/p&gt;
&lt;p&gt;En este artículo veremos esas tres capas y construiremos un laboratorio reproducible con Kong Ingress Controller. El objetivo no es limitarse a copiar ficheros y aplicarlos sin cabeza. Primero entenderemos qué representa cada recurso, después lo aplicaremos y finalmente comprobaremos qué ocurre dentro de Kong.&lt;/p&gt;</description></item><item><title>HMAC Auth en Kong</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/12-autenticacion-hmac-auth/12-autenticacion-hmac-auth/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/12-autenticacion-hmac-auth/12-autenticacion-hmac-auth/</guid><description>&lt;p&gt;HMAC Authentication permite demostrar que una petición ha sido construida por un cliente que conoce un secreto compartido sin enviar ese secreto dentro de la petición. Además de autenticar al cliente, la firma permite detectar si los elementos firmados se han modificado durante el transporte.&lt;/p&gt;
&lt;p&gt;En este artículo veremos cómo se construye una firma HMAC, cómo la valida Kong Gateway y cómo se relacionan el consumidor y su credencial. Después construiremos un laboratorio reproducible con Kong Ingress Controller y protegeremos la ruta &lt;code&gt;/hmac-auth&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>JWT Auth en Kong</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/13-autenticacion-jwt/13-autenticacion-jwt/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/13-autenticacion-jwt/13-autenticacion-jwt/</guid><description>&lt;p&gt;Un JSON Web Token permite transportar afirmaciones sobre una identidad dentro de un token firmado. Kong puede verificar esa firma y sus fechas antes de que la petición llegue al backend.&lt;/p&gt;
&lt;p&gt;En este artículo separaremos la estructura del token, la credencial criptográfica almacenada en Kong y el consumidor que representa al cliente. Después construiremos un laboratorio reproducible con Kong Ingress Controller, JWT firmado con HS256 y una ruta &lt;code&gt;/jwt&lt;/code&gt;.&lt;/p&gt;
&lt;div class="alert info"&gt;
&lt;span&gt;&lt;i data-feather="info"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;&lt;p&gt;Este laboratorio continúa exactamente desde el escenario creado en &lt;a href="https://www.javiercd.es/posts/kong/03-instalacion-kic/03-instalacion-kic/"&gt;Instalación de KIC&lt;/a&gt;. Reutiliza el &lt;code&gt;Gateway&lt;/code&gt; &lt;code&gt;kong&lt;/code&gt;, el servicio &lt;code&gt;echo&lt;/code&gt; y la dirección &lt;code&gt;192.168.121.200&lt;/code&gt; asignada por MetalLB a &lt;code&gt;kong-gateway-proxy&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Introspección de tokens OAuth 2.0 en Kong</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/14-autenticacion-oauth2-introspection/14-autenticacion-oauth2-introspection/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/14-autenticacion-oauth2-introspection/14-autenticacion-oauth2-introspection/</guid><description>&lt;p&gt;La edición Enterprise de Kong incluye un plugin oficial de OAuth 2.0 Introspection, pero requiere licencia. En este laboratorio resolveremos esa limitación instalando un plugin abierto de la comunidad o código libre sobre Kong Gateway 3.10.&lt;/p&gt;
&lt;p&gt;Además del plugin, desplegaremos Keycloak dentro de Kubernetes. Keycloak emitirá access tokens mediante &lt;code&gt;client_credentials&lt;/code&gt; y expondrá el endpoint de introspección definido por RFC 7662. Todas las respuestas del artículo proceden de este escenario real.&lt;/p&gt;</description></item><item><title>OpenID Connect en Kong</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/15-autenticacion-openid-connect/15-autenticacion-openid-connect/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/15-autenticacion-openid-connect/15-autenticacion-openid-connect/</guid><description>&lt;p&gt;El plugin oficial OpenID Connect de Kong requiere una licencia Enterprise. En este laboratorio utilizaremos el adaptador abierto de la comunidad o código libre &lt;a href="https://github.com/cuongntr/kong-openid-connect-plugin" target="_blank" rel="noopener"&gt;&lt;code&gt;cuongntr/kong-openid-connect-plugin&lt;/code&gt;&lt;/a&gt; sobre la librería &lt;a href="https://github.com/zmartzone/lua-resty-openidc" target="_blank" rel="noopener"&gt;&lt;code&gt;lua-resty-openidc&lt;/code&gt;&lt;/a&gt; para completar un flujo Authorization Code sin licencia.&lt;/p&gt;
&lt;p&gt;Desplegaremos un Keycloak independiente dentro de Kubernetes, iniciaremos sesión con un usuario real y comprobaremos tanto el callback como la reutilización de la cookie. Todas las respuestas del artículo proceden de la VM del laboratorio.&lt;/p&gt;</description></item><item><title>SAML en Kong mediante Keycloak</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/16-autenticacion-saml/16-autenticacion-saml/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/16-autenticacion-saml/16-autenticacion-saml/</guid><description>&lt;p&gt;El plugin oficial &lt;a href="https://developer.konghq.com/plugins/saml/" target="_blank" rel="noopener"&gt;&lt;code&gt;saml&lt;/code&gt;&lt;/a&gt; de Kong requiere una licencia Enterprise. Después de revisar las alternativas abiertas de la comunidad o de código libre no he encontrado un plugin SAML directo, mantenido y compatible con Kong 3.x que resulte razonable recomendar.&lt;/p&gt;
&lt;p&gt;En este laboratorio utilizaremos una arquitectura distinta y completamente abierta: Keycloak actuará como Service Provider SAML y como broker de identidad, mientras Kong utilizará el plugin abierto de la comunidad o código libre &lt;code&gt;kong-openid-connect&lt;/code&gt; instalado en el artículo anterior. La autenticación del usuario sí ocurre mediante una petición y una respuesta SAML reales. Keycloak valida el XML firmado y entrega a Kong un Authorization Code de OpenID Connect.&lt;/p&gt;</description></item><item><title>Session en Kong</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/17-autenticacion-session/17-autenticacion-session/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/17-autenticacion-session/17-autenticacion-session/</guid><description>&lt;p&gt;El plugin Session permite que un cliente autenticado reutilice su identidad mediante una cookie. No autentica por sí solo: necesita trabajar junto a otro mecanismo que valide la primera petición.&lt;/p&gt;
&lt;p&gt;En este laboratorio combinaremos Session con Key Auth. La primera petición presentará una API key, Kong creará una sesión y las siguientes peticiones utilizarán únicamente la cookie. También configuraremos explícitamente la rama anónima para impedir que una petición sin ninguna credencial llegue al backend.&lt;/p&gt;</description></item><item><title>LDAP Auth en Kong</title><link>https://www.javiercd.es/posts/kong/plugins-autenticacion/18-autenticacion-ldap/18-autenticacion-ldap/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0200</pubDate><guid>https://www.javiercd.es/posts/kong/plugins-autenticacion/18-autenticacion-ldap/18-autenticacion-ldap/</guid><description>&lt;p&gt;LDAP Authentication permite que Kong valide directamente un usuario y una contraseña contra un directorio corporativo. El backend no recibe esas credenciales ni necesita implementar el protocolo LDAP.&lt;/p&gt;
&lt;p&gt;En este artículo veremos cómo se construye la cabecera de autenticación, cómo localiza Kong al usuario dentro del directorio y cómo proteger una ruta &lt;code&gt;/ldap-auth&lt;/code&gt; mediante Kong Ingress Controller.&lt;/p&gt;
&lt;div class="alert info"&gt;
&lt;span&gt;&lt;i data-feather="info"&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span&gt;&lt;strong&gt;&lt;p&gt;Este laboratorio continúa desde el escenario creado en &lt;a href="https://www.javiercd.es/posts/kong/03-instalacion-kic/03-instalacion-kic/"&gt;Instalación de KIC&lt;/a&gt;. Reutiliza el &lt;code&gt;Gateway&lt;/code&gt; &lt;code&gt;kong&lt;/code&gt;, el servicio &lt;code&gt;echo&lt;/code&gt; y la dirección &lt;code&gt;192.168.121.200&lt;/code&gt; asignada por MetalLB a &lt;code&gt;kong-gateway-proxy&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>