Internt använder Overleafs OIDC-modul biblioteket passport-openidconnect. Om du har problem med att konfigurera OpenID Connect är det värt att läsa README-filen för passport-openidconnect för att få en känsla för vilken konfiguration den förväntar sig.Miljövariabeln EXTERNAL_AUTH krävs för att aktivera OIDC-autentiseringsmodulen. Den här miljövariabeln anger vilka externa autentiseringsmetoder som aktiveras. Variabelns värde är en lista. Om listan innehåller oidc aktiveras OIDC-autentisering.Till exempel: EXTERNAL_AUTH=ldap oidcNär OIDC-autentiseringsmetoden används omdirigeras användaren till identitetsleverantörens (IdP) autentiseringssida. Om IdP:n autentiserar användaren kontrolleras Overleafs användardatabas efter en post som innehåller ett thirdPartyIdentifiers-fält med följande struktur:
externalUserId måste matcha användar-ID:t i profilen som returneras av IdP-servern (se miljövariabeln OVERLEAF_OIDC_USER_ID_FIELD), och providerId måste matcha OIDC-leverantörens ID (se OVERLEAF_OIDC_PROVIDER_ID).Om ingen matchande post hittas söks databasen igenom efter en användare vars primära e-postadress matchar e-postadressen i IdP:ns användarprofil:
Om en sådan användare hittas uppdateras fältet thirdPartyIdentifiers.
Om ingen matchande användare hittas och JIT-kontoskapande inte är inaktiverat skapas en ny användare med e-postadressen och thirdPartyIdentifiers från IdP-profilen.
I båda fallen sägs användaren vara ”länkad” till den externa OIDC-användaren. Användaren kan avlänkas från OIDC-leverantören på sidan /user/settings.
Varje OpenID-leverantör (OP) publicerar ett discovery-dokument på <issuer>/.well-known/openid-configuration. Kopiera värdena därifrån i stället för att skriva in dem för hand; ett enda felaktigt tecken räcker för att inloggningen ska sluta fungera.
1
Hitta discovery-URL:en
Din OP visar den på sidan för klienten (leverantören) som du skapade för Overleaf. Öppna Applications > Providers i Authentik, välj leverantören och leta efter OpenID Configuration URL och OpenID Configuration Issuer:
Authentik: discovery-URL:en och utfärdaren för en leverantör (testinstans)
Kopiera issuer exakt, inklusive det avslutande snedstrecket. Overleaf jämför det tecken för tecken med utfärdaren i ID-token; varje skillnad gör att varje OIDC-inloggning misslyckas med:{"message":{"message":"ID token not issued by expected OpenID provider."}}I Authentik hör utfärdaren till applikationen (.../application/o/<application-slug>/). Det är inte adressen till Authentik-servern, även om authorize-, token- och userinfo-URL:erna delas av alla applikationer.
Värdena för följande fem obligatoriska variabler kan hittas via endpointen .well-known/openid-configuration hos din OpenID-leverantör (OP), se ovan.
OVERLEAF_OIDC_ISSUER(obligatorisk)
OVERLEAF_OIDC_AUTHORIZATION_URL(obligatorisk)
OVERLEAF_OIDC_TOKEN_URL(obligatorisk)
OVERLEAF_OIDC_USER_INFO_URL(obligatorisk)
OVERLEAF_OIDC_LOGOUT_URL(obligatorisk)
Värdena för följande två obligatoriska variabler tillhandahålls av administratören för din OP
OVERLEAF_OIDC_CLIENT_ID(obligatorisk)
OVERLEAF_OIDC_CLIENT_SECRET(obligatorisk)
OVERLEAF_OIDC_SCOPE
Standard: openid profile email
OVERLEAF_OIDC_PROVIDER_ID
Godtyckligt ID för OP:n, standardvärdet är oidc.
OVERLEAF_OIDC_PROVIDER_NAME
Namnet på OP:n, som används i avsnittet Linked Accounts på sidan /user/settings, standardvärdet är OIDC Provider.
OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
Visningsnamn för identitetstjänsten, som används på inloggningssidan (standard: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_DESCRIPTION
Beskrivning av OP:n, som används i avsnittet Linked Accounts (standard: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_INFO_LINK
URL för Learn more i OP-beskrivningen; som standard finns ingen Learn more-länk i beskrivningen.
OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
Visa inte OP:n på sidan /user/settings om användarens konto inte är länkat till OP:n, standard false.
OVERLEAF_OIDC_USER_ID_FIELD
Värdet på det här attributet används av Overleaf som externt användar-ID, standardvärdet är id. Andra rimliga värden är email och username (motsvarar OIDC-anspråket preferred_username).
OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
Begränsar Just-in-Time-kontoskapande (JIT) för användare som autentiseras via OIDC. Om variabeln sätts till en kommaseparerad lista med domännamn skapas ett nytt konto endast om domänen i användarens e-postadress matchar någon av de listade domänerna. Om domänen inte matchar måste en administratör manuellt skapa användarkontot med OIDC-användarens e-postadress, antingen med ett starkt slumpmässigt lösenord eller, helst, helt utan fältet hashedPassword. Domännamn kan inledas med jokertecknet *. för att matcha underdomäner.
Exempel: För att tillåta JIT-kontoskapande för användare med e-postadresser som name@example.com och name@math.example.com: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
Exempel: För att helt inaktivera JIT-kontoskapande: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN
Om den sätts till true uppdateras användarens fält first_name och last_name vid inloggning, och formuläret för användaruppgifter på sidan /user/settings inaktiveras.
OVERLEAF_OIDC_IS_ADMIN_FIELD och OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
När båda miljövariablerna är satta uppdaterar inloggningsprocessen user.isAdmin = true om profilen som returneras av OP:n innehåller attributet som anges av OVERLEAF_OIDC_IS_ADMIN_FIELD och dess värde antingen matchar OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE eller är en array som innehåller OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE (till exempel claimet groups); annars sätts user.isAdmin till false. Om OVERLEAF_OIDC_IS_ADMIN_FIELD är email används värdet av attributet emails[0].value vid matchningskontrollen.
Omdirigerings-URL:en för din OpenID-leverantör är https://my-overleaf-instance.com/oidc/login/callback.
Exempel på variables.env-fil
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
Här går vi igenom en konfiguration som har testats mot goauthentik. Ersätt https://overleaf.example.com med din OVERLEAF_SITE_URL och https://authentik.example.com med adressen till din Authentik.
1
Skapa leverantören
Öppna Applications > Providers i Authentik, klicka på New Provider, välj OAuth2/OpenID Provider och klicka på Next.
Client Type: Confidential.
Redirect URIs (under Protocol settings): lägg till https://overleaf.example.com/oidc/login/callback med matchningsläget Strict.
Kopiera Client ID och Client Secret nu, till OVERLEAF_OIDC_CLIENT_ID och OVERLEAF_OIDC_CLIENT_SECRET.
Authentik: Client ID och Client Secret för en ny leverantör
Authentik visar klienthemligheten endast medan du skapar leverantören. Senare erbjuder redigeringsformuläret bara Modify, som ersätter hemligheten med en ny.
2
Skapa applikationen
Öppna Applications > Applications, skapa en ny applikation, ge den ett namn och en slug, till exempel overleaf, och välj leverantören. Slugen blir en del av utfärdaren: https://authentik.example.com/application/o/overleaf/.
Authentik skickar användarens grupper som claimet groups, en array. Så här gör du medlemmarna i Authentik-gruppen Admins till administratörer i Overleaf:
Administratörsflaggan uppdateras vid varje OIDC-inloggning. Med fel fält eller värde förlorar varje administratör som loggar in via OIDC sina administratörsrättigheter, inklusive administratören som skapades i Launchpad. Testa mappningen med ett andra administratörskonto först.
Testad 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
Senast ändrad 6 oktober 2026
Var denna sida till hjälp?
Assistant
Responses are generated using AI and may contain mistakes.