Skip to main content
Denne funktion er udviklet af yu-i-i/overleaf-cep. Her stiller vi noget dokumentation til rådighed for din konfiguration.

Konfiguration

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 saml Nå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'.

Miljøvariabler

  • OVERLEAF_SAML_IDENTITY_SERVICE_NAME
    • 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.
  • OVERLEAF_SAML_ENTRYPOINT (påkrævet)
    • Indgangs-URL for SAML-identitetstjenesten.
      • Eksempel: https://idp.example.com/simplesaml/saml2/idp/SSOService.php
      • Azure-eksempel: https://login.microsoftonline.com/8b26b46a-6dd3-45c7-a104-f883f4db1f6b/saml2
  • OVERLEAF_SAML_ISSUER (påkrævet)
    • Navnet på udstederen (Issuer).
  • OVERLEAF_SAML_AUDIENCE
    • 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
  • 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).
      • Eksempel: https://idp.example.com/simplesaml/saml2/idp/SingleLogoutService.php
  • OVERLEAF_SAML_ADDITIONAL_LOGOUT_PARAMS
    • 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 identitetsudbyderen Den aktuelle version af Overleaf CE indeholder et endpoint til at hente tjenesteudbyderens metadata: http://my-overleaf-instance.com/saml/meta Identitetsudbyderen 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.

Trin for trin: goauthentik

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:

Authentik: applikationens navn og slug

2. Vælg SAML Provider, og klik på Next:

Authentik: vælg SAML-udbyderen

3. Udfyld udbyderen:
  • Authorization Flow: default-provider-authorization-implicit-consent
  • ACS URL: https://overleaf.example.com/saml/login/callback
  • 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)

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:
4

Tilknyt attributterne

Authentik sender sine attributter under disse navne:
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.
variables.env
Sidst ændret 6. oktober 2026