authentication) à l’intérieur de chaque pod Ayakaleaf Pro. Elle n’a ni tâche d’arrière-plan ni pod distinct. Configurez le fournisseur d’identité (IdP) comme décrit dans Authentification SAML, puis reportez les valeurs et le certificat de l’IdP dans Kubernetes comme ci-dessous.
Où les composants s’exécutent
Configuration
1
Enregistrer Overleaf auprès de l'IdP
Le guide pas à pas goauthentik montre où se trouvent ces paramètres.
2
Placer le certificat de l'IdP dans le Secret overleaf-certs
Le Toolkit lit le certificat depuis Si le Secret existe déjà, ajoutez-y plutôt le fichier : supprimez-le et recréez-le avec chaque
data/overleaf/certs/. Sur Kubernetes, il provient du Secret overleaf-certs, monté sur /var/lib/overleaf/certs comme décrit dans Certificats et autres fichiers :--from-file, ou utilisez kubectl -n overleaf edit secret overleaf-certs.OVERLEAF_SAML_IDP_CERT accepte un chemin, ou une liste JSON de chemins lors d’un renouvellement de certificat. Il n’accepte pas le texte PEM lui-même.3
Ajouter les paramètres à la ConfigMap
30-config.yaml (additions)
OVERLEAF_SAML_* sont répertoriés dans Variables d’environnement. Ils vont tous dans la ConfigMap : aucun n’est lui-même un secret. Les fichiers de clé (OVERLEAF_SAML_PRIVATE_KEY, OVERLEAF_SAML_DECRYPTION_PVK) vont dans overleaf-certs, et la ConfigMap contient leurs chemins.4
Appliquer et redémarrer
overleaf-certs nécessite donc également ce redémarrage.Plusieurs réplicas
L’IdP renvoie l’utilisateur vers l’URL ACS avec unPOST intersite. Les navigateurs n’envoient pas les cookies SameSite=Lax avec celui-ci ; la requête ne transporte donc ni le cookie de session d’Overleaf ni, dans Chrome et Edge, le cookie d’affinité (sticky) du répartiteur de charge, et elle peut arriver sur n’importe quel réplica. Avec les paramètres par défaut, cela n’a pas d’importance : le réplica qui la reçoit crée la session dans Redis et le répartiteur de charge maintient ensuite l’utilisateur sur ce réplica.
Testé sur Kubernetes
Avec goauthentik comme IdP (liaison HTTP-POST, assertions et réponses signées), sur Kubernetes 1.37 avec trois réplicas derrière HAProxy, nos tests de bout en bout pour SAML réussissent (19 cas) : le premier administrateur créé depuis le launchpad se connectant via SAML, la connexion avec le certificat de l’IdP issu deoverleaf-certs, la création de compte et la reconnexion, l’attribution du rôle d’administrateur par groupe et sans correspondance, la mise à jour du nom et du statut d’administrateur à chaque connexion, la déconnexion via l’IdP, les règles de mot de passe pour les comptes SAML, et les comptes suspendus. OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO a été laissé à sa valeur par défaut.
Questions-réponses
La connexion via SAML affiche immédiatement « Something went wrong »
La connexion via SAML affiche immédiatement « Something went wrong »
Réponse : La stratégie SAML n’a pas pu être chargée. Le pod devient tout de même prêt ; consultez donc le journal web de chaque pod :Causes fréquentes :
OVERLEAF_SAML_IDP_CERT pointe vers un fichier absent de overleaf-certs, un booléen qui n’est ni "true" ni "false", ou un JSON invalide. Lorsque EXTERNAL_AUTH liste plusieurs méthodes, une telle erreur désactive également les méthodes qui suivent SAML (ldap, puis saml, puis oidc).L'IdP doit-il atteindre Overleaf, ou Overleaf l'IdP ?
L'IdP doit-il atteindre Overleaf, ou Overleaf l'IdP ?
Réponse : Ni l’un ni l’autre, pour la connexion et la déconnexion : l’IdP et Overleaf n’échangent des messages que par l’intermédiaire du navigateur de l’utilisateur. C’est uniquement si vous configurez l’IdP avec une URL de métadonnées qu’il télécharge
${OVERLEAF_SITE_URL}/saml/meta.
