Skip to main content
Diese Funktion wurde von yu-i-i/overleaf-cep entwickelt. Hier stellen wir einige Dokumente für Ihre Konfiguration bereit.

Konfiguration

Intern verwendet das Overleaf-SAML-Modul die Bibliothek passport-saml; die meisten der folgenden Konfigurationsoptionen werden an passport-saml durchgereicht. Wenn Sie Probleme bei der Konfiguration von SAML haben, lohnt es sich, die README von passport-saml zu lesen, um ein Gefühl für die erwartete Konfiguration zu bekommen. Die Umgebungsvariable EXTERNAL_AUTH ist erforderlich, um das SAML-Authentifizierungsmodul zu aktivieren. Diese Umgebungsvariable legt fest, welche externen Authentifizierungsmethoden aktiviert sind. Der Wert dieser Variablen ist eine Liste. Enthält die Liste saml, wird die SAML-Authentifizierung aktiviert. Beispiel: EXTERNAL_AUTH=ldap saml Bei Verwendung der SAML-Authentifizierungsmethode wird ein Benutzer auf die Authentifizierungsseite des Identity Providers (IdP) weitergeleitet. Wenn der IdP den Benutzer erfolgreich authentifiziert, wird die Overleaf-Benutzerdatenbank nach einem Datensatz durchsucht, der ein Feld samlIdentifiers mit folgender Struktur enthält:
Die externalUserId muss mit dem Wert der durch userIdAttribute angegebenen Eigenschaft im vom IdP-Server zurückgegebenen Benutzerprofil übereinstimmen. Wird kein passender Datensatz gefunden, wird die Datenbank nach einem Benutzer durchsucht, dessen primäre E-Mail-Adresse mit der E-Mail-Adresse im IdP-Benutzerprofil übereinstimmt:
  • Wird ein solcher Benutzer gefunden, wird das Feld hashedPassword gelöscht, um die lokale Authentifizierung zu deaktivieren, und das Feld samlIdentifiers wird hinzugefügt.
  • Wird kein passender Benutzer gefunden, wird ein neuer Benutzer mit der E-Mail-Adresse und den samlIdentifiers aus dem IdP-Profil angelegt.
Hinweis: Derzeit wird nur ein SAML-IdP unterstützt. Das Feld providerId in samlIdentifiers ist fest auf '1' gesetzt.

Umgebungsvariablen

  • OVERLEAF_SAML_IDENTITY_SERVICE_NAME
    • Anzeigename des Identitätsdienstes, der auf der Anmeldeseite verwendet wird (Standard: Log in with SAML IdP).
  • OVERLEAF_SAML_USER_ID_FIELD
    • Der Wert dieses Attributs wird von Overleaf als externe Benutzer-ID verwendet, Standard ist nameID.
  • OVERLEAF_SAML_EMAIL_FIELD
    • Name des E-Mail-Feldes im Benutzerprofil, Standard ist nameID.
  • OVERLEAF_SAML_FIRST_NAME_FIELD
    • Name des firstName-Feldes im Benutzerprofil, Standard ist givenName.
  • OVERLEAF_SAML_LAST_NAME_FIELD
    • Name des lastName-Feldes im Benutzerprofil, Standard ist lastName
  • OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN
    • Wenn auf true gesetzt, werden die Felder first_name und last_name des Benutzers bei der Anmeldung aktualisiert, und das Formular für Benutzerdetails auf der Seite /user/settings wird deaktiviert.
  • OVERLEAF_SAML_ENTRYPOINT (erforderlich)
    • Einstiegs-URL (Entrypoint) des SAML-Identitätsdienstes.
      • Beispiel: https://idp.example.com/simplesaml/saml2/idp/SSOService.php
      • Azure-Beispiel: https://login.microsoftonline.com/8b26b46a-6dd3-45c7-a104-f883f4db1f6b/saml2
  • OVERLEAF_SAML_ISSUER (erforderlich)
    • Der Name des Issuers.
  • OVERLEAF_SAML_AUDIENCE
    • Erwartete Audience der SAML-Antwort, Standard ist der Wert von OVERLEAF_SAML_ISSUER.
  • OVERLEAF_SAML_IDP_CERT (erforderlich)
    • Pfad zu einer Datei mit dem öffentlichen Zertifikat des Identity Providers, das zur Überprüfung der Signaturen eingehender SAML-Antworten verwendet wird. Verfügt der Identity Provider über mehrere gültige Signaturzertifikate, kann hier ein JSON-Array mit Pfaden zu den Zertifikaten angegeben werden.
      • Beispiel (ein Zertifikat): /var/lib/overleaf/certs/idp_cert.pem
      • Beispiel (mehrere Zertifikate): ["var/lib/overleaf/certs/idp_cert.pem", "/var/lib/overleaf/certs/idp_cert_old.pem"]
  • OVERLEAF_SAML_PUBLIC_CERT
    • Pfad zu einer Datei mit dem öffentlichen Signaturzertifikat, das in Authentifizierungsanfragen eingebettet wird, damit der IdP die Signaturen der eingehenden SAML-Anfrage überprüfen kann. Es ist erforderlich, wenn der Metadaten-Endpunkt eingerichtet wird und die Strategie mit einem OVERLEAF_SAML_PRIVATE_KEY konfiguriert ist. Zur Unterstützung der Zertifikatsrotation kann ein JSON-Array mit Pfaden zu Zertifikaten angegeben werden. Bei Angabe eines Arrays von Zertifikaten sollte der erste Eintrag dem aktuellen OVERLEAF_SAML_PRIVATE_KEY entsprechen. Weitere Einträge im Array können verwendet werden, um kommende Zertifikate an IdPs zu veröffentlichen, bevor der OVERLEAF_SAML_PRIVATE_KEY geändert wird.
  • OVERLEAF_SAML_PRIVATE_KEY
    • Pfad zu einer Datei mit einem PEM-formatierten privaten Schlüssel passend zu OVERLEAF_SAML_PUBLIC_CERT, der zum Signieren der von passport-saml gesendeten Authentifizierungsanfragen verwendet wird.
  • OVERLEAF_SAML_DECRYPTION_CERT
    • Pfad zu einer Datei mit einem öffentlichen Zertifikat, das für den Metadaten-Endpunkt verwendet wird.
  • OVERLEAF_SAML_DECRYPTION_PVK
    • Pfad zu einer Datei mit einem privaten Schlüssel passend zu OVERLEAF_SAML_DECRYPTION_CERT, der verwendet wird, um empfangene verschlüsselte Assertions zu entschlüsseln.
  • OVERLEAF_SAML_SIGNATURE_ALGORITHM
    • Legt optional den Signaturalgorithmus für das Signieren von Anfragen fest; gültige Werte sind ‘sha1’ (Standard), ‘sha256’ (bevorzugt), ‘sha512’ (am sichersten; prüfen Sie, ob Ihr IdP dies unterstützt).
  • OVERLEAF_SAML_ADDITIONAL_PARAMS
    • JSON-Dictionary mit zusätzlichen Query-Parametern, die allen Anfragen hinzugefügt werden.
  • OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS
    • JSON-Dictionary mit zusätzlichen Query-Parametern, die ‘authorize’-Anfragen hinzugefügt werden.
      • Beispiel: {"some_key": "some_value"}
  • OVERLEAF_SAML_IDENTIFIER_FORMAT
    • Name-Identifier-Format, das beim Identity Provider angefordert wird (Standard: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress). Bei Verwendung von urn:oasis:names:tc:SAML:2.0:nameid-format:persistent stellen Sie sicher, dass die Umgebungsvariable OVERLEAF_SAML_EMAIL_FIELD definiert ist. Wird urn:oasis:names:tc:SAML:2.0:nameid-format:transient benötigt, müssen Sie zusätzlich die Umgebungsvariable OVERLEAF_SAML_USER_ID_FIELD definieren, die beispielsweise auf die E-Mail-Adresse des Benutzers gesetzt werden kann.
  • OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS
    • Zulässige Zeitabweichung in Millisekunden zwischen Client und Server bei der Prüfung der Gültigkeitszeitstempel der Assertion-Bedingungen OnBefore und NotOnOrAfter. Mit -1 wird die Prüfung dieser Bedingungen vollständig deaktiviert. Standard ist 0.
  • OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX
    • Attribut AttributeConsumingServiceIndex, das dem AuthnRequest hinzugefügt wird, um dem IdP mitzuteilen, welcher Attributsatz an die Antwort angehängt werden soll (Link).
  • OVERLEAF_SAML_AUTHN_CONTEXT
    • JSON-Array mit Name-Identifier-Format-Werten zur Anforderung des Authentifizierungskontexts. Standard: ["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"].
  • OVERLEAF_SAML_FORCE_AUTHN
    • Wenn true, legt die initiale SAML-Anfrage des Service Providers fest, dass der IdP eine erneute Authentifizierung des Benutzers erzwingen soll, selbst wenn dieser eine gültige Sitzung besitzt.
  • OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT
    • Wenn true, wird kein bestimmter Authentifizierungskontext angefordert. Sie können dies beispielsweise auf true setzen, um zusätzliche Kontexte wie passwortlose Anmeldungen (urn:oasis:names:tc:SAML:2.0:ac:classes:X509) zu erlauben. Die Unterstützung zusätzlicher Kontexte hängt von Ihrem IdP ab.
  • OVERLEAF_SAML_AUTHN_REQUEST_BINDING
    • Wenn auf HTTP-POST gesetzt, wird die Authentifizierung beim IdP über HTTP-POST-Binding angefordert, andernfalls standardmäßig über HTTP-Redirect.
  • OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO
    • Bei always wird InResponseTo in eingehenden SAML-Antworten validiert.
    • Bei never wird InResponseTo nicht validiert (Standard).
    • Bei ifPresent wird InResponseTo nur validiert, wenn es in der eingehenden SAML-Antwort vorhanden ist.
  • OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED und OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED
    • Wenn auf true gesetzt (Standard), erwartet Overleaf, dass die SAML-Assertions bzw. die gesamte SAML-Authentifizierungsantwort vom IdP signiert sind. Sind beide Optionen false, muss mindestens eine der Assertions oder die Antwort signiert sein.
  • OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS
    • Legt die Ablaufzeit fest, nach der eine für eine SAML-Anfrage erzeugte Request-ID nicht mehr gültig ist, wenn sie in einer SAML-Antwort im Feld InResponseTo auftaucht. Standard: 28800000 (8 Stunden).
  • OVERLEAF_SAML_LOGOUT_URL
    • Basisadresse, die bei Logout-Anfragen aufgerufen wird (Standard: entryPoint).
      • Beispiel: https://idp.example.com/simplesaml/saml2/idp/SingleLogoutService.php
  • OVERLEAF_SAML_ADDITIONAL_LOGOUT_PARAMS
    • JSON-Dictionary mit zusätzlichen Query-Parametern, die ‘logout’-Anfragen hinzugefügt werden.
  • OVERLEAF_SAML_IS_ADMIN_FIELD und OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE
    • Wenn beide Umgebungsvariablen gesetzt sind, setzt der Anmeldevorgang user.isAdmin = true, sofern das vom SAML-IdP zurückgegebene Profil das durch OVERLEAF_SAML_IS_ADMIN_FIELD angegebene Attribut enthält und dessen Wert entweder mit OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE übereinstimmt oder ein Array ist, das OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE enthält; andernfalls wird user.isAdmin auf false gesetzt. Ist eine dieser Variablen nicht gesetzt, wird der Admin-Status nur bei der Erstellung des Admin-Benutzers im Launchpad auf true gesetzt.
Metadaten für den Identity Provider Die aktuelle Version von Overleaf CE enthält einen Endpunkt zum Abrufen der Service-Provider-Metadaten: http://my-overleaf-instance.com/saml/meta Der Identity Provider muss so konfiguriert werden, dass er den Overleaf-Server als „Service Provider“ erkennt. Anweisungen dazu finden Sie in der Dokumentation Ihres SAML-Servers. Nachfolgend ein Beispiel für geeignete Service-Provider-Metadaten:
Notieren Sie sich die Zertifikate, AssertionConsumerService.Location, SingleLogoutService.Location und EntityDescriptor.entityID und tragen Sie diese entsprechend in Ihre IdP-Konfiguration ein, oder senden Sie die Metadatendatei an den IdP-Administrator.

Schritt für Schritt: goauthentik

Diese Anleitung beschreibt eine Einrichtung, die mit goauthentik getestet wurde. Ersetzen Sie https://overleaf.example.com durch Ihre OVERLEAF_SITE_URL und https://authentik.example.com durch die Adresse Ihrer Authentik-Instanz.
1

Provider und Anwendung anlegen

Öffnen Sie in Authentik Applications > Applications und klicken Sie auf New Application. Der Assistent legt die Anwendung und ihren Provider gemeinsam an.1. Geben Sie der Anwendung einen Namen und einen Slug, zum Beispiel overleaf, und klicken Sie auf Next:

Authentik: Name und Slug der Anwendung

2. Wählen Sie SAML Provider und klicken Sie auf Next:

Authentik: SAML-Provider auswählen

3. Füllen Sie die Provider-Einstellungen aus:
  • Authorization Flow: default-provider-authorization-implicit-consent
  • ACS URL: https://overleaf.example.com/saml/login/callback
  • Audience: ein Name für Overleaf, zum Beispiel overleaf. Overleaf sendet ihn als OVERLEAF_SAML_ISSUER.

Authentik: der SAML-Provider der Anwendung

4. Öffnen Sie Advanced protocol settings und legen Sie Folgendes fest:
  • Signing Certificate: ein Zertifikat, zum Beispiel authentik Self-signed Certificate
  • Sign assertions und Sign responses: beide aktiviert
  • Service Provider Binding: Post

Authentik: Signierung und Binding eines getesteten Providers (Testinstanz)

5. Klicken Sie auf Next bis zur letzten Seite und schließen Sie die Anwendung ab.
2

Werte von der Provider-Seite kopieren

Öffnen Sie den Provider erneut. Alles, was Overleaf benötigt, finden Sie in seiner Übersicht:

Authentik: Übersicht eines SAML-Providers (Testinstanz)

EntityID/Issuer unter SAML Configuration ist der Name von Authentik selbst. Tragen Sie ihn nicht in OVERLEAF_SAML_ISSUER ein, sondern verwenden Sie die Audience.
3

Signaturzertifikat installieren

Klicken Sie unter Download signing certificate auf Download und speichern Sie die Datei als data/overleaf/certs/idp_cert.pem in Ihrem Toolkit-Verzeichnis. Der Container sieht sie als /var/lib/overleaf/certs/idp_cert.pem:
4

Attribute zuordnen

Authentik sendet seine Attribute unter diesen Namen:
Die Gruppen werden als http://schemas.xmlsoap.org/claims/Group übermittelt, eine Liste. Um die Mitglieder der Authentik-Gruppe Admins zu Administratoren von Overleaf zu machen:
Das Admin-Flag wird bei jeder SAML-Anmeldung aktualisiert. Bei einem falschen Feld oder Wert verliert jeder Administrator, der sich über SAML anmeldet, seine Administratorrechte. Testen Sie die Zuordnung zuerst mit einem zweiten Administratorkonto.
variables.env
Zuletzt geändert am 6. Oktober 2026