authentication) dentro de cada pod de Ayakaleaf Pro. No tiene tareas en segundo plano ni un pod independiente. Configura el proveedor de identidad (IdP) como se indica en Autenticación SAML y, después, introduce los valores y el certificado del IdP en Kubernetes como se explica a continuación.
Dónde se ejecuta cada cosa
Configuración
1
Registra Overleaf en el IdP
La guía paso a paso de goauthentik muestra dónde se encuentran.
2
Guarda el certificado del IdP en el Secret overleaf-certs
El Toolkit lee el certificado de Si el Secret ya existe, añade el archivo a él: elimínalo y vuelve a crearlo con todos los
data/overleaf/certs/. En Kubernetes procede del Secret overleaf-certs, montado en /var/lib/overleaf/certs como se describe en Certificados y otros archivos:--from-file, o usa kubectl -n overleaf edit secret overleaf-certs.OVERLEAF_SAML_IDP_CERT admite una ruta, o una lista JSON de rutas durante una rotación de certificados. No admite el texto PEM en sí.3
Añade los ajustes al ConfigMap
30-config.yaml (additions)
OVERLEAF_SAML_* se enumeran en Variables de entorno. Todos van en el ConfigMap: ninguno es un secreto en sí. Los archivos de clave (OVERLEAF_SAML_PRIVATE_KEY, OVERLEAF_SAML_DECRYPTION_PVK) van en overleaf-certs, y el ConfigMap contiene sus rutas.4
Aplica y reinicia
overleaf-certs también requiere este reinicio.Varias réplicas
El IdP devuelve al usuario a la URL de ACS con unPOST entre sitios. Los navegadores no envían las cookies SameSite=Lax con él, por lo que la petición no lleva ni la cookie de sesión de Overleaf ni, en Chrome y Edge, la cookie de afinidad (sticky) del balanceador de carga, y puede llegar a cualquier réplica. Con los ajustes por defecto esto no importa: la réplica que la recibe crea la sesión en Redis y, a partir de ese momento, el balanceador de carga mantiene al usuario en ella.
Probado en Kubernetes
Con goauthentik como IdP (binding HTTP-POST, aserciones y respuestas firmadas), en Kubernetes 1.37 con tres réplicas detrás de HAProxy, nuestras pruebas de extremo a extremo para SAML se superan (19 casos): el primer administrador creado desde el launchpad iniciando sesión mediante SAML, el inicio de sesión con el certificado del IdP deoverleaf-certs, la creación de la cuenta y un nuevo inicio de sesión, la asignación de administrador por grupo y sin asignación, el nombre y el indicador de administrador actualizados en cada inicio de sesión, el cierre de sesión a través del IdP, las reglas de contraseña para cuentas SAML y las cuentas suspendidas. OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO se dejó con su valor por defecto.
Preguntas y respuestas
Al iniciar sesión mediante SAML aparece «Something went wrong» de inmediato
Al iniciar sesión mediante SAML aparece «Something went wrong» de inmediato
Respuesta: La estrategia SAML no se ha cargado. El pod llega igualmente a estar listo, así que revisa el log de web de cada pod:Causas habituales:
OVERLEAF_SAML_IDP_CERT apunta a un archivo que no está en overleaf-certs, un booleano que no es "true" ni "false", o JSON no válido. Si EXTERNAL_AUTH enumera varios métodos, un error así también desactiva los métodos posteriores a SAML (ldap, luego saml, luego oidc).¿El IdP necesita llegar a Overleaf, u Overleaf al IdP?
¿El IdP necesita llegar a Overleaf, u Overleaf al IdP?
Respuesta: Ninguno de los dos, para el inicio y el cierre de sesión: el IdP y Overleaf solo intercambian mensajes a través del navegador del usuario. Solo si configuras el IdP con una URL de metadatos, este descarga
${OVERLEAF_SITE_URL}/saml/meta.
