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 samlBei 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.
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.
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).
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 ProviderDie aktuelle Version von Overleaf CE enthält einen Endpunkt zum Abrufen der Service-Provider-Metadaten: http://my-overleaf-instance.com/saml/metaDer 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.
Beispieldatei variables.env (minimal)
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=
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:
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)
Auf der Provider-Seite
Umgebungsvariable
SAML Endpoint
OVERLEAF_SAML_ENTRYPOINT und OVERLEAF_SAML_LOGOUT_URL
Audience
OVERLEAF_SAML_ISSUER
Download signing certificate (eine Datei)
OVERLEAF_SAML_IDP_CERT, siehe nächster Schritt
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:
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.
Getestete variables.env für 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
Zuletzt geändert am 6. Oktober 2026
War diese Seite hilfreich?
Assistant
Responses are generated using AI and may contain mistakes.