Internt bruker SAML-modulen i Overleaf biblioteket passport-saml, og de fleste av de følgende konfigurasjonsalternativene sendes videre til passport-saml. Hvis du har problemer med å konfigurere SAML, er det lurt å lese README-filen for passport-saml for å få et inntrykk av hvilken konfigurasjon den forventer.Miljøvariabelen EXTERNAL_AUTH er påkrevd for å aktivere SAML-autentiseringsmodulen. Denne miljøvariabelen angir hvilke eksterne autentiseringsmetoder som er aktivert. Verdien av variabelen er en liste. Hvis listen inneholder saml, aktiveres SAML-autentisering.For eksempel: EXTERNAL_AUTH=ldap samlNår SAML-autentiseringsmetoden brukes, blir brukeren omdirigert til autentiseringssiden til identitetsleverandøren (IdP). Hvis IdP-en autentiserer brukeren, søkes det i Overleafs brukerdatabase etter en post som inneholder et samlIdentifiers-felt med følgende struktur:
externalUserId må samsvare med verdien av egenskapen som er angitt av userIdAttribute i brukerprofilen som returneres av IdP-serveren.Hvis ingen samsvarende post blir funnet, søkes det i databasen etter en bruker med en primær e-postadresse som samsvarer med e-postadressen i brukerprofilen fra IdP-en:
Hvis en slik bruker blir funnet, slettes feltet hashedPassword for å deaktivere lokal autentisering, og feltet samlIdentifiers legges til.
Hvis ingen samsvarende bruker blir funnet, opprettes en ny bruker med e-postadressen og samlIdentifiers fra IdP-profilen.
Merk: For øyeblikket støttes bare én SAML-IdP. Feltet providerId i samlIdentifiers er fast satt til '1'.
Visningsnavn for identitetstjenesten, brukt på innloggingssiden (standard: Log in with SAML IdP).
OVERLEAF_SAML_USER_ID_FIELD
Verdien av dette attributtet brukes av Overleaf som ekstern bruker-ID; standard er nameID.
OVERLEAF_SAML_EMAIL_FIELD
Navnet på e-postfeltet i brukerprofilen; standard er nameID.
OVERLEAF_SAML_FIRST_NAME_FIELD
Navnet på firstName-feltet i brukerprofilen; standard er givenName.
OVERLEAF_SAML_LAST_NAME_FIELD
Navnet på lastName-feltet i brukerprofilen; standard er lastName
OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN
Hvis den er satt til true, oppdateres brukerens felt first_name og last_name ved innlogging, og skjemaet for brukeropplysninger på siden /user/settings slås av.
Forventet Audience i SAML-svaret; standard er verdien av OVERLEAF_SAML_ISSUER.
OVERLEAF_SAML_IDP_CERT(påkrevd)
Sti til en fil som inneholder identitetsleverandørens offentlige sertifikat, brukt til å validere signaturene i innkommende SAML-svar. Hvis identitetsleverandøren har flere gyldige signeringssertifikater, kan dette være en JSON-matrise med stier til sertifikatene.
Eksempel (ett sertifikat): /var/lib/overleaf/certs/idp_cert.pem
Eksempel (flere sertifikater): ["var/lib/overleaf/certs/idp_cert.pem", "/var/lib/overleaf/certs/idp_cert_old.pem"]
OVERLEAF_SAML_PUBLIC_CERT
Sti til en fil som inneholder det offentlige signeringssertifikatet som bygges inn i autentiseringsforespørsler, slik at IdP-en kan validere signaturene i den innkommende SAML-forespørselen. Det er påkrevd når du setter opp metadata-endepunktet når strategien er konfigurert med en OVERLEAF_SAML_PRIVATE_KEY. En JSON-matrise med stier til sertifikater kan oppgis for å støtte sertifikatrotasjon. Når du oppgir en matrise med sertifikater, skal den første oppføringen i matrisen samsvare med gjeldende OVERLEAF_SAML_PRIVATE_KEY. Flere oppføringer i matrisen kan brukes til å publisere kommende sertifikater til IdP-er før du endrer OVERLEAF_SAML_PRIVATE_KEY.
OVERLEAF_SAML_PRIVATE_KEY
Sti til en fil som inneholder en PEM-formatert privat nøkkel som samsvarer med OVERLEAF_SAML_PUBLIC_CERT, brukt til å signere autentiseringsforespørsler sendt av passport-saml.
OVERLEAF_SAML_DECRYPTION_CERT
Sti til en fil som inneholder et offentlig sertifikat, brukt for metadata-endepunktet.
OVERLEAF_SAML_DECRYPTION_PVK
Sti til en fil som inneholder en privat nøkkel som samsvarer med OVERLEAF_SAML_DECRYPTION_CERT, og som brukes til å forsøke å dekryptere eventuelle krypterte assertions som mottas.
OVERLEAF_SAML_SIGNATURE_ALGORITHM
Angir valgfritt signaturalgoritmen for signering av forespørsler; gyldige verdier er ‘sha1’ (standard), ‘sha256’ (foretrukket), ‘sha512’ (sikrest, sjekk om IdP-en din støtter den).
OVERLEAF_SAML_ADDITIONAL_PARAMS
JSON-ordbok med ekstra spørringsparametere som legges til alle forespørsler.
OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS
JSON-ordbok med ekstra spørringsparametere som legges til ‘authorize’-forespørsler.
Eksempel: {"some_key": "some_value"}
OVERLEAF_SAML_IDENTIFIER_FORMAT
Format for navneidentifikator som skal forespørres fra identitetsleverandøren (standard: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress). Hvis du bruker urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, må du sørge for at miljøvariabelen OVERLEAF_SAML_EMAIL_FIELD er definert. Hvis urn:oasis:names:tc:SAML:2.0:nameid-format:transient kreves, må du også definere miljøvariabelen OVERLEAF_SAML_USER_ID_FIELD, som for eksempel kan settes til brukerens e-postadresse.
OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS
Tidsavvik i millisekunder som aksepteres mellom klient og server ved kontroll av gyldighetstidsstemplene OnBefore og NotOnOrAfter i assertion-betingelser. Settes den til -1, deaktiveres kontrollen av disse betingelsene helt. Standard er 0.
OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX
Attributtet AttributeConsumingServiceIndex som legges til AuthnRequest for å instruere IdP-en om hvilket attributtsett som skal legges ved svaret (lenke).
OVERLEAF_SAML_AUTHN_CONTEXT
JSON-matrise med verdier for navneidentifikatorformat for å forespørre autentiseringskontekst. Standard: ["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"].
OVERLEAF_SAML_FORCE_AUTHN
Hvis true, angir den første SAML-forespørselen fra tjenesteleverandøren at IdP-en skal tvinge brukeren til å autentisere seg på nytt, selv om vedkommende har en gyldig økt.
OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT
Hvis true, forespørres ingen bestemt autentiseringskontekst. Du kan for eksempel sette denne til true for å tillate andre kontekster, som passordløse innlogginger (urn:oasis:names:tc:SAML:2.0:ac:classes:X509). Støtte for andre kontekster avhenger av IdP-en din.
OVERLEAF_SAML_AUTHN_REQUEST_BINDING
Hvis den er satt til HTTP-POST, forespørres autentisering fra IdP-en via HTTP POST-binding; ellers brukes HTTP-Redirect som standard.
OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO
Hvis always, valideres InResponseTo i innkommende SAML-svar.
Hvis never, valideres ikke InResponseTo (standard).
Hvis ifPresent, valideres InResponseTo bare hvis det finnes i det innkommende SAML-svaret.
OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED og OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED
Når de er satt til true (standard), forventer Overleaf at henholdsvis SAML-assertions og hele SAML-autentiseringssvaret er signert av IdP-en. Når begge alternativene er false, må minst én av assertions eller svaret være signert.
OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS
Angir utløpstiden for når en forespørsels-ID generert for en SAML-forespørsel ikke lenger er gyldig hvis den forekommer i feltet InResponseTo i et SAML-svar. Standard: 28800000 (8 timer).
OVERLEAF_SAML_LOGOUT_URL
Basisadresse som kalles ved utloggingsforespørsler (standard: entryPoint).
JSON-ordbok med ekstra spørringsparametere som legges til ‘logout’-forespørsler.
OVERLEAF_SAML_IS_ADMIN_FIELD og OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE
Når begge miljøvariablene er satt, oppdaterer innloggingsprosessen user.isAdmin = true hvis profilen som returneres av SAML-IdP-en, inneholder attributtet angitt av OVERLEAF_SAML_IS_ADMIN_FIELD og verdien enten samsvarer med OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE eller er en matrise som inneholder OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE; ellers settes user.isAdmin til false. Hvis én av disse variablene ikke er satt, settes administratorstatusen bare til true når administratorbrukeren opprettes i Launchpad.
Metadata for identitetsleverandørenGjeldende versjon av Overleaf CE inkluderer et endepunkt for å hente metadata for tjenesteleverandøren: http://my-overleaf-instance.com/saml/metaIdentitetsleverandøren må konfigureres til å gjenkjenne Overleaf-serveren som en “Service Provider” (tjenesteleverandør). Se dokumentasjonen for SAML-serveren din for instruksjoner om hvordan du gjør dette.Nedenfor er et eksempel på passende metadata for tjenesteleverandøren:
Legg merke til sertifikatene, AssertionConsumerService.Location, SingleLogoutService.Location og EntityDescriptor.entityID, og angi dem på riktig måte i IdP-konfigurasjonen din, eller send metadatafilen til IdP-administratoren.
Eksempel på variables.env-fil (minimum)
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=
Dette er en gjennomgang av et oppsett som er testet mot goauthentik. Erstatt https://overleaf.example.com med din OVERLEAF_SITE_URL og https://authentik.example.com med adressen til din Authentik.
1
Opprett leverandøren og applikasjonen
I Authentik åpner du Applications > Applications og klikker New Application. Veiviseren oppretter applikasjonen og leverandøren samtidig.1. Gi applikasjonen et navn og en slug, for eksempel overleaf, og klikk Next:
Audience: et navn for Overleaf, for eksempel overleaf. Overleaf sender det som OVERLEAF_SAML_ISSUER.
Authentik: SAML-leverandøren til applikasjonen
4. Åpne Advanced protocol settings og angi:
Signing Certificate: et sertifikat, for eksempel authentik Self-signed Certificate
Sign assertions og Sign responses: begge på
Service Provider Binding: Post
Authentik: signering og binding for en testet leverandør (testinstans)
5. Klikk Next til siste side og send inn applikasjonen.
2
Kopier verdiene fra leverandørsiden
Åpne leverandøren igjen. Alt Overleaf trenger, står i oversikten:
Authentik: oversikt over en SAML-leverandør (testinstans)
På leverandørsiden
Miljøvariabel
SAML Endpoint
OVERLEAF_SAML_ENTRYPOINT og OVERLEAF_SAML_LOGOUT_URL
Audience
OVERLEAF_SAML_ISSUER
Download signing certificate (en fil)
OVERLEAF_SAML_IDP_CERT, se neste trinn
EntityID/Issuer under SAML Configuration er navnet på selve Authentik. Ikke legg det inn i OVERLEAF_SAML_ISSUER; bruk Audience.
3
Installer signeringssertifikatet
Klikk Download under Download signing certificate og lagre filen som data/overleaf/certs/idp_cert.pem i Toolkit-katalogen din. Containeren ser den som /var/lib/overleaf/certs/idp_cert.pem:
Gruppene kommer som http://schemas.xmlsoap.org/claims/Group, en liste. Slik gjør du medlemmene av Authentik-gruppen Admins til administratorer i Overleaf:
Administratorflagget oppdateres ved hver SAML-innlogging. Med feil felt eller verdi mister alle administratorer som logger inn via SAML administratorrettighetene. Test tilordningen med en ekstra administratorkonto først.
Testet variables.env for 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
Sist endret 6. oktober 2026
Var denne siden nyttig?
Assistant
Responses are generated using AI and may contain mistakes.