Skip to main content
La connexion OIDC est gérée par le service web (le module authentication) à l’intérieur de chaque pod Ayakaleaf Pro. Elle n’a ni tâche d’arrière-plan ni pod distinct. Le côté fournisseur (client, URI de redirection, claim d’administrateur) est identique à celui du Toolkit ; configurez donc d’abord votre fournisseur OpenID (OP) avec Authentification OIDC, puis reportez les valeurs dans Kubernetes comme ci-dessous.

Où les composants s’exécutent

Configuration

1

Enregistrer Overleaf auprès de l'OP

Autorisez dans votre OP ces adresses, construites à partir de OVERLEAF_SITE_URL :Trouvez les cinq URL dans le document de découverte de l’OP comme décrit dans Trouver les valeurs avec le document de découverte.
2

Ajouter les paramètres à la ConfigMap

Ajoutez à overleaf-env (30-config.yaml, ou 60-config.yaml pour plusieurs réplicas) :
30-config.yaml (additions)
EXTERNAL_AUTH accepte une liste séparée par des espaces, par exemple ldap oidc. Consultez Variables d’environnement pour tous les paramètres OVERLEAF_OIDC_* ; ils vont tous dans la ConfigMap, à l’exception du secret client.
Mettez "true" et "false" entre guillemets : une ConfigMap ne contient que des chaînes. Une clé définie à "" n’équivaut pas à une clé absente : OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS: "" désactive la création de compte lors de la première connexion, alors qu’omettre la clé autorise tous les domaines.
3

Placer le secret client dans le Secret

4

Faire confiance à une CA privée (facultatif)

Si le certificat de l’OP provient de votre propre CA, ajoutez la CA au Secret overleaf-certs monté sur /var/lib/overleaf/certs (voir Certificats et autres fichiers) et indiquez-la à Node.js :
5

Appliquer et redémarrer

Vérifiez ensuite que chaque pod atteint le point de terminaison token. Ce sont les pods qui l’appellent, et non le navigateur ; un problème de pare-feu ou de DNS n’apparaît donc qu’ici :
N’importe quel code HTTP (405 pour un GET) signifie que le point de terminaison est joignable ; 000 signifie qu’il ne l’est pas.

Plusieurs réplicas

Rien de plus. La valeur state d’une connexion et le jeton d’identité utilisé pour la déconnexion sont conservés dans la session, stockée dans Redis ; le callback fonctionne donc quel que soit le réplica qui le reçoit.

Testé sur Kubernetes

Avec goauthentik comme OP, sur Kubernetes 1.37 avec trois réplicas derrière HAProxy, nos tests de bout en bout pour OIDC réussissent (35 cas) : la connexion, et la déconnexion via l’OP ; l’attribution du rôle d’administrateur par groupe, par e-mail et par valeur unique, et sans correspondance ; la mise à jour du nom et du statut d’administrateur à chaque connexion ; la liaison et la dissociation de comptes ; la réinitialisation et la modification du mot de passe des comptes OIDC ; les comptes suspendus ; OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS ; OVERLEAF_DISABLE_LOCAL_LOGIN ; et OIDC combiné à l’accès public.

Questions-réponses

Réponse : Le navigateur n’a pas renvoyé le cookie de session avec le callback. Sur Kubernetes, les causes habituelles sont :
  • OVERLEAF_SECURE_COOKIE est défini, mais les utilisateurs ouvrent le site en HTTP simple, si bien que le navigateur n’enregistre jamais le cookie. Toute valeur de OVERLEAF_SECURE_COOKIE, même "false", active les cookies sécurisés ; supprimez plutôt la clé.
  • Le site est ouvert sous une autre adresse que OVERLEAF_SITE_URL.
  • Derrière HTTPS, votre ingress ou votre répartiteur de charge n’envoie pas X-Forwarded-Proto: https, ou son adresse est absente de OVERLEAF_TRUSTED_PROXY_IPS.
Réponse : Dans le journal web du pod qui a traité la requête, et non dans kubectl logs :
Avec plusieurs réplicas, vérifiez chaque overleaf-N.
Dernière modification le 2 novembre 2026