[{"data":1,"prerenderedAt":209},["ShallowReactive",2],{"seo-verification":3,"blog-pocket-id-proveedor-oidc-ligero-en-un-solo-contenedor-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-pocket-id-proveedor-oidc-ligero-en-un-solo-contenedor-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":153,"ctaBody":154,"ctaButton":155,"ctaUrl":156,"relatedPosts":157},443,"pocket-id-proveedor-oidc-ligero-en-un-solo-contenedor",{"fr":12,"en":13,"ar":14,"es":10},"pocket-id-oidc-self-hosted-vps","pocket-id-lightweight-oidc-provider-in-one-container","pocket-id-على-vps-مزود-oidc-خفيف-بحاوية-واحدة","Pocket ID: proveedor OIDC ligero en un solo contenedor","Pocket ID v2.18.0 es un proveedor OpenID Connect autoalojable en un único contenedor Docker, sin base de datos externa, solo passkeys, con menos de 50 MB de RAM.",9,0,false,"2026-10-15T00:00:00+00:00","2026-10-16T01:57:35+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fpocket-id-oidc-self-hosted-vps-poster.svg","Mantener un Keycloak o un Authentik completo para tres o cuatro servicios autoalojados implica desplegar una JVM o un orquestador de contenedores para resolver un problema que cabe en un único binario Go. Pocket ID v2.18.0 (4 de octubre de 2026) es un proveedor OpenID Connect certificado que funciona en un único contenedor, almacena sus datos en SQLite y consume menos de 50 MB de RAM en reposo, frente a los cientos de megabytes que exige Keycloak. Solo hace OIDC, solo acepta passkeys, y eso es exactamente lo que permite desplegarlo en cinco minutos en cualquier VPS.",[35,39,51,54,82,85,89,92,100,150],{"type":36,"title":37,"body":38},"h2","Por qué autoalojar tu proveedor OIDC","Cada servicio autoalojado que gestiona su propia base de usuarios introduce una dependencia que debes mantener: contraseñas que restablecer, cuentas que revocar, sesiones que invalidar. Multiplicado por cinco o diez servicios, se convierte en una carga operativa real. Un proveedor de identidad (IdP) centraliza ese trabajo: una sola fuente de identidad, revocación que se aplica en todas partes, un único punto de configuración MFA.\n\nLa pregunta no es si necesitas un IdP, sino cuál — y sobre qué base estás dispuesto a operarlo.",{"type":40,"title":41,"items":42},"ul","Lo que obtienes con un IdP OIDC autoalojado",[43,44,45,46,47,48,49,50],"**Identidad centralizada** — una sola cuenta para Gitea, Nextcloud, Grafana y todos los servicios compatibles con OIDC.","**Revocación global** — deshabilitar una cuenta en Pocket ID corta el acceso a todas las aplicaciones conectadas en la siguiente renovación del token.","**Autenticación por passkeys** — Touch ID, Face ID o una clave FIDO2 como único factor, sin contraseña que transmitir.","**Sin dependencia en la nube** — tus identidades permanecen bajo tu jurisdicción, sin cuotas de usuarios ni precios por acción.","**Huella mínima** — Pocket ID consume menos de 50 MB de RAM en reposo, frente a 300–600 MB de Authentik y 1–2 GB de Keycloak.","**SQLite integrado** — no hay motor de base de datos externo que aprovisionar ni respaldar por separado.","**Back-channel logout (v2.18.0)** — cuando se deshabilita un usuario o revoca un cliente, Pocket ID notifica a las aplicaciones registradas e invalida sus sesiones en el lado del servidor.","**Contenedor único** — el servicio completo cabe en una imagen Docker de ~30 MB, sin dependencia de Redis ni worker separado.",{"type":36,"title":52,"body":53},"Requisitos concretos","Pocket ID está diseñado para stacks pequeñas. Sus requisitos son intencionadamente bajos:\n\n- **Docker 24+** y Docker Compose v2 — requeridos por la imagen oficial.\n- **512 MB de RAM mínimo** en el VPS — Pocket ID funciona con menos de 50 MB en reposo; el resto lo usa el sistema y el proxy inverso.\n- **Un dominio y un certificado TLS** — OIDC exige HTTPS sin excepción.\n- **Sin base de datos externa** — SQLite está integrado. Si prefieres PostgreSQL, basta con cambiar una variable de entorno.\n\nPocket ID no gestiona SAML, LDAP ni federación de directorios. Si tu stack incluye aplicaciones que solo aceptan SAML, o necesitas federar un Active Directory, usa Authentik o Keycloak en su lugar.",{"type":55,"title":56,"steps":57},"steps","Instalación de Pocket ID",[58,61,64,67,70,73,76,79],{"title":59,"body":60},"Preparar el VPS y el dominio","Contrata un VPS con Ubuntu 22.04 o Debian 12 con al menos 512 MB de RAM. Crea un registro DNS de tipo A apuntando `auth.example.com` a la IP de tu VPS.\n\nInstala Docker y el plugin Compose:\n```bash\ncurl -fsSL https:\u002F\u002Fget.docker.com | sh\n```",{"title":62,"body":63},"Crear el directorio de trabajo","En el servidor, crea un directorio dedicado:\n```bash\nmkdir -p \u002Fopt\u002Fpocket-id && cd \u002Fopt\u002Fpocket-id\n```",{"title":65,"body":66},"Escribir el fichero docker-compose.yml","Crea `\u002Fopt\u002Fpocket-id\u002Fdocker-compose.yml`:\n```yaml\nservices:\n  pocket-id:\n    image: ghcr.io\u002Fpocket-id\u002Fpocket-id:v2.18.0\n    container_name: pocket-id\n    restart: unless-stopped\n    ports:\n      - \"1411:1411\"\n    volumes:\n      - .\u002Fdata:\u002Fapp\u002Fdata\n    environment:\n      APP_URL: \"https:\u002F\u002Fauth.example.com\"\n      TRUST_PROXY: \"true\"\n```",{"title":68,"body":69},"Configurar el proxy inverso nginx","Crea el vhost nginx para `auth.example.com`:\n```nginx\nserver {\n    listen 443 ssl http2;\n    server_name auth.example.com;\n\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Fauth.example.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fauth.example.com\u002Fprivkey.pem;\n\n    proxy_buffer_size   256k;\n    proxy_buffers       4 512k;\n    proxy_busy_buffers_size 512k;\n\n    location \u002F {\n        proxy_pass         http:\u002F\u002F127.0.0.1:1411;\n        proxy_set_header   Host              $host;\n        proxy_set_header   X-Real-IP         $remote_addr;\n        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;\n        proxy_set_header   X-Forwarded-Proto $scheme;\n    }\n}\n```\n\nObtén el certificado con Certbot:\n```bash\ncertbot certonly --nginx -d auth.example.com\nnginx -t && systemctl reload nginx\n```",{"title":71,"body":72},"Iniciar el contenedor","Desde `\u002Fopt\u002Fpocket-id`:\n```bash\ndocker compose up -d\ndocker compose logs -f pocket-id\n```\n\nLa línea de log `Starting Pocket ID on :1411` confirma que el servidor está listo.",{"title":74,"body":75},"Crear la cuenta de administrador y registrar un passkey","En la primera visita, Pocket ID solicita crear la cuenta de administrador. Introduce tu correo electrónico y registra inmediatamente un passkey: ve a **Configuración → Passkeys → Añadir** y sigue las indicaciones del navegador.",{"title":77,"body":78},"Registrar tu primera aplicación OIDC","En la interfaz de administración, abre **Clientes OIDC → Nuevo cliente**. Rellena el nombre y la URL de callback. Pocket ID v2.18.0 crea automáticamente un `client_secret` — guárdalo inmediatamente.",{"title":80,"body":81},"Probar el flujo desde la aplicación cliente","En Gitea, ve a **Administración → Fuentes de autenticación → Añadir → OAuth2**. Selecciona `OpenID Connect`, introduce el `Client ID`, el `Client Secret` y la URL de descubrimiento `https:\u002F\u002Fauth.example.com\u002F.well-known\u002Fopenid-configuration`. Lanza un inicio de sesión de prueba para verificar el flujo completo.",{"type":36,"title":83,"body":84},"Configuración post-instalación","Tras la puesta en servicio inicial, algunos ajustes mejoran la robustez de la instancia.",{"type":86,"title":87,"body":88},"tip","Endurecimiento de la instancia","**Restringir los registros**: desactiva el registro público en **Configuración → General → Permitir registro** e invita a los usuarios individualmente.\n\n**Respaldar el volumen de datos**: toda la persistencia vive en `.\u002Fdata`. Un `rsync` diario a un almacenamiento externo es suficiente para una instancia pequeña.\n\n**Fijar la versión de la imagen**: el ejemplo usa `v2.18.0` explícitamente. No dejes `latest` en producción.\n\n**Limitar la exposición de red**: si Pocket ID solo necesita ser accesible desde la red interna del VPS, vincula el puerto 1411 a la interfaz loopback.",{"type":36,"title":90,"body":91},"Solución de problemas","Los errores más frecuentes al configurar Pocket ID siguen patrones bien identificados.",{"type":40,"title":93,"items":94},"Errores comunes y soluciones",[95,96,97,98,99],"**502 Bad Gateway en todas las páginas** — causa más frecuente: los buffers de nginx son demasiado pequeños para las cabeceras de respuesta OIDC de Pocket ID. Añade `proxy_buffer_size 256k`, `proxy_buffers 4 512k` y `proxy_busy_buffers_size 512k` en tu bloque `location \u002F` y recarga nginx.","**`redirect_uri_mismatch` durante el inicio de sesión** — la Callback URL declarada en Pocket ID no coincide exactamente con la enviada por la aplicación cliente. Verifica la barra diagonal final, el esquema `http` vs `https` y el número de puerto.","**`invalid_client` al intercambiar el código** — el `client_secret` enviado por la aplicación no coincide. En v2.18.0, Pocket ID crea un secreto automáticamente; si no lo guardaste, regénéralo desde el registro del cliente.","**Passkey rechazado: `NotAllowedError`** — el navegador no puede acceder a las APIs de WebAuthn sin HTTPS. Verifica que `APP_URL` esté configurado como `https:\u002F\u002F...` y que el certificado TLS sea válido.","**Las sesiones no se invalidan tras la revocación** — el back-channel logout requiere que la aplicación cliente declare una `Backchannel Logout URL`. Sin esta URL, Pocket ID no puede notificar a la aplicación; las sesiones existentes expirarán a su duración natural.",{"type":101,"title":102,"headers":103,"rows":109},"comparison","Pocket ID, Authentik, Keycloak, Authelia: cuál elegir",[104,105,106,107,108],"Criterio","Pocket ID 2.18","Authelia 4.39","Authentik 2026.8","Keycloak 26",[110,116,121,127,133,138,144],[111,112,113,114,115],"Protocolos IdP","OIDC\u002FOAuth2","OIDC\u002FOAuth2 (beta)","OIDC, SAML 2.0, LDAP, SCIM","OIDC, SAML 2.0, LDAP, Kerberos",[117,118,119,119,120],"Autenticación","Solo passkeys (FIDO2)","Contraseña + MFA, passkeys","Contraseña + MFA, OTP",[122,123,124,125,126],"RAM en reposo","\u003C 50 MB","~30 MB","200–400 MB","1–2 GB",[128,129,130,131,132],"Base de datos","SQLite integrado (o PostgreSQL)","Fichero YAML (o backend externo)","PostgreSQL requerido","PostgreSQL recomendado",[134,135,135,136,137],"Número de contenedores","1","3 (server, worker, PostgreSQL)","2 (Keycloak + base de datos)",[139,140,141,142,143],"Gestión de usuarios","Directorio integrado, invitación por email","Fichero YAML o proveedor externo","Directorio integrado, LDAP, proxy social","Directorio integrado, federación LDAP\u002FAD",[145,146,147,148,149],"Mejor para","Stack ligera, passkeys, IdP simple","Capa forward-auth frente a un proxy","SSO completo, SAML, flujos visuales","SSO empresarial, multi-tenant, cumplimiento",{"type":36,"title":151,"body":152},"Conclusión","Pocket ID v2.18.0 responde a una necesidad concreta: centralizar la autenticación de una stack de servicios autoalojados sin el coste operativo de Keycloak o Authentik. Un contenedor, SQLite, passkeys y menos de 50 MB de RAM en reposo. La v2.18.0 añade back-channel logout para invalidar sesiones en las aplicaciones en cuanto se revoca una cuenta, y restaura la creación automática del client secret.\n\nSi tu stack incluye aplicaciones que solo aceptan SAML, o necesitas federar un Active Directory, Authentik o Keycloak son más adecuados. Para todo lo demás — servicios web modernos en un VPS de 1 o 2 GB — Pocket ID te deja la RAM para el resto.\n\nConsulta también nuestras guías sobre \u003Ca href=\"\u002Fblog\u002Fself-host-authentik-vps\">Authentik\u003C\u002Fa> y \u003Ca href=\"\u002Fblog\u002Fkeycloak-sso-vps\">Keycloak\u003C\u002Fa> para elegir con toda la información.","Despliega tu proveedor OIDC en VPS","Un VPS de ServOrbit con Docker 24+ es todo lo que necesitas para ejecutar Pocket ID en producción. Un solo contenedor, IPv4 dedicada y tus aplicaciones protegidas sin ninguna dependencia en la nube.","Desplegar en VPS","\u002Fvps-cloud",[158,176,191],{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":167,"views":18,"isPinned":19,"publishedAt":168,"updatedAt":169,"category":170,"categories":171,"featuredImage":30,"bgImage":31,"posterImage":173,"relatedSolution":174},192,"alojar-authentik-en-un-vps",{"fr":162,"en":163,"ar":164,"es":160},"self-host-authentik-vps","self-host-authentik-on-a-vps-open-source-auth0-alternative","استضافة-authentik-على-vps-بديل-auth0-مفتوح-المصدر","Alojar Authentik en un VPS: alternativa a Auth0 OIDC\u002FSAML","Despliegue Authentik en un VPS ServOrbit: un IdP completo (OIDC, SAML 2.0, passkeys, flujos visuales) para unificar la autenticación de su stack self-hosted.",4,"2026-07-26T00:00:00+00:00","2026-09-11T11:34:11+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[172],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-authentik-vps-poster.svg",{"categorySlug":27,"appSlug":175},"authentik",{"id":177,"slug":178,"slugs":179,"title":183,"excerpt":184,"readTime":167,"views":18,"isPinned":19,"publishedAt":185,"updatedAt":186,"category":187,"categories":188,"featuredImage":30,"bgImage":31,"posterImage":190,"relatedSolution":30},112,"desplegar-keycloak-sso-en-un-vps",{"fr":180,"en":181,"ar":182,"es":178},"keycloak-sso-vps","deploy-keycloak-for-sso-on-your-vps","نشر-keycloak-لتسجيل-الدخول-الموحد-sso-على-خادمك-vps","Desplegar Keycloak para el SSO en su VPS","Despliegue Keycloak en su VPS para un SSO de nivel empresarial: OIDC, SAML, realms y federación. Guía Docker completa y comparativa.","2026-02-28T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[189],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fkeycloak-sso-vps-poster.svg",{"id":192,"slug":193,"slugs":194,"title":198,"excerpt":199,"readTime":200,"views":201,"isPinned":19,"publishedAt":202,"updatedAt":186,"category":203,"categories":204,"featuredImage":30,"bgImage":31,"posterImage":206,"relatedSolution":207},272,"authentik-authelia-o-keycloak-elegir-sso-en-vps",{"fr":195,"en":196,"ar":197,"es":193},"authentik-vs-authelia-keycloak-sso-vps-2026","authentik-authelia-or-keycloak-choosing-your-sso-on-vps","authentik-أو-authelia-أو-keycloak-اختيار-sso-على-vps","Authentik, Authelia o Keycloak: elegir su SSO en VPS","Authentik, Authelia o Keycloak en VPS: compare el consumo real de memoria, los protocolos cubiertos y las CVE de Keycloak 26.7.1 para elegir su SSO self-hosted.",6,1,"2026-08-16T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[205],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fauthentik-vs-authelia-keycloak-sso-vps-2026-poster.svg",{"categorySlug":208,"appSlug":175},"ciberseguridad-bastion",1792123642926]