Skip to main content
Den här funktionen har utvecklats av yu-i-i/overleaf-cep. Här tillhandahåller vi viss dokumentation för din konfiguration.

Konfiguration

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 oidc Nä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.

Hitta värdena med discovery-dokumentet

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)

URL:en ser oftast ut så här:
  • Keycloak: https://keycloak.example.com/realms/<realm>/.well-known/openid-configuration
  • Authentik: https://authentik.example.com/application/o/<application-slug>/.well-known/openid-configuration
2

Läs av värdena

Öppna URL:en i en webbläsare, eller kör på Overleaf-servern:
Svaret från Authentik ser ut så här:
Authentik listar även dessa URL:er längre ned på leverantörssidan:

Authentik: endpointerna för en leverantör (testinstans)

3

Kopiera in dem i variables.env

4

Kontrollera att Overleaf kan nå OP:n

Overleaf anropar token- och userinfo-endpointerna inifrån sin container, så OP:n måste vara nåbar därifrån, inte bara från din webbläsare:
Det ska skriva ut 200.
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.

Miljövariabler

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.
variables.env

Steg för steg: goauthentik

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/.
3

Kopiera URL:erna

Följ Hitta värdena med discovery-dokumentet ovan för att fylla i de fem URL:erna.
4

Mappa administratörerna (valfritt)

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.
variables.env
Senast ändrad 6 oktober 2026