Skip to main content
Esta funcionalidad ha sido desarrollada por yu-i-i/overleaf-cep. Aquí ofrecemos documentación para tu configuración.

Configuración

Internamente, el módulo OIDC de Overleaf utiliza la biblioteca passport-openidconnect. Si tienes problemas para configurar OpenID Connect, vale la pena leer el README de passport-openidconnect para hacerte una idea de la configuración que espera. La variable de entorno EXTERNAL_AUTH es necesaria para habilitar el módulo de autenticación OIDC. Esta variable de entorno especifica qué métodos de autenticación externa se activan. Su valor es una lista. Si la lista incluye oidc, se activará la autenticación OIDC. Por ejemplo: EXTERNAL_AUTH=ldap oidc Al utilizar el método de autenticación OIDC, el usuario es redirigido al sitio de autenticación del proveedor de identidad (IdP). Si el IdP autentica correctamente al usuario, se busca en la base de datos de usuarios de Overleaf un registro que contenga un campo thirdPartyIdentifiers con la siguiente estructura:
El externalUserId debe coincidir con el ID de usuario del perfil devuelto por el servidor del IdP (consulta la variable de entorno OVERLEAF_OIDC_USER_ID_FIELD), y providerId debe coincidir con el ID del proveedor OIDC (consulta OVERLEAF_OIDC_PROVIDER_ID). Si no se encuentra ningún registro coincidente, se busca en la base de datos un usuario cuya dirección de correo electrónico principal coincida con el correo del perfil de usuario del IdP:
  • Si se encuentra dicho usuario, se actualiza el campo thirdPartyIdentifiers.
  • Si no se encuentra ningún usuario coincidente y la creación de cuentas JIT no está deshabilitada, se crea un nuevo usuario con la dirección de correo electrónico y los thirdPartyIdentifiers del perfil del IdP.
En ambos casos, se dice que el usuario está “vinculado” al usuario OIDC externo. El usuario puede desvincularse del proveedor OIDC en la página /user/settings.

Encontrar los valores con el documento de descubrimiento

Todo proveedor de OpenID (OP) publica un documento de descubrimiento en <issuer>/.well-known/openid-configuration. Copia los valores de ahí en lugar de escribirlos a mano; basta un carácter incorrecto para que el inicio de sesión falle.
1

Encontrar la URL de descubrimiento

Tu OP la muestra en la página del cliente (proveedor) que creaste para Overleaf. En Authentik, abre Applications > Providers, selecciona el proveedor y busca OpenID Configuration URL y OpenID Configuration Issuer:

Authentik: la URL de descubrimiento y el emisor de un proveedor (instancia de prueba)

La URL suele tener este aspecto:
  • Keycloak: https://keycloak.example.com/realms/<realm>/.well-known/openid-configuration
  • Authentik: https://authentik.example.com/application/o/<application-slug>/.well-known/openid-configuration
2

Leer los valores

Abre la URL en un navegador o ejecuta en el servidor de Overleaf:
La respuesta de Authentik tiene este aspecto:
Authentik también muestra estas URL más abajo en la página del proveedor:

Authentik: los endpoints de un proveedor (instancia de prueba)

3

Copiarlos en variables.env

4

Comprobar que Overleaf puede acceder al OP

Overleaf llama a los endpoints de token y userinfo desde dentro de su contenedor, por lo que el OP debe ser accesible desde ahí, no solo desde tu navegador:
Debería mostrar 200.
Copia issuer exactamente, incluida la barra final. Overleaf lo compara carácter por carácter con el emisor del token de ID; cualquier diferencia hace que todos los inicios de sesión OIDC fallen con:{"message":{"message":"ID token not issued by expected OpenID provider."}}En Authentik, el emisor pertenece a la aplicación (.../application/o/<application-slug>/). No es la dirección del servidor de Authentik, aunque las URL de authorize, token y userinfo son compartidas por todas las aplicaciones.

Variables de entorno

Los valores de las siguientes cinco variables obligatorias pueden obtenerse a través del endpoint .well-known/openid-configuration de tu proveedor de OpenID (OP); consulta la sección anterior.
  • OVERLEAF_OIDC_ISSUER (obligatoria)
  • OVERLEAF_OIDC_AUTHORIZATION_URL (obligatoria)
  • OVERLEAF_OIDC_TOKEN_URL (obligatoria)
  • OVERLEAF_OIDC_USER_INFO_URL (obligatoria)
  • OVERLEAF_OIDC_LOGOUT_URL (obligatoria)
Los valores de las siguientes dos variables obligatorias te los proporcionará el administrador de tu OP
  • OVERLEAF_OIDC_CLIENT_ID (obligatoria)
  • OVERLEAF_OIDC_CLIENT_SECRET (obligatoria)
  • OVERLEAF_OIDC_SCOPE
    • Valor predeterminado: openid profile email
  • OVERLEAF_OIDC_PROVIDER_ID
    • ID arbitrario del OP; por defecto, oidc.
  • OVERLEAF_OIDC_PROVIDER_NAME
    • El nombre del OP, que se usa en la sección Linked Accounts de la página /user/settings; por defecto, OIDC Provider.
  • OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
    • Nombre visible del servicio de identidad, que se usa en la página de inicio de sesión (por defecto: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
  • OVERLEAF_OIDC_PROVIDER_DESCRIPTION
    • Descripción del OP, que se usa en la sección Linked Accounts (por defecto: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
  • OVERLEAF_OIDC_PROVIDER_INFO_LINK
    • URL de Learn more en la descripción del OP; por defecto, la descripción no incluye ningún enlace Learn more.
  • OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
    • No mostrar el OP en la página /user/settings si la cuenta del usuario no está vinculada con el OP; por defecto, false.
  • OVERLEAF_OIDC_USER_ID_FIELD
    • Overleaf usará el valor de este atributo como ID de usuario externo; por defecto, id. Otros valores razonables posibles son email y username (correspondiente al claim OIDC preferred_username).
  • OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
    • Restringe la creación de cuentas Just-in-Time (JIT) para los usuarios que se autentican mediante OIDC. Si se establece en una lista de nombres de dominio separados por comas, solo se creará una cuenta nueva si el dominio de la dirección de correo electrónico del usuario coincide con uno de los dominios de la lista. Si el dominio no coincide, un administrador debe crear manualmente la cuenta de usuario con la dirección de correo electrónico del usuario OIDC, ya sea con una contraseña aleatoria segura o, preferiblemente, sin el campo hashedPassword. Los nombres de dominio pueden incluir un comodín *. inicial para coincidir con subdominios.
      • Ejemplo: para permitir la creación de cuentas JIT a usuarios con direcciones de correo como name@example.com y name@math.example.com:
        OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
      • Ejemplo: para deshabilitar por completo la creación de cuentas JIT:
        OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
  • OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN
    • Si se establece en true, actualiza los campos first_name y last_name del usuario al iniciar sesión y deshabilita el formulario de datos del usuario en la página /user/settings.
  • OVERLEAF_OIDC_IS_ADMIN_FIELD y OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
    • Cuando ambas variables de entorno están definidas, el proceso de inicio de sesión establece user.isAdmin = true si el perfil devuelto por el OP contiene el atributo especificado en OVERLEAF_OIDC_IS_ADMIN_FIELD y su valor coincide con OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE o es un array que contiene OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE (por ejemplo, el claim groups); en caso contrario, user.isAdmin se establece en false. Si OVERLEAF_OIDC_IS_ADMIN_FIELD es email, se utiliza el valor del atributo emails[0].value para la comprobación.
La URL de redirección para tu proveedor de OpenID es https://my-overleaf-instance.com/oidc/login/callback.
variables.env

Paso a paso: goauthentik

Esta guía describe una configuración probada con goauthentik. Sustituye https://overleaf.example.com por tu OVERLEAF_SITE_URL y https://authentik.example.com por la dirección de tu Authentik.
1

Crear el proveedor

En Authentik, abre Applications > Providers, haz clic en New Provider, elige OAuth2/OpenID Provider y haz clic en Next.
  • Client Type: Confidential.
  • Redirect URIs (en Protocol settings): añade https://overleaf.example.com/oidc/login/callback con el modo de coincidencia Strict.
  • Copia ahora Client ID y Client Secret en OVERLEAF_OIDC_CLIENT_ID y OVERLEAF_OIDC_CLIENT_SECRET.

Authentik: Client ID y Client Secret de un nuevo proveedor

Authentik solo muestra el secreto del cliente mientras creas el proveedor. Más adelante, el formulario de edición solo ofrece Modify, que sustituye el secreto por uno nuevo.
2

Crear la aplicación

Abre Applications > Applications, crea una nueva aplicación, asígnale un nombre y un slug, por ejemplo overleaf, y selecciona el proveedor. El slug pasa a formar parte del emisor: https://authentik.example.com/application/o/overleaf/.
3

Copiar las URL

Sigue la sección Encontrar los valores con el documento de descubrimiento anterior para rellenar las cinco URL.
4

Asignar los administradores (opcional)

Authentik envía los grupos del usuario en el claim groups, que es un array. Para que los miembros del grupo Admins de Authentik sean administradores de Overleaf:
El indicador de administrador se actualiza en cada inicio de sesión OIDC. Con un campo o un valor incorrecto, todos los administradores que inicien sesión mediante OIDC pierden los derechos de administrador, incluido el administrador creado en el launchpad. Prueba primero la asignación con una segunda cuenta de administrador.
variables.env
Última modificación el 6 de octubre de 2026