Skip to main content
Denne funksjonen er utviklet av yu-i-i/overleaf-cep. Her tilbyr vi litt dokumentasjon for konfigurasjonen din.

Konfigurasjon

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

Miljøvariabler

  • OVERLEAF_SAML_IDENTITY_SERVICE_NAME
    • 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.
  • OVERLEAF_SAML_ENTRYPOINT (påkrevd)
    • Inngangspunkt-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åkrevd)
    • Navnet på utstederen (Issuer).
  • OVERLEAF_SAML_AUDIENCE
    • 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
  • 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).
      • Eksempel: https://idp.example.com/simplesaml/saml2/idp/SingleLogoutService.php
  • OVERLEAF_SAML_ADDITIONAL_LOGOUT_PARAMS
    • 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øren Gjeldende versjon av Overleaf CE inkluderer et endepunkt for å hente metadata for tjenesteleverandøren: http://my-overleaf-instance.com/saml/meta Identitetsleverandø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.

Trinn for trinn: goauthentik

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:

Authentik: navn og slug for applikasjonen

2. Velg SAML Provider og klikk Next:

Authentik: velg SAML-leverandøren

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

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

Tilordne attributtene

Authentik sender attributtene sine under disse navnene:
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.
variables.env
Sist endret 6. oktober 2026