Internt bruger Overleafs SAML-modul biblioteket passport-saml, og de fleste af følgende konfigurationsindstillinger videregives til passport-saml. Hvis du har problemer med at konfigurere SAML, er det en god idé at læse README-filen for passport-saml for at få en fornemmelse af den konfiguration, det forventer.Miljøvariablen EXTERNAL_AUTH er påkrævet for at aktivere SAML-godkendelsesmodulet. Denne miljøvariabel angiver, hvilke eksterne godkendelsesmetoder der er aktiveret. Variablens værdi er en liste. Hvis listen indeholder saml, aktiveres SAML-godkendelse.For eksempel: EXTERNAL_AUTH=ldap samlNår SAML-godkendelsesmetoden bruges, omdirigeres brugeren til identitetsudbyderens (IdP) godkendelsesside. Hvis IdP’en godkender brugeren, kontrolleres Overleafs brugerdatabase for en post, der indeholder et samlIdentifiers-felt med følgende struktur:
externalUserId skal matche værdien af den egenskab, der er angivet med userIdAttribute i den brugerprofil, som IdP-serveren returnerer.Hvis der ikke findes en matchende post, søges der i databasen efter en bruger, hvis primære e-mailadresse matcher e-mailadressen i IdP-brugerprofilen:
Hvis en sådan bruger findes, slettes feltet hashedPassword for at deaktivere lokal godkendelse, og feltet samlIdentifiers tilføjes.
Hvis der ikke findes en matchende bruger, oprettes en ny bruger med e-mailadressen og samlIdentifiers fra IdP-profilen.
Bemærk: I øjeblikket understøttes kun én SAML-IdP. Feltet providerId i samlIdentifiers er fast sat til '1'.
Visningsnavn for identitetstjenesten, der bruges på login-siden (standard: Log in with SAML IdP).
OVERLEAF_SAML_USER_ID_FIELD
Værdien af denne attribut bruges af Overleaf som eksternt bruger-ID, standard er nameID.
OVERLEAF_SAML_EMAIL_FIELD
Navnet på e-mailfeltet i brugerprofilen, standard er nameID.
OVERLEAF_SAML_FIRST_NAME_FIELD
Navnet på fornavnsfeltet i brugerprofilen, standard er givenName.
OVERLEAF_SAML_LAST_NAME_FIELD
Navnet på efternavnsfeltet i brugerprofilen, standard er lastName
OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN
Hvis den er sat til true, opdateres brugerens felter first_name og last_name ved login, og formularen med brugeroplysninger på siden /user/settings slås fra.
Forventet Audience i SAML-svaret, standard er værdien af OVERLEAF_SAML_ISSUER.
OVERLEAF_SAML_IDP_CERT(påkrævet)
Sti til en fil med identitetsudbyderens offentlige certifikat, som bruges til at validere signaturerne på indgående SAML-svar. Hvis identitetsudbyderen har flere gyldige signeringscertifikater, kan det være et JSON-array med stier til certifikaterne.
Eksempel (ét certifikat): /var/lib/overleaf/certs/idp_cert.pem
Eksempel (flere certifikater): ["var/lib/overleaf/certs/idp_cert.pem", "/var/lib/overleaf/certs/idp_cert_old.pem"]
OVERLEAF_SAML_PUBLIC_CERT
Sti til en fil med det offentlige signeringscertifikat, der indlejres i godkendelsesanmodninger, så IdP’en kan validere signaturerne på den indgående SAML-anmodning. Det er påkrævet, når metadata-endpointet opsættes, og strategien er konfigureret med en OVERLEAF_SAML_PRIVATE_KEY. Et JSON-array med stier til certifikater kan angives for at understøtte certifikatrotation. Når der angives et array af certifikater, skal den første post i arrayet matche den aktuelle OVERLEAF_SAML_PRIVATE_KEY. Yderligere poster i arrayet kan bruges til at offentliggøre kommende certifikater for IdP’er, før OVERLEAF_SAML_PRIVATE_KEY ændres.
OVERLEAF_SAML_PRIVATE_KEY
Sti til en fil med en PEM-formateret privat nøgle, der matcher OVERLEAF_SAML_PUBLIC_CERT, og som bruges til at signere godkendelsesanmodninger sendt af passport-saml.
OVERLEAF_SAML_DECRYPTION_CERT
Sti til en fil med et offentligt certifikat, der bruges til metadata-endpointet.
OVERLEAF_SAML_DECRYPTION_PVK
Sti til en fil med en privat nøgle, der matcher OVERLEAF_SAML_DECRYPTION_CERT, og som bruges til at forsøge at dekryptere eventuelle krypterede assertions, der modtages.
OVERLEAF_SAML_SIGNATURE_ALGORITHM
Angiver valgfrit signaturalgoritmen til signering af anmodninger; gyldige værdier er ‘sha1’ (standard), ‘sha256’ (foretrukket), ‘sha512’ (mest sikker, kontrollér om din IdP understøtter den).
OVERLEAF_SAML_ADDITIONAL_PARAMS
JSON-ordbog med yderligere forespørgselsparametre, der tilføjes til alle anmodninger.
OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS
JSON-ordbog med yderligere forespørgselsparametre, der tilføjes til ‘authorize’-anmodninger.
Eksempel: {"some_key": "some_value"}
OVERLEAF_SAML_IDENTIFIER_FORMAT
Formatet for navneidentifikatoren, der anmodes om fra identitetsudbyderen (standard: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress). Hvis du bruger urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, skal du sikre dig, at miljøvariablen OVERLEAF_SAML_EMAIL_FIELD er defineret. Hvis urn:oasis:names:tc:SAML:2.0:nameid-format:transient er påkrævet, skal du også definere miljøvariablen OVERLEAF_SAML_USER_ID_FIELD, som for eksempel kan sættes til brugerens e-mailadresse.
OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS
Den tidsforskydning i millisekunder mellem klient og server, der accepteres ved kontrol af gyldighedstidsstemplerne i assertion-betingelserne OnBefore og NotOnOrAfter. Sættes den til -1, deaktiveres kontrollen af disse betingelser helt. Standard er 0.
OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX
Attributten AttributeConsumingServiceIndex, der tilføjes til AuthnRequest for at fortælle IdP’en, hvilket attributsæt der skal vedhæftes svaret (link).
OVERLEAF_SAML_AUTHN_CONTEXT
JSON-array med værdier for navneidentifikatorformat, der anmodes om som godkendelseskontekst. Standard: ["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"].
OVERLEAF_SAML_FORCE_AUTHN
Hvis true, angiver den indledende SAML-anmodning fra tjenesteudbyderen, at IdP’en skal gennemtvinge en ny godkendelse af brugeren, selv hvis vedkommende har en gyldig session.
OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT
Hvis true, anmodes der ikke om en bestemt godkendelseskontekst. Du kan for eksempel sætte denne til true for at tillade yderligere kontekster som f.eks. login uden adgangskode (urn:oasis:names:tc:SAML:2.0:ac:classes:X509). Understøttelse af yderligere kontekster afhænger af din IdP.
OVERLEAF_SAML_AUTHN_REQUEST_BINDING
Hvis den er sat til HTTP-POST, anmodes der om godkendelse fra IdP’en via HTTP POST-binding; ellers bruges HTTP-Redirect som standard.
OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO
Hvis always, valideres InResponseTo i indgående SAML-svar.
Hvis never, valideres InResponseTo ikke (standard).
Hvis ifPresent, valideres InResponseTo kun, hvis det findes i det indgående SAML-svar.
OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED og OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED
Når de er sat til true (standard), forventer Overleaf, at henholdsvis SAML-assertions og hele SAML-godkendelsessvaret er signeret af IdP’en. Når begge indstillinger er false, skal mindst én af assertions eller svaret være signeret.
OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS
Angiver udløbstiden, hvorefter et anmodnings-ID, der er genereret til en SAML-anmodning, ikke længere er gyldigt, hvis det ses i feltet InResponseTo i et SAML-svar. Standard: 28800000 (8 timer).
OVERLEAF_SAML_LOGOUT_URL
Basisadresse, der kaldes med logout-anmodninger (standard: entryPoint).
JSON-ordbog med yderligere forespørgselsparametre, der tilføjes til ‘logout’-anmodninger.
OVERLEAF_SAML_IS_ADMIN_FIELD og OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE
Når begge miljøvariabler er sat, opdaterer login-processen user.isAdmin = true, hvis den profil, SAML-IdP’en returnerer, indeholder den attribut, der er angivet med OVERLEAF_SAML_IS_ADMIN_FIELD, og dens værdi enten matcher OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE eller er et array, der indeholder OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE; ellers sættes user.isAdmin til false. Hvis en af disse variabler ikke er sat, sættes administratorstatus kun til true under oprettelsen af administratorbrugeren i Launchpad.
Metadata til identitetsudbyderenDen aktuelle version af Overleaf CE indeholder et endpoint til at hente tjenesteudbyderens metadata: http://my-overleaf-instance.com/saml/metaIdentitetsudbyderen skal konfigureres til at genkende Overleaf-serveren som en “tjenesteudbyder” (Service Provider). Se dokumentationen til din SAML-server for at få vejledning i, hvordan du gør dette.Nedenfor er et eksempel på passende metadata for tjenesteudbyderen:
Notér certifikaterne, AssertionConsumerService.Location, SingleLogoutService.Location og EntityDescriptor.entityID, og angiv dem efter behov i din IdP-konfiguration, 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=
Denne vejledning gennemgår en opsætning, der er testet mod goauthentik. Erstat https://overleaf.example.com med din OVERLEAF_SITE_URL og https://authentik.example.com med adressen på din Authentik.
1
Opret udbyderen og applikationen
I Authentik skal du åbne Applications > Applications og klikke på New Application. Guiden opretter applikationen og dens udbyder samtidig.1. Giv applikationen et navn og en slug, for eksempel overleaf, og klik på Next:
Audience: et navn til Overleaf, for eksempel overleaf. Overleaf sender det som OVERLEAF_SAML_ISSUER.
Authentik: applikationens SAML-udbyder
4. Åbn Advanced protocol settings, og angiv:
Signing Certificate: et certifikat, for eksempel authentik Self-signed Certificate
Sign assertions og Sign responses: begge slået til
Service Provider Binding: Post
Authentik: signering og binding for en testet udbyder (testinstans)
5. Klik på Next indtil sidste side, og indsend applikationen.
2
Kopiér værdierne fra udbydersiden
Åbn udbyderen igen. Alt, hvad Overleaf har brug for, står i oversigten:
Authentik: oversigt over en SAML-udbyder (testinstans)
På udbydersiden
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 næste trin
EntityID/Issuer under SAML Configuration er navnet på Authentik selv. Sæt det ikke ind i OVERLEAF_SAML_ISSUER; brug Audience.
3
Installér signeringscertifikatet
Klik på Download under Download signing certificate, og gem filen som data/overleaf/certs/idp_cert.pem i din Toolkit-mappe. Containeren ser den som /var/lib/overleaf/certs/idp_cert.pem:
Grupperne kommer som http://schemas.xmlsoap.org/claims/Group, en liste. Sådan gør du medlemmerne af Authentik-gruppen Admins til administratorer i Overleaf:
Administratorflaget opdateres ved hvert SAML-login. Med et forkert felt eller en forkert værdi mister alle administratorer, der logger ind via SAML, deres administratorrettigheder. Test tilknytningen med en anden administratorkonto først.
Testet variables.env til 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
Sidst ændret 6. oktober 2026
Var denne side nyttig?
Assistant
Responses are generated using AI and may contain mistakes.