Intern gebruikt de SAML-module van Overleaf de bibliotheek passport-saml; de meeste van de volgende configuratieopties worden doorgegeven aan passport-saml. Als je problemen hebt met het configureren van SAML, is het de moeite waard om de README van passport-saml te lezen om een idee te krijgen van de configuratie die deze verwacht.De omgevingsvariabele EXTERNAL_AUTH is vereist om de SAML-authenticatiemodule in te schakelen. Deze omgevingsvariabele geeft aan welke externe authenticatiemethoden worden geactiveerd. De waarde van deze variabele is een lijst. Als de lijst saml bevat, wordt SAML-authenticatie geactiveerd.Bijvoorbeeld: EXTERNAL_AUTH=ldap samlBij gebruik van de SAML-authenticatiemethode wordt een gebruiker doorgestuurd naar de authenticatiesite van de Identity Provider (IdP). Als de IdP de gebruiker succesvol authenticeert, wordt in de gebruikersdatabase van Overleaf gezocht naar een record met een veld samlIdentifiers met de volgende structuur:
De externalUserId moet overeenkomen met de waarde van de eigenschap die door userIdAttribute is opgegeven in het gebruikersprofiel dat door de IdP-server wordt geretourneerd.Als er geen overeenkomend record wordt gevonden, wordt in de database gezocht naar een gebruiker van wie het primaire e-mailadres overeenkomt met het e-mailadres in het gebruikersprofiel van de IdP:
Als zo’n gebruiker wordt gevonden, wordt het veld hashedPassword verwijderd om lokale authenticatie uit te schakelen, en wordt het veld samlIdentifiers toegevoegd.
Als er geen overeenkomende gebruiker wordt gevonden, wordt een nieuwe gebruiker aangemaakt met het e-mailadres en de samlIdentifiers uit het IdP-profiel.
Opmerking: Momenteel wordt slechts één SAML-IdP ondersteund. Het veld providerId in samlIdentifiers staat vast op '1'.
Weergavenaam voor de identiteitsdienst, gebruikt op de inlogpagina (standaard: Log in with SAML IdP).
OVERLEAF_SAML_USER_ID_FIELD
De waarde van dit attribuut wordt door Overleaf gebruikt als het externe gebruikers-ID, standaard nameID.
OVERLEAF_SAML_EMAIL_FIELD
Naam van het e-mailveld in het gebruikersprofiel, standaard nameID.
OVERLEAF_SAML_FIRST_NAME_FIELD
Naam van het veld firstName in het gebruikersprofiel, standaard givenName.
OVERLEAF_SAML_LAST_NAME_FIELD
Naam van het veld lastName in het gebruikersprofiel, standaard lastName
OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN
Als deze is ingesteld op true, worden de velden first_name en last_name van de gebruiker bij het inloggen bijgewerkt en wordt het formulier met gebruikersgegevens op de pagina /user/settings uitgeschakeld.
Verwachte Audience van het SAML-antwoord, standaard de waarde van OVERLEAF_SAML_ISSUER.
OVERLEAF_SAML_IDP_CERT(verplicht)
Pad naar een bestand met het openbare certificaat van de Identity Provider, gebruikt om de handtekeningen van binnenkomende SAML-antwoorden te valideren. Als de Identity Provider meerdere geldige ondertekeningscertificaten heeft, kan dit een JSON-array met paden naar de certificaten zijn.
Pad naar een bestand met het openbare ondertekeningscertificaat dat in authenticatieverzoeken wordt opgenomen, zodat de IdP de handtekeningen van het binnenkomende SAML-verzoek kan valideren. Dit is vereist bij het inrichten van het metadata-endpoint wanneer de strategie is geconfigureerd met een OVERLEAF_SAML_PRIVATE_KEY. Er kan een JSON-array met paden naar certificaten worden opgegeven om certificaatrotatie te ondersteunen. Bij het opgeven van een array met certificaten moet het eerste item in de array overeenkomen met de huidige OVERLEAF_SAML_PRIVATE_KEY. Extra items in de array kunnen worden gebruikt om toekomstige certificaten bij IdP’s te publiceren voordat de OVERLEAF_SAML_PRIVATE_KEY wordt gewijzigd.
OVERLEAF_SAML_PRIVATE_KEY
Pad naar een bestand met een PEM-geformatteerde privésleutel die overeenkomt met het OVERLEAF_SAML_PUBLIC_CERT, gebruikt om authenticatieverzoeken te ondertekenen die door passport-saml worden verzonden.
OVERLEAF_SAML_DECRYPTION_CERT
Pad naar een bestand met een openbaar certificaat, gebruikt voor het metadata-endpoint.
OVERLEAF_SAML_DECRYPTION_PVK
Pad naar een bestand met een privésleutel die overeenkomt met het OVERLEAF_SAML_DECRYPTION_CERT en die wordt gebruikt om te proberen ontvangen versleutelde assertions te ontsleutelen.
OVERLEAF_SAML_SIGNATURE_ALGORITHM
Stel optioneel het handtekeningalgoritme in voor het ondertekenen van verzoeken; geldige waarden zijn ‘sha1’ (standaard), ‘sha256’ (aanbevolen) en ‘sha512’ (het veiligst; controleer of je IdP dit ondersteunt).
OVERLEAF_SAML_ADDITIONAL_PARAMS
JSON-dictionary met extra queryparameters die aan alle verzoeken worden toegevoegd.
OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS
JSON-dictionary met extra queryparameters die aan ‘authorize’-verzoeken worden toegevoegd.
Voorbeeld: {"some_key": "some_value"}
OVERLEAF_SAML_IDENTIFIER_FORMAT
Indeling van de naam-identificatie die bij de identity provider wordt aangevraagd (standaard: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress). Als je urn:oasis:names:tc:SAML:2.0:nameid-format:persistent gebruikt, zorg er dan voor dat de omgevingsvariabele OVERLEAF_SAML_EMAIL_FIELD is gedefinieerd. Als urn:oasis:names:tc:SAML:2.0:nameid-format:transient vereist is, moet je ook de omgevingsvariabele OVERLEAF_SAML_USER_ID_FIELD definiëren, die bijvoorbeeld kan worden ingesteld op het e-mailadres van de gebruiker.
OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS
Toegestane klokafwijking in milliseconden tussen client en server bij het controleren van de geldigheidstijdstempels OnBefore en NotOnOrAfter van assertion-voorwaarden. Met -1 wordt het controleren van deze voorwaarden volledig uitgeschakeld. Standaard is 0.
OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX
Attribuut AttributeConsumingServiceIndex dat aan het AuthnRequest wordt toegevoegd om de IdP te laten weten welke attributenset aan het antwoord moet worden toegevoegd (link).
OVERLEAF_SAML_AUTHN_CONTEXT
JSON-array met waarden voor de naam-identificatie-indeling om een authenticatiecontext aan te vragen. Standaard: ["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"].
OVERLEAF_SAML_FORCE_AUTHN
Als deze true is, geeft het initiële SAML-verzoek van de serviceprovider aan dat de IdP de gebruiker opnieuw moet laten authenticeren, zelfs als deze een geldige sessie heeft.
OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT
Als deze true is, wordt geen specifieke authenticatiecontext aangevraagd. Je kunt dit bijvoorbeeld op true zetten om extra contexten toe te staan, zoals inloggen zonder wachtwoord (urn:oasis:names:tc:SAML:2.0:ac:classes:X509). Ondersteuning voor extra contexten is afhankelijk van je IdP.
OVERLEAF_SAML_AUTHN_REQUEST_BINDING
Als deze is ingesteld op HTTP-POST, wordt authenticatie bij de IdP aangevraagd via HTTP POST-binding; anders is de standaard HTTP-Redirect.
OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO
Bij always wordt InResponseTo in binnenkomende SAML-antwoorden gevalideerd.
Bij never wordt InResponseTo niet gevalideerd (standaard).
Bij ifPresent wordt InResponseTo alleen gevalideerd als het in het binnenkomende SAML-antwoord aanwezig is.
OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED en OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED
Wanneer deze zijn ingesteld op true (standaard), verwacht Overleaf dat respectievelijk de SAML-assertions of het volledige SAML-authenticatieantwoord door de IdP zijn ondertekend. Wanneer beide opties false zijn, moet ten minste een van de assertions of het antwoord zijn ondertekend.
OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS
Bepaalt na hoeveel tijd een voor een SAML-verzoek gegenereerd Request ID niet meer geldig is wanneer het in het veld InResponseTo van een SAML-antwoord voorkomt. Standaard: 28800000 (8 uur).
OVERLEAF_SAML_LOGOUT_URL
Basisadres dat met uitlogverzoeken wordt aangeroepen (standaard: entryPoint).
JSON-dictionary met extra queryparameters die aan ‘logout’-verzoeken worden toegevoegd.
OVERLEAF_SAML_IS_ADMIN_FIELD en OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE
Wanneer beide omgevingsvariabelen zijn ingesteld, stelt het inlogproces user.isAdmin = true in als het door de SAML-IdP geretourneerde profiel het attribuut bevat dat is opgegeven door OVERLEAF_SAML_IS_ADMIN_FIELD en de waarde ervan overeenkomt met OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE of een array is die OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE bevat; anders wordt user.isAdmin ingesteld op false. Als een van deze variabelen niet is ingesteld, wordt de beheerdersstatus alleen op true gezet tijdens het aanmaken van de beheerder in Launchpad.
Metadata voor de Identity ProviderDe huidige versie van Overleaf CE bevat een endpoint om de metadata van de Service Provider op te halen: http://my-overleaf-instance.com/saml/metaDe Identity Provider moet zo worden geconfigureerd dat deze de Overleaf-server herkent als “Service Provider”. Raadpleeg de documentatie van je SAML-server voor instructies om dit te doen.Hieronder staat een voorbeeld van geschikte Service Provider-metadata:
Noteer de certificaten, AssertionConsumerService.Location, SingleLogoutService.Location en EntityDescriptor.entityID en stel deze naar behoren in je IdP-configuratie in, of stuur het metadatabestand naar de beheerder van de IdP.
Voorbeeld van een variables.env-bestand (minimaal)
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################### SAML ###################EXTERNAL_AUTH=samlOVERLEAF_SAML_ISSUER=MyOverleafOVERLEAF_SAML_IDENTITY_SERVICE_NAME='Log in with SAML Provider'OVERLEAF_SAML_EMAIL_FIELD=EmailOVERLEAF_SAML_FIRST_NAME_FIELD=DisplayNameOVERLEAF_SAML_LAST_NAME_FIELD=DisplayNameOVERLEAF_SAML_ENTRYPOINT=http://localhost:18000/login/saml/authorize/admin/SAML_OverleafOVERLEAF_SAML_IDP_CERT=/var/lib/overleaf/certs/idp_cert.pemOVERLEAF_SAML_SIGNATURE_ALGORITHM=
Hieronder doorlopen we een setup die is getest met goauthentik. Vervang https://overleaf.example.com door je OVERLEAF_SITE_URL en https://authentik.example.com door het adres van je Authentik.
1
Maak de provider en de applicatie aan
Open in Authentik Applications > Applications en klik op New Application. De wizard maakt de applicatie en de bijbehorende provider samen aan.1. Geef de applicatie een naam en een slug, bijvoorbeeld overleaf, en klik op Next:
Audience: een naam voor Overleaf, bijvoorbeeld overleaf. Overleaf verstuurt deze als OVERLEAF_SAML_ISSUER.
Authentik: de SAML-provider van de applicatie
4. Open Advanced protocol settings en stel in:
Signing Certificate: een certificaat, bijvoorbeeld authentik Self-signed Certificate
Sign assertions en Sign responses: beide aan
Service Provider Binding: Post
Authentik: ondertekening en binding van een geteste provider (testinstantie)
5. Klik op Next tot de laatste pagina en verstuur de applicatie.
2
Kopieer de waarden van de providerpagina
Open de provider opnieuw. Alles wat Overleaf nodig heeft, staat in het overzicht:
Authentik: overzicht van een SAML-provider (testinstantie)
Op de providerpagina
Omgevingsvariabele
SAML Endpoint
OVERLEAF_SAML_ENTRYPOINT en OVERLEAF_SAML_LOGOUT_URL
Audience
OVERLEAF_SAML_ISSUER
Download signing certificate (een bestand)
OVERLEAF_SAML_IDP_CERT, zie de volgende stap
EntityID/Issuer onder SAML Configuration is de naam van Authentik zelf. Zet deze niet in OVERLEAF_SAML_ISSUER, maar gebruik de Audience.
3
Installeer het ondertekeningscertificaat
Klik op Download onder Download signing certificate en sla het bestand op als data/overleaf/certs/idp_cert.pem in je Toolkit-map. De container ziet het als /var/lib/overleaf/certs/idp_cert.pem:
De groepen komen binnen als http://schemas.xmlsoap.org/claims/Group, een lijst. Om de leden van de Authentik-groep Admins beheerder van Overleaf te maken:
De beheerdersvlag wordt bij elke SAML-aanmelding bijgewerkt. Met een verkeerd veld of een verkeerde waarde verliest elke beheerder die via SAML inlogt de beheerdersrechten. Test de koppeling eerst met een tweede beheerdersaccount.
Geteste variables.env voor goauthentik
variables.env
EXTERNAL_AUTH=samlOVERLEAF_SAML_IDENTITY_SERVICE_NAME=Log in with AuthentikOVERLEAF_SAML_ENTRYPOINT=https://authentik.example.com/application/saml/overleaf/OVERLEAF_SAML_LOGOUT_URL=https://authentik.example.com/application/saml/overleaf/OVERLEAF_SAML_ISSUER=overleafOVERLEAF_SAML_IDP_CERT=/var/lib/overleaf/certs/idp_cert.pemOVERLEAF_SAML_WANT_ASSERTIONS_SIGNED=trueOVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED=trueOVERLEAF_SAML_USER_ID_FIELD=http://schemas.goauthentik.io/2021/02/saml/usernameOVERLEAF_SAML_EMAIL_FIELD=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressOVERLEAF_SAML_FIRST_NAME_FIELD=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameOVERLEAF_SAML_LAST_NAME_FIELD=http://schemas.goauthentik.io/2021/02/saml/usernameOVERLEAF_SAML_IS_ADMIN_FIELD=http://schemas.xmlsoap.org/claims/GroupOVERLEAF_SAML_IS_ADMIN_FIELD_VALUE=AdminsOVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN=true
Laatst gewijzigd op 6 oktober 2026
Was deze pagina nuttig?
Assistant
Responses are generated using AI and may contain mistakes.