En interne, le module OIDC d’Overleaf utilise la bibliothèque passport-openidconnect. Si vous rencontrez des difficultés pour configurer OpenID Connect, il est utile de lire le README de passport-openidconnect pour vous faire une idée de la configuration attendue.La variable d’environnement EXTERNAL_AUTH est requise pour activer le module d’authentification OIDC. Cette variable d’environnement indique quelles méthodes d’authentification externes sont activées. Sa valeur est une liste. Si la liste contient oidc, l’authentification OIDC sera activée.Par exemple : EXTERNAL_AUTH=ldap oidcAvec la méthode d’authentification OIDC, l’utilisateur est redirigé vers le site d’authentification du fournisseur d’identité (IdP). Si l’IdP authentifie l’utilisateur avec succès, la base de données des utilisateurs Overleaf est consultée à la recherche d’un enregistrement contenant un champ thirdPartyIdentifiers structuré comme suit :
externalUserId doit correspondre à l’identifiant utilisateur présent dans le profil renvoyé par le serveur IdP (voir la variable d’environnement OVERLEAF_OIDC_USER_ID_FIELD), et providerId doit correspondre à l’identifiant du fournisseur OIDC (voir OVERLEAF_OIDC_PROVIDER_ID).Si aucun enregistrement correspondant n’est trouvé, la base de données est parcourue à la recherche d’un utilisateur dont l’adresse e-mail principale correspond à l’e-mail du profil utilisateur de l’IdP :
Si un tel utilisateur est trouvé, le champ thirdPartyIdentifiers est mis à jour.
Si aucun utilisateur correspondant n’est trouvé et que la création de compte JIT n’est pas désactivée, un nouvel utilisateur est créé avec l’adresse e-mail et les thirdPartyIdentifiers issus du profil de l’IdP.
Dans les deux cas, on dit que l’utilisateur est « lié » à l’utilisateur OIDC externe. L’utilisateur peut être dissocié du fournisseur OIDC sur la page /user/settings.
Trouver les valeurs à l’aide du document de découverte
Chaque fournisseur OpenID (OP) publie un document de découverte à l’adresse <issuer>/.well-known/openid-configuration. Copiez-en les valeurs au lieu de les saisir à la main ; un seul caractère erroné suffit à empêcher la connexion.
1
Trouver l'URL de découverte
Votre OP l’affiche sur la page du client (fournisseur) que vous avez créé pour Overleaf. Dans Authentik, ouvrez Applications > Providers, sélectionnez le fournisseur et repérez OpenID Configuration URL et OpenID Configuration Issuer :
Authentik : l'URL de découverte et l'émetteur d'un fournisseur (instance de test)
Overleaf appelle les points de terminaison token et userinfo depuis son conteneur ; l’OP doit donc être joignable depuis celui-ci, et pas seulement depuis votre navigateur :
Copiez issuer exactement, y compris la barre oblique finale. Overleaf le compare caractère par caractère avec l’émetteur du jeton d’identité ; toute différence fait échouer chaque connexion OIDC avec :{"message":{"message":"ID token not issued by expected OpenID provider."}}Dans Authentik, l’émetteur appartient à l’application (.../application/o/<application-slug>/). Ce n’est pas l’adresse du serveur Authentik, bien que les URL authorize, token et userinfo soient partagées par toutes les applications.
Les valeurs des cinq variables obligatoires suivantes se trouvent via le point de terminaison .well-known/openid-configuration de votre fournisseur OpenID (OP), voir ci-dessus.
OVERLEAF_OIDC_ISSUER(obligatoire)
OVERLEAF_OIDC_AUTHORIZATION_URL(obligatoire)
OVERLEAF_OIDC_TOKEN_URL(obligatoire)
OVERLEAF_OIDC_USER_INFO_URL(obligatoire)
OVERLEAF_OIDC_LOGOUT_URL(obligatoire)
Les valeurs des deux variables obligatoires suivantes vous seront fournies par l’administrateur de votre OP
OVERLEAF_OIDC_CLIENT_ID(obligatoire)
OVERLEAF_OIDC_CLIENT_SECRET(obligatoire)
OVERLEAF_OIDC_SCOPE
Par défaut : openid profile email
OVERLEAF_OIDC_PROVIDER_ID
Identifiant arbitraire de l’OP, par défaut oidc.
OVERLEAF_OIDC_PROVIDER_NAME
Nom de l’OP, utilisé dans la section Linked Accounts de la page /user/settings, par défaut OIDC Provider.
OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
Nom d’affichage du service d’identité, utilisé sur la page de connexion (par défaut : Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_DESCRIPTION
Description de l’OP, utilisée dans la section Linked Accounts (par défaut : Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_INFO_LINK
URL Learn more dans la description de l’OP ; par défaut, aucun lien Learn more dans la description.
OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
Ne pas afficher l’OP sur la page /user/settings si le compte de l’utilisateur n’est pas lié à l’OP, par défaut false.
OVERLEAF_OIDC_USER_ID_FIELD
La valeur de cet attribut sera utilisée par Overleaf comme identifiant utilisateur externe, par défaut id. D’autres valeurs raisonnables possibles sont email et username (correspondant à la claim OIDC preferred_username).
OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
Restreint la création de compte Just-in-Time (JIT) pour les utilisateurs s’authentifiant via OIDC. Si elle est définie comme une liste de noms de domaine séparés par des virgules, un nouveau compte ne sera créé que si le domaine de l’adresse e-mail de l’utilisateur correspond à l’un des domaines listés. Si le domaine ne correspond pas, un administrateur doit créer manuellement le compte utilisateur avec l’adresse e-mail de l’utilisateur OIDC, soit avec un mot de passe aléatoire robuste, soit, de préférence, sans aucun champ hashedPassword. Les noms de domaine peuvent commencer par le joker *. pour inclure les sous-domaines.
Exemple : pour autoriser la création de compte JIT pour les utilisateurs ayant une adresse e-mail comme name@example.com et name@math.example.com : OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
Exemple : pour désactiver complètement la création de compte JIT : OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN
Si elle vaut true, met à jour les champs first_name et last_name de l’utilisateur à la connexion, et désactive le formulaire des informations utilisateur sur la page /user/settings.
OVERLEAF_OIDC_IS_ADMIN_FIELD et OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
Lorsque ces deux variables d’environnement sont définies, le processus de connexion met à jour user.isAdmin = true si le profil renvoyé par l’OP contient l’attribut indiqué par OVERLEAF_OIDC_IS_ADMIN_FIELD et que sa valeur correspond à OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE ou est un tableau contenant OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE (par exemple le claim groups) ; sinon, user.isAdmin est défini à false. Si OVERLEAF_OIDC_IS_ADMIN_FIELD vaut email, la valeur de l’attribut emails[0].value est utilisée pour la vérification.
L’URL de redirection pour votre fournisseur OpenID est https://my-overleaf-instance.com/oidc/login/callback.
Exemple de fichier variables.env
variables.env
OVERLEAF_APP_NAME="Our Overleaf Instance"ENABLED_LINKED_FILE_TYPES=project_file,project_output_file,url# Enables Thumbnail generation using ImageMagickENABLE_CONVERSIONS=true# Disables email confirmation requirementEMAIL_CONFIRMATION_DISABLED=true## Nginx# NGINX_WORKER_PROCESSES=4# NGINX_WORKER_CONNECTIONS=768## Set for TLS via nginx-proxy# OVERLEAF_BEHIND_PROXY=true# OVERLEAF_SECURE_COOKIE=trueOVERLEAF_SITE_URL=http://my-overleaf-instance.comOVERLEAF_NAV_TITLE=Our Overleaf Instance# OVERLEAF_HEADER_IMAGE_URL=http://somewhere.com/mylogo.pngOVERLEAF_ADMIN_EMAIL=support@example.comOVERLEAF_LEFT_FOOTER=[{"text": "Contact your support team", "url": "mailto:support@example.com"}]OVERLEAF_RIGHT_FOOTER=[{"text":"Hello, I am on the Right", "url":"https://github.com/yu-i-i/overleaf-cep"}]OVERLEAF_EMAIL_FROM_ADDRESS=team@example.comOVERLEAF_EMAIL_SMTP_HOST=smtp.example.comOVERLEAF_EMAIL_SMTP_PORT=587OVERLEAF_EMAIL_SMTP_SECURE=false# OVERLEAF_EMAIL_SMTP_USER=# OVERLEAF_EMAIL_SMTP_PASS=# OVERLEAF_EMAIL_SMTP_NAME=OVERLEAF_EMAIL_SMTP_LOGGER=falseOVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH=trueOVERLEAF_EMAIL_SMTP_IGNORE_TLS=falseOVERLEAF_CUSTOM_EMAIL_FOOTER=This system is run by department xOVERLEAF_PROXY_LEARN=trueNAV_HIDE_POWERED_BY=true################### OIDC for CE ###################EXTERNAL_AUTH=oidcOVERLEAF_OIDC_PROVIDER_ID=oidcOVERLEAF_OIDC_ISSUER=https://keycloak.provider.com/realms/exampleOVERLEAF_OIDC_AUTHORIZATION_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/authOVERLEAF_OIDC_TOKEN_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/tokenOVERLEAF_OIDC_USER_INFO_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/userinfoOVERLEAF_OIDC_LOGOUT_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/logoutOVERLEAF_OIDC_CLIENT_ID=Overleaf-OIDCOVERLEAF_OIDC_CLIENT_SECRET=DoNotUseThisATGgaAcTgCcATgGATTACAagGtTCaGcGTAGOVERLEAF_OIDC_IDENTITY_SERVICE_NAME='Log in with Keycloak OIDC Provider'OVERLEAF_OIDC_PROVIDER_NAME=OIDC Keycloak ProviderOVERLEAF_OIDC_PROVIDER_INFO_LINK=https://openid.netOVERLEAF_OIDC_IS_ADMIN_FIELD=emailOVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE=overleaf.admin@example.comOVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN=false
Ce guide décrit une configuration testée avec goauthentik. Remplacez https://overleaf.example.com par votre OVERLEAF_SITE_URL et https://authentik.example.com par l’adresse de votre Authentik.
1
Créer le fournisseur
Dans Authentik, ouvrez Applications > Providers, cliquez sur New Provider, choisissez OAuth2/OpenID Provider puis cliquez sur Next.
Client Type : Confidential.
Redirect URIs (sous Protocol settings) : ajoutez https://overleaf.example.com/oidc/login/callback avec le mode de correspondance Strict.
Copiez dès maintenant Client ID et Client Secret dans OVERLEAF_OIDC_CLIENT_ID et OVERLEAF_OIDC_CLIENT_SECRET.
Authentik : Client ID et Client Secret d'un nouveau fournisseur
Authentik n’affiche le secret client que pendant la création du fournisseur. Par la suite, le formulaire de modification ne propose que Modify, qui remplace le secret par un nouveau.
2
Créer l'application
Ouvrez Applications > Applications, créez une nouvelle application, donnez-lui un nom et un slug, par exemple overleaf, puis sélectionnez le fournisseur. Le slug fait partie de l’émetteur : https://authentik.example.com/application/o/overleaf/.
Authentik envoie les groupes de l’utilisateur dans le claim groups, sous forme de tableau. Pour que les membres du groupe Authentik Admins deviennent administrateurs d’Overleaf :
L’indicateur d’administrateur est mis à jour à chaque connexion OIDC. Avec un champ ou une valeur incorrects, tout administrateur qui se connecte via OIDC perd ses droits d’administrateur, y compris l’administrateur créé dans le launchpad. Testez d’abord l’association avec un second compte administrateur.
Fichier variables.env testé pour goauthentik
variables.env
EXTERNAL_AUTH=oidcOVERLEAF_OIDC_PROVIDER_ID=authentikOVERLEAF_OIDC_IDENTITY_SERVICE_NAME=Log in with AuthentikOVERLEAF_OIDC_ISSUER=https://authentik.example.com/application/o/overleaf/OVERLEAF_OIDC_AUTHORIZATION_URL=https://authentik.example.com/application/o/authorize/OVERLEAF_OIDC_TOKEN_URL=https://authentik.example.com/application/o/token/OVERLEAF_OIDC_USER_INFO_URL=https://authentik.example.com/application/o/userinfo/OVERLEAF_OIDC_LOGOUT_URL=https://authentik.example.com/application/o/overleaf/end-session/OVERLEAF_OIDC_CLIENT_ID=<Client ID>OVERLEAF_OIDC_CLIENT_SECRET=<Client Secret>OVERLEAF_OIDC_USER_ID_FIELD=usernameOVERLEAF_OIDC_IS_ADMIN_FIELD=groupsOVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE=AdminsOVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN=true
Dernière modification le 6 octobre 2026
Cette page vous a-t-elle été utile ?
Assistant
Responses are generated using AI and may contain mistakes.