Skip to main content
L’accesso SAML è gestito dal servizio web (il modulo authentication) all’interno di ogni pod di Ayakaleaf Pro. Non ha job in background né un pod separato. Configura l’identity provider (IdP) come descritto in Autenticazione SAML, quindi inserisci i valori e il certificato dell’IdP in Kubernetes come indicato di seguito.

Dove vengono eseguiti i componenti

Configurazione

1

Registra Overleaf presso l'IdP

La procedura guidata per goauthentik mostra dove si trovano.
2

Inserisci il certificato dell'IdP nel Secret overleaf-certs

Il Toolkit legge il certificato da data/overleaf/certs/. Su Kubernetes proviene dal Secret overleaf-certs, montato in /var/lib/overleaf/certs come descritto in Certificati e altri file:
Se il Secret esiste già, aggiungi invece il file a quello esistente: eliminalo e ricrealo con tutti i --from-file, oppure usa kubectl -n overleaf edit secret overleaf-certs.OVERLEAF_SAML_IDP_CERT accetta un percorso, o un elenco JSON di percorsi durante un rinnovo del certificato. Non accetta il testo PEM stesso.
3

Aggiungi le impostazioni alla ConfigMap

30-config.yaml (additions)
Ogni impostazione OVERLEAF_SAML_* è elencata in Variabili d’ambiente. Vanno tutte nella ConfigMap: nessuna è di per sé un segreto. I file di chiave (OVERLEAF_SAML_PRIVATE_KEY, OVERLEAF_SAML_DECRYPTION_PVK) vanno in overleaf-certs, e la ConfigMap ne contiene i percorsi.
Metti tra virgolette "true", "false" e i valori JSON come OVERLEAF_SAML_AUTHN_CONTEXT: '["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"]'. Un’impostazione che non è un valore booleano o JSON valido impedisce il caricamento della strategia SAML mentre il pod risulta comunque pronto; l’accesso tramite SAML quindi non riesce. Controlla web.log dopo ogni modifica, vedi le domande e risposte più sotto.
4

Applica e riavvia

Il certificato e le chiavi dell’IdP vengono letti all’avvio di web, quindi anche un nuovo certificato in overleaf-certs richiede questo riavvio.

Più repliche

L’IdP rimanda l’utente all’URL ACS con una POST cross-site. I browser non inviano con essa i cookie SameSite=Lax, quindi la richiesta non porta né il cookie di sessione di Overleaf né, in Chrome ed Edge, il cookie sticky del load balancer, e può arrivare a qualsiasi replica. Con le impostazioni predefinite questo non ha importanza: la replica che la riceve crea la sessione in Redis e da quel momento il load balancer mantiene l’utente su di essa.
Lascia OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO non impostato (il valore predefinito è never) quando esegui più repliche. Con always o ifPresent, ogni replica ricorda nella propria memoria le richieste che ha inviato all’IdP, e una risposta che arriva a un’altra replica viene rifiutata con “InResponseTo is not valid”: l’utente resta su /saml/login/callback. Nel nostro test con tre repliche e always, 12 dei 19 casi di test SAML sono falliti in questo modo, mentre tutti sono stati superati con il valore predefinito. Con una sola replica, gli accessi SAML vengono superati anche con always.

Testato su Kubernetes

Con goauthentik come IdP (binding HTTP-POST, asserzioni e risposte firmate), su Kubernetes 1.37 con tre repliche dietro HAProxy, i nostri test end-to-end per SAML vengono superati (19 casi): il primo amministratore dal launchpad che accede tramite SAML, l’accesso con il certificato dell’IdP da overleaf-certs, la creazione dell’account e un nuovo accesso, la mappatura degli amministratori per gruppo e senza mappatura, nome e flag di amministratore aggiornati a ogni accesso, il logout tramite l’IdP, le regole per le password degli account SAML e gli account sospesi. OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO è stato lasciato al valore predefinito.

Domande e risposte

Risposta: La strategia SAML non è stata caricata. Il pod diventa comunque pronto, quindi controlla il log di web di ciascun pod:
Cause comuni: OVERLEAF_SAML_IDP_CERT punta a un file che non si trova in overleaf-certs, un valore booleano diverso da "true" o "false", oppure un JSON non valido. Se EXTERNAL_AUTH elenca più metodi, un errore di questo tipo disattiva anche i metodi successivi a SAML (ldap, poi saml, poi oidc).
Risposta: Nessuno dei due, per l’accesso e il logout: l’IdP e Overleaf si scambiano messaggi solo attraverso il browser dell’utente. Solo se configuri l’IdP con un URL di metadati, questo scarica ${OVERLEAF_SITE_URL}/saml/meta.
Ultima modifica il 2 novembre 2026