Skip to main content
Questa funzionalità è sviluppata da yu-i-i/overleaf-cep. Qui ti offriamo della documentazione per la configurazione.

Configurazione

Internamente, il modulo OIDC di Overleaf utilizza la libreria passport-openidconnect. Se riscontri problemi nella configurazione di OpenID Connect, vale la pena leggere il README di passport-openidconnect per farti un’idea della configurazione che si aspetta. La variabile d’ambiente EXTERNAL_AUTH è necessaria per abilitare il modulo di autenticazione OIDC. Questa variabile d’ambiente specifica quali metodi di autenticazione esterna sono attivati. Il valore di questa variabile è un elenco. Se l’elenco include oidc, l’autenticazione OIDC verrà attivata. Ad esempio: EXTERNAL_AUTH=ldap oidc Quando si utilizza il metodo di autenticazione OIDC, l’utente viene reindirizzato al sito di autenticazione dell’Identity Provider (IdP). Se l’IdP autentica correttamente l’utente, nel database degli utenti di Overleaf viene cercato un record contenente un campo thirdPartyIdentifiers strutturato come segue:
externalUserId deve corrispondere all’ID utente nel profilo restituito dal server IdP (vedi la variabile d’ambiente OVERLEAF_OIDC_USER_ID_FIELD) e providerId deve corrispondere all’ID del provider OIDC (vedi OVERLEAF_OIDC_PROVIDER_ID). Se non viene trovato alcun record corrispondente, nel database viene cercato un utente il cui indirizzo email principale corrisponda all’email presente nel profilo utente dell’IdP:
  • Se viene trovato un utente di questo tipo, il campo thirdPartyIdentifiers viene aggiornato.
  • Se non viene trovato alcun utente corrispondente e la creazione degli account JIT non è disabilitata, viene creato un nuovo utente con l’indirizzo email e i thirdPartyIdentifiers del profilo IdP.
In entrambi i casi, si dice che l’utente è ‘collegato’ all’utente OIDC esterno. L’utente può essere scollegato dal provider OIDC nella pagina /user/settings.

Trovare i valori con il documento di discovery

Ogni OpenID Provider (OP) pubblica un documento di discovery all’indirizzo <issuer>/.well-known/openid-configuration. Copia i valori da lì invece di digitarli a mano; basta un carattere sbagliato per compromettere l’accesso.
1

Trova l'URL di discovery

Il tuo OP lo mostra nella pagina del client (provider) che hai creato per Overleaf. In Authentik, apri Applications > Providers, seleziona il provider e cerca OpenID Configuration URL e OpenID Configuration Issuer:

Authentik: l'URL di discovery e l'issuer di un provider (istanza di test)

Di solito l’URL ha questo aspetto:
  • 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

Leggi i valori

Apri l’URL in un browser oppure esegui sul server Overleaf:
La risposta di Authentik ha questo aspetto:
Authentik elenca questi URL anche più in basso nella pagina del provider:

Authentik: gli endpoint di un provider (istanza di test)

3

Copiali in variables.env

4

Verifica che Overleaf possa raggiungere l'OP

Overleaf chiama gli endpoint token e userinfo dall’interno del proprio container, quindi l’OP deve essere raggiungibile da lì, non solo dal tuo browser:
Dovrebbe restituire 200.
Copia issuer esattamente, inclusa la barra finale. Overleaf lo confronta carattere per carattere con l’issuer presente nell’ID token; qualsiasi differenza fa fallire ogni accesso OIDC con:{"message":{"message":"ID token not issued by expected OpenID provider."}}In Authentik l’issuer appartiene all’applicazione (.../application/o/<application-slug>/). Non è l’indirizzo del server Authentik, anche se gli URL authorize, token e userinfo sono condivisi da tutte le applicazioni.

Variabili d’ambiente

I valori delle seguenti cinque variabili obbligatorie si possono trovare tramite l’endpoint .well-known/openid-configuration del tuo OpenID Provider (OP), come descritto sopra.
  • OVERLEAF_OIDC_ISSUER (obbligatoria)
  • OVERLEAF_OIDC_AUTHORIZATION_URL (obbligatoria)
  • OVERLEAF_OIDC_TOKEN_URL (obbligatoria)
  • OVERLEAF_OIDC_USER_INFO_URL (obbligatoria)
  • OVERLEAF_OIDC_LOGOUT_URL (obbligatoria)
I valori delle seguenti due variabili obbligatorie verranno forniti dall’amministratore del tuo OP
  • OVERLEAF_OIDC_CLIENT_ID (obbligatoria)
  • OVERLEAF_OIDC_CLIENT_SECRET (obbligatoria)
  • OVERLEAF_OIDC_SCOPE
    • Predefinito: openid profile email
  • OVERLEAF_OIDC_PROVIDER_ID
    • ID arbitrario dell’OP, predefinito oidc.
  • OVERLEAF_OIDC_PROVIDER_NAME
    • Il nome dell’OP, utilizzato nella sezione Linked Accounts della pagina /user/settings, predefinito OIDC Provider.
  • OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
    • Nome visualizzato del servizio di identità, utilizzato nella pagina di accesso (predefinito: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
  • OVERLEAF_OIDC_PROVIDER_DESCRIPTION
    • Descrizione dell’OP, utilizzata nella sezione Linked Accounts (predefinito: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
  • OVERLEAF_OIDC_PROVIDER_INFO_LINK
    • URL Learn more nella descrizione dell’OP; predefinito: nessun link Learn more nella descrizione.
  • OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
    • Non mostra l’OP nella pagina /user/settings se l’account dell’utente non è collegato all’OP; predefinito false.
  • OVERLEAF_OIDC_USER_ID_FIELD
    • Il valore di questo attributo verrà utilizzato da Overleaf come ID utente esterno; predefinito id. Altri valori ragionevoli possibili sono email e username (corrispondente al claim OIDC preferred_username).
  • OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
    • Limita la creazione degli account Just-in-Time (JIT) per gli utenti che si autenticano tramite OIDC. Se impostata su un elenco di nomi di dominio separati da virgole, un nuovo account verrà creato solo se il dominio dell’indirizzo email dell’utente corrisponde a uno dei domini elencati. Se il dominio non corrisponde, un amministratore deve creare manualmente l’account utente utilizzando l’indirizzo email dell’utente OIDC, con una password casuale robusta oppure, preferibilmente, senza alcun campo hashedPassword. I nomi di dominio possono includere un carattere jolly iniziale *. per corrispondere ai sottodomini.
      • Esempio: per consentire la creazione di account JIT per utenti con indirizzi email come name@example.com e name@math.example.com:
        OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
      • Esempio: per disabilitare completamente la creazione di account JIT:
        OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
  • OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN
    • Se impostata su true, aggiorna i campi first_name e last_name dell’utente all’accesso e disabilita il modulo dei dati utente nella pagina /user/settings.
  • OVERLEAF_OIDC_IS_ADMIN_FIELD e OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
    • Quando entrambe le variabili d’ambiente sono impostate, il processo di accesso imposta user.isAdmin = true se il profilo restituito dall’OP contiene l’attributo specificato da OVERLEAF_OIDC_IS_ADMIN_FIELD e il suo valore corrisponde a OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE oppure è un array che contiene OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE (ad esempio il claim groups); altrimenti user.isAdmin viene impostato su false. Se OVERLEAF_OIDC_IS_ADMIN_FIELD è email, per la verifica della corrispondenza viene utilizzato il valore dell’attributo emails[0].value.
L’URL di reindirizzamento per il tuo OpenID Provider è https://my-overleaf-instance.com/oidc/login/callback.
variables.env

Passo dopo passo: goauthentik

Questa guida illustra una configurazione testata con goauthentik. Sostituisci https://overleaf.example.com con il tuo OVERLEAF_SITE_URL e https://authentik.example.com con l’indirizzo della tua istanza Authentik.
1

Crea il provider

In Authentik, apri Applications > Providers, fai clic su New Provider, scegli OAuth2/OpenID Provider e fai clic su Next.
  • Client Type: Confidential.
  • Redirect URIs (sotto Protocol settings): aggiungi https://overleaf.example.com/oidc/login/callback con la modalità di corrispondenza Strict.
  • Copia subito Client ID e Client Secret in OVERLEAF_OIDC_CLIENT_ID e OVERLEAF_OIDC_CLIENT_SECRET.

Authentik: Client ID e Client Secret di un nuovo provider

Authentik mostra il client secret solo durante la creazione del provider. In seguito il modulo di modifica offre solo Modify, che sostituisce il secret con uno nuovo.
2

Crea l'applicazione

Apri Applications > Applications, crea una nuova applicazione, assegnale un nome e uno slug, ad esempio overleaf, e seleziona il provider. Lo slug diventa parte dell’issuer: https://authentik.example.com/application/o/overleaf/.
3

Copia gli URL

Segui la sezione Trovare i valori con il documento di discovery più sopra per compilare i cinque URL.
4

Mappa gli amministratori (facoltativo)

Authentik invia i gruppi dell’utente nel claim groups, un array. Per rendere amministratori di Overleaf i membri del gruppo Authentik Admins:
Il flag di amministratore viene aggiornato a ogni accesso OIDC. Con un campo o un valore errato, ogni amministratore che accede tramite OIDC perde i diritti di amministratore, compreso l’amministratore creato nel launchpad. Prova prima la mappatura con un secondo account amministratore.
variables.env
Ultima modifica il 6 ottobre 2026