Intern verwendet das Overleaf-OIDC-Modul die Bibliothek passport-openidconnect. Wenn Sie Probleme bei der Konfiguration von OpenID Connect haben, lohnt es sich, die README von passport-openidconnect zu lesen, um ein Gefühl für die erwartete Konfiguration zu bekommen.Die Umgebungsvariable EXTERNAL_AUTH ist erforderlich, um das OIDC-Authentifizierungsmodul zu aktivieren. Diese Umgebungsvariable legt fest, welche externen Authentifizierungsmethoden aktiviert sind. Der Wert dieser Variablen ist eine Liste. Enthält die Liste oidc, wird die OIDC-Authentifizierung aktiviert.Beispiel: EXTERNAL_AUTH=ldap oidcBei Verwendung der OIDC-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 thirdPartyIdentifiers mit folgender Struktur enthält:
Die externalUserId muss mit der Benutzer-ID im vom IdP-Server zurückgegebenen Profil übereinstimmen (siehe Umgebungsvariable OVERLEAF_OIDC_USER_ID_FIELD), und providerId muss mit der ID des OIDC-Providers übereinstimmen (siehe OVERLEAF_OIDC_PROVIDER_ID).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 thirdPartyIdentifiers aktualisiert.
Wird kein passender Benutzer gefunden und ist die JIT-Kontoerstellung nicht deaktiviert, wird ein neuer Benutzer mit der E-Mail-Adresse und den thirdPartyIdentifiers aus dem IdP-Profil angelegt.
In beiden Fällen gilt der Benutzer als mit dem externen OIDC-Benutzer „verknüpft“. Der Benutzer kann die Verknüpfung mit dem OIDC-Provider auf der Seite /user/settings aufheben.
Jeder OpenID Provider (OP) veröffentlicht ein Discovery-Dokument unter <issuer>/.well-known/openid-configuration. Kopieren Sie die Werte daraus, statt sie von Hand einzutippen; ein einziges falsches Zeichen genügt, damit die Anmeldung fehlschlägt.
1
Discovery-URL finden
Ihr OP zeigt sie auf der Seite des Clients (Providers) an, den Sie für Overleaf angelegt haben. Öffnen Sie in Authentik Applications > Providers, wählen Sie den Provider aus und suchen Sie nach OpenID Configuration URL und OpenID Configuration Issuer:
Authentik: Discovery-URL und Issuer eines Providers (Testinstanz)
Overleaf ruft die Token- und Userinfo-Endpunkte aus seinem Container heraus auf. Der OP muss daher von dort aus erreichbar sein, nicht nur von Ihrem Browser:
Kopieren Sie issuer exakt, einschließlich des abschließenden Schrägstrichs. Overleaf vergleicht ihn Zeichen für Zeichen mit dem Issuer im ID-Token; jede Abweichung lässt jede OIDC-Anmeldung mit folgender Meldung fehlschlagen:{"message":{"message":"ID token not issued by expected OpenID provider."}}In Authentik gehört der Issuer zur Anwendung (.../application/o/<application-slug>/). Er ist nicht die Adresse des Authentik-Servers, obwohl die Authorize-, Token- und Userinfo-URLs von allen Anwendungen gemeinsam genutzt werden.
Die Werte der folgenden fünf erforderlichen Variablen finden Sie über den Endpunkt .well-known/openid-configuration Ihres OpenID Providers (OP), siehe oben.
OVERLEAF_OIDC_ISSUER(erforderlich)
OVERLEAF_OIDC_AUTHORIZATION_URL(erforderlich)
OVERLEAF_OIDC_TOKEN_URL(erforderlich)
OVERLEAF_OIDC_USER_INFO_URL(erforderlich)
OVERLEAF_OIDC_LOGOUT_URL(erforderlich)
Die Werte der folgenden zwei erforderlichen Variablen werden Ihnen vom Administrator Ihres OP bereitgestellt
OVERLEAF_OIDC_CLIENT_ID(erforderlich)
OVERLEAF_OIDC_CLIENT_SECRET(erforderlich)
OVERLEAF_OIDC_SCOPE
Standard: openid profile email
OVERLEAF_OIDC_PROVIDER_ID
Beliebige ID des OP, Standard ist oidc.
OVERLEAF_OIDC_PROVIDER_NAME
Der Name des OP, der im Abschnitt Linked Accounts der Seite /user/settings verwendet wird, Standard ist OIDC Provider.
OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
Anzeigename des Identitätsdienstes, der auf der Anmeldeseite verwendet wird (Standard: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_DESCRIPTION
Beschreibung des OP, die im Abschnitt Linked Accounts verwendet wird (Standard: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_INFO_LINK
Learn more-URL in der OP-Beschreibung, Standard: kein Learn more-Link in der Beschreibung.
OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
Den OP auf der Seite /user/settings nicht anzeigen, wenn das Benutzerkonto nicht mit dem OP verknüpft ist, Standard false.
OVERLEAF_OIDC_USER_ID_FIELD
Der Wert dieses Attributs wird von Overleaf als externe Benutzer-ID verwendet, Standard ist id. Weitere sinnvolle Werte sind email und username (entspricht dem OIDC-Claim preferred_username).
OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
Schränkt die Just-in-Time-(JIT-)Kontoerstellung für Benutzer ein, die sich über OIDC authentifizieren. Ist hier eine kommagetrennte Liste von Domainnamen gesetzt, wird ein neues Konto nur erstellt, wenn die Domain der E-Mail-Adresse des Benutzers mit einer der aufgeführten Domains übereinstimmt. Stimmt die Domain nicht überein, muss ein Administrator das Benutzerkonto manuell mit der E-Mail-Adresse des OIDC-Benutzers anlegen – entweder mit einem starken zufälligen Passwort oder vorzugsweise ganz ohne das Feld hashedPassword. Domainnamen können ein vorangestelltes *. als Platzhalter enthalten, um Subdomains abzudecken.
Beispiel: Um die JIT-Kontoerstellung für Benutzer mit E-Mail-Adressen wie name@example.com und name@math.example.com zu erlauben: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
Beispiel: Um die JIT-Kontoerstellung vollständig zu deaktivieren: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
OVERLEAF_OIDC_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_OIDC_IS_ADMIN_FIELD und OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
Wenn beide Umgebungsvariablen gesetzt sind, setzt der Anmeldevorgang user.isAdmin = true, sofern das vom OP zurückgegebene Profil das durch OVERLEAF_OIDC_IS_ADMIN_FIELD angegebene Attribut enthält und dessen Wert entweder mit OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE übereinstimmt oder ein Array ist, das OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE enthält (zum Beispiel der groups-Claim); andernfalls wird user.isAdmin auf false gesetzt. Ist OVERLEAF_OIDC_IS_ADMIN_FIELD gleich email, wird der Wert des Attributs emails[0].value für die Prüfung verwendet.
Die Redirect-URL für Ihren OpenID Provider lautet https://my-overleaf-instance.com/oidc/login/callback.
Beispieldatei variables.env
variables.env
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################### OIDC for CE ###################EXTERNAL_AUTH=oidcOVERLEAF_OIDC_PROVIDER_ID=oidcOVERLEAF_OIDC_ISSUER=https://keycloak.provider.com/realms/exampleOVERLEAF_OIDC_AUTHORIZATION_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/authOVERLEAF_OIDC_TOKEN_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/tokenOVERLEAF_OIDC_USER_INFO_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/userinfoOVERLEAF_OIDC_LOGOUT_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/logoutOVERLEAF_OIDC_CLIENT_ID=Overleaf-OIDCOVERLEAF_OIDC_CLIENT_SECRET=DoNotUseThisATGgaAcTgCcATgGATTACAagGtTCaGcGTAGOVERLEAF_OIDC_IDENTITY_SERVICE_NAME='Log in with Keycloak OIDC Provider'OVERLEAF_OIDC_PROVIDER_NAME=OIDC Keycloak ProviderOVERLEAF_OIDC_PROVIDER_INFO_LINK=https://openid.netOVERLEAF_OIDC_IS_ADMIN_FIELD=emailOVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE=overleaf.admin@example.comOVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN=false
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 anlegen
Öffnen Sie in Authentik Applications > Providers, klicken Sie auf New Provider, wählen Sie OAuth2/OpenID Provider und klicken Sie auf Next.
Client Type: Confidential.
Redirect URIs (unter Protocol settings): Fügen Sie https://overleaf.example.com/oidc/login/callback mit dem Abgleichmodus Strict hinzu.
Kopieren Sie Client ID und Client Secret jetzt in OVERLEAF_OIDC_CLIENT_ID und OVERLEAF_OIDC_CLIENT_SECRET.
Authentik: Client ID und Client Secret eines neuen Providers
Authentik zeigt das Client Secret nur beim Anlegen des Providers an. Später bietet das Bearbeitungsformular nur noch Modify an, wodurch das Secret durch ein neues ersetzt wird.
2
Anwendung anlegen
Öffnen Sie Applications > Applications, legen Sie eine neue Anwendung an, geben Sie ihr einen Namen und einen Slug, zum Beispiel overleaf, und wählen Sie den Provider aus. Der Slug wird Teil des Issuers: https://authentik.example.com/application/o/overleaf/.
Authentik sendet die Gruppen des Benutzers als groups-Claim, ein Array. Um die Mitglieder der Authentik-Gruppe Admins zu Administratoren von Overleaf zu machen:
Das Admin-Flag wird bei jeder OIDC-Anmeldung aktualisiert. Bei einem falschen Feld oder Wert verliert jeder Administrator, der sich über OIDC anmeldet, seine Administratorrechte, einschließlich des im Launchpad angelegten Administrators. Testen Sie die Zuordnung zuerst mit einem zweiten Administratorkonto.
Getestete variables.env für goauthentik
variables.env
EXTERNAL_AUTH=oidcOVERLEAF_OIDC_PROVIDER_ID=authentikOVERLEAF_OIDC_IDENTITY_SERVICE_NAME=Log in with AuthentikOVERLEAF_OIDC_ISSUER=https://authentik.example.com/application/o/overleaf/OVERLEAF_OIDC_AUTHORIZATION_URL=https://authentik.example.com/application/o/authorize/OVERLEAF_OIDC_TOKEN_URL=https://authentik.example.com/application/o/token/OVERLEAF_OIDC_USER_INFO_URL=https://authentik.example.com/application/o/userinfo/OVERLEAF_OIDC_LOGOUT_URL=https://authentik.example.com/application/o/overleaf/end-session/OVERLEAF_OIDC_CLIENT_ID=<Client ID>OVERLEAF_OIDC_CLIENT_SECRET=<Client Secret>OVERLEAF_OIDC_USER_ID_FIELD=usernameOVERLEAF_OIDC_IS_ADMIN_FIELD=groupsOVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE=AdminsOVERLEAF_OIDC_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.