Skip to main content
El inicio de sesión con OIDC lo gestiona el servicio web (el módulo authentication) dentro de cada pod de Ayakaleaf Pro. No tiene tareas en segundo plano ni un pod independiente. La parte del proveedor (cliente, URI de redirección, claim de administrador) es la misma que en el Toolkit, así que configura primero tu proveedor de OpenID (OP) con Autenticación OIDC y, después, introduce los valores en Kubernetes como se explica a continuación.

Dónde se ejecuta cada cosa

Configuración

1

Registra Overleaf en el OP

Permite estas direcciones en tu OP, construidas a partir de OVERLEAF_SITE_URL:Busca las cinco URL en el documento de descubrimiento del OP como se describe en Encontrar los valores con el documento de descubrimiento.
2

Añade los ajustes al ConfigMap

Añade a overleaf-env (30-config.yaml, o 60-config.yaml para varias réplicas):
30-config.yaml (additions)
EXTERNAL_AUTH admite una lista separada por espacios, por ejemplo ldap oidc. Consulta Variables de entorno para ver todos los ajustes OVERLEAF_OIDC_*; todos van en el ConfigMap excepto el secreto del cliente.
Pon entre comillas "true" y "false": un ConfigMap solo contiene cadenas. Una clave con valor "" no es lo mismo que una clave ausente: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS: "" desactiva la creación de cuentas en el primer inicio de sesión, mientras que omitir la clave permite todos los dominios.
3

Guarda el secreto del cliente en el Secret

4

Confía en una CA privada (opcional)

Si el certificado del OP lo emite tu propia CA, añade la CA al Secret overleaf-certs montado en /var/lib/overleaf/certs (consulta Certificados y otros archivos) y haz que Node.js apunte a ella:
5

Aplica y reinicia

Después, comprueba que todos los pods llegan al endpoint de token. Son los pods quienes lo llaman, no el navegador, así que un problema de firewall o de DNS solo se manifiesta aquí:
Cualquier código de estado HTTP (405 para un GET) significa que el endpoint es accesible; 000 significa que no lo es.

Varias réplicas

No hace falta nada más. El valor state de un inicio de sesión y el token de ID usado para cerrar sesión se guardan en la sesión, que reside en Redis, por lo que el callback funciona en cualquier réplica que lo reciba.

Probado en Kubernetes

Con goauthentik como OP, en Kubernetes 1.37 con tres réplicas detrás de HAProxy, nuestras pruebas de extremo a extremo para OIDC se superan (35 casos): el inicio de sesión y el cierre de sesión a través del OP; la asignación de administrador por grupo, por correo electrónico y por un valor único, y sin asignación; el nombre y el indicador de administrador actualizados en cada inicio de sesión; la vinculación y desvinculación de cuentas; el restablecimiento y el cambio de contraseña de cuentas OIDC; las cuentas suspendidas; OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS; OVERLEAF_DISABLE_LOCAL_LOGIN; y OIDC junto con el acceso público.

Preguntas y respuestas

Respuesta: El navegador no devolvió la cookie de sesión con el callback. En Kubernetes, las causas habituales son:
  • OVERLEAF_SECURE_COOKIE está definido, pero los usuarios abren el sitio por HTTP sin cifrar, así que el navegador nunca guarda la cookie. Cualquier valor de OVERLEAF_SECURE_COOKIE, incluso "false", activa las cookies seguras; en su lugar, elimina la clave.
  • El sitio se abre con una dirección distinta de OVERLEAF_SITE_URL.
  • Detrás de HTTPS, tu ingress o balanceador de carga no envía X-Forwarded-Proto: https, o su dirección no figura en OVERLEAF_TRUSTED_PROXY_IPS.
Respuesta: En el log de web del pod que atendió la petición, no en kubectl logs:
Con varias réplicas, revisa cada overleaf-N.
Última modificación el 2 de noviembre de 2026