Internt bruker OIDC-modulen i Overleaf biblioteket passport-openidconnect. Hvis du har problemer med å konfigurere OpenID Connect, er det lurt å lese README-filen for passport-openidconnect for å få et inntrykk av hvilken konfigurasjon den forventer.Miljøvariabelen EXTERNAL_AUTH er påkrevd for å aktivere OIDC-autentiseringsmodulen. Denne miljøvariabelen angir hvilke eksterne autentiseringsmetoder som er aktivert. Verdien av variabelen er en liste. Hvis listen inneholder oidc, aktiveres OIDC-autentisering.For eksempel: EXTERNAL_AUTH=ldap oidcNår OIDC-autentiseringsmetoden brukes, blir brukeren omdirigert til autentiseringssiden til identitetsleverandøren (IdP). Hvis IdP-en autentiserer brukeren, søkes det i Overleafs brukerdatabase etter en post som inneholder et thirdPartyIdentifiers-felt med følgende struktur:
externalUserId må samsvare med bruker-ID-en i profilen som returneres av IdP-serveren (se miljøvariabelen OVERLEAF_OIDC_USER_ID_FIELD), og providerId må samsvare med ID-en til OIDC-leverandøren (se OVERLEAF_OIDC_PROVIDER_ID).Hvis ingen samsvarende post blir funnet, søkes det i databasen etter en bruker med en primær e-postadresse som samsvarer med e-postadressen i brukerprofilen fra IdP-en:
Hvis en slik bruker blir funnet, oppdateres feltet thirdPartyIdentifiers.
Hvis ingen samsvarende bruker blir funnet og JIT-opprettelse av kontoer ikke er deaktivert, opprettes en ny bruker med e-postadressen og thirdPartyIdentifiers fra IdP-profilen.
I begge tilfeller sies brukeren å være «koblet» til den eksterne OIDC-brukeren. Brukeren kan kobles fra OIDC-leverandøren på siden /user/settings.
Hver OpenID-leverandør (OP) publiserer et discovery-dokument på <issuer>/.well-known/openid-configuration. Kopier verdiene derfra i stedet for å skrive dem inn for hånd; ett feil tegn er nok til at innloggingen slutter å fungere.
1
Finn discovery-URL-en
OP-en din viser den på siden til klienten (leverandøren) du opprettet for Overleaf. I Authentik åpner du Applications > Providers, velger leverandøren og ser etter OpenID Configuration URL og OpenID Configuration Issuer:
Authentik: discovery-URL-en og utstederen til en leverandør (testinstans)
Kopier issuer nøyaktig, inkludert den avsluttende skråstreken. Overleaf sammenligner den tegn for tegn med utstederen i ID-tokenet; enhver forskjell gjør at alle OIDC-innlogginger mislykkes med:{"message":{"message":"ID token not issued by expected OpenID provider."}}I Authentik hører utstederen til applikasjonen (.../application/o/<application-slug>/). Den er ikke adressen til Authentik-serveren, selv om authorize-, token- og userinfo-URL-ene deles av alle applikasjoner.
Verdiene for de følgende fem påkrevde variablene finner du via endepunktet .well-known/openid-configuration hos OpenID-leverandøren (OP) din, se ovenfor.
OVERLEAF_OIDC_ISSUER(påkrevd)
OVERLEAF_OIDC_AUTHORIZATION_URL(påkrevd)
OVERLEAF_OIDC_TOKEN_URL(påkrevd)
OVERLEAF_OIDC_USER_INFO_URL(påkrevd)
OVERLEAF_OIDC_LOGOUT_URL(påkrevd)
Verdiene for de følgende to påkrevde variablene får du fra administratoren av OP-en din
OVERLEAF_OIDC_CLIENT_ID(påkrevd)
OVERLEAF_OIDC_CLIENT_SECRET(påkrevd)
OVERLEAF_OIDC_SCOPE
Standard: openid profile email
OVERLEAF_OIDC_PROVIDER_ID
Vilkårlig ID for OP-en, standard er oidc.
OVERLEAF_OIDC_PROVIDER_NAME
Navnet på OP-en, brukt i delen Linked Accounts på siden /user/settings, standard er OIDC Provider.
OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
Visningsnavn for identitetstjenesten, brukt på innloggingssiden (standard: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_DESCRIPTION
Beskrivelse av OP-en, brukt i delen Linked Accounts (standard: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_INFO_LINK
Learn more-URL i beskrivelsen av OP-en; standard: ingen Learn more-lenke i beskrivelsen.
OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
Ikke vis OP-en på siden /user/settings hvis brukerens konto ikke er koblet til OP-en; standard false.
OVERLEAF_OIDC_USER_ID_FIELD
Verdien av dette attributtet brukes av Overleaf som ekstern bruker-ID; standard er id. Andre mulige fornuftige verdier er email og username (tilsvarer OIDC-claimet preferred_username).
OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
Begrenser Just-in-Time-opprettelse (JIT) av kontoer for brukere som autentiserer seg via OIDC. Hvis den er satt til en kommaseparert liste med domenenavn, opprettes en ny konto bare hvis domenet i brukerens e-postadresse samsvarer med et av domenene i listen. Hvis domenet ikke samsvarer, må en administrator opprette brukerkontoen manuelt med OIDC-brukerens e-postadresse, enten med et sterkt tilfeldig passord eller helst helt uten feltet hashedPassword. Domenenavn kan begynne med jokertegnet *. for å samsvare med underdomener.
Eksempel: For å tillate JIT-opprettelse av kontoer for brukere med e-postadresser som name@example.com og name@math.example.com: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
Eksempel: For å deaktivere JIT-opprettelse av kontoer fullstendig: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN
Hvis den er satt til true, oppdateres brukerens felt first_name og last_name ved innlogging, og skjemaet for brukeropplysninger på siden /user/settings deaktiveres.
OVERLEAF_OIDC_IS_ADMIN_FIELD og OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
Når begge miljøvariablene er satt, oppdaterer innloggingsprosessen user.isAdmin = true hvis profilen som returneres av OP-en, inneholder attributtet angitt av OVERLEAF_OIDC_IS_ADMIN_FIELD og verdien enten samsvarer med OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE eller er en matrise som inneholder OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE (for eksempel groups-claimet); ellers settes user.isAdmin til false. Hvis OVERLEAF_OIDC_IS_ADMIN_FIELD er email, brukes verdien av attributtet emails[0].value til samsvarskontrollen.
Omdirigerings-URL-en for OpenID-leverandøren din er https://my-overleaf-instance.com/oidc/login/callback.
Eksempel 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
Dette er en gjennomgang av et oppsett som er testet mot goauthentik. Erstatt https://overleaf.example.com med din OVERLEAF_SITE_URL og https://authentik.example.com med adressen til din Authentik.
1
Opprett leverandøren
I Authentik åpner du Applications > Providers, klikker New Provider, velger OAuth2/OpenID Provider og klikker Next.
Client Type: Confidential.
Redirect URIs (under Protocol settings): legg til https://overleaf.example.com/oidc/login/callback med samsvarsmodusen Strict.
Kopier Client ID og Client Secret nå, inn i OVERLEAF_OIDC_CLIENT_ID og OVERLEAF_OIDC_CLIENT_SECRET.
Authentik: Client ID og Client Secret for en ny leverandør
Authentik viser klienthemmeligheten bare mens du oppretter leverandøren. Senere tilbyr redigeringsskjemaet bare Modify, som erstatter hemmeligheten med en ny.
2
Opprett applikasjonen
Åpne Applications > Applications, opprett en ny applikasjon, gi den et navn og en slug, for eksempel overleaf, og velg leverandøren. Slugen blir en del av utstederen: https://authentik.example.com/application/o/overleaf/.
Administratorflagget oppdateres ved hver OIDC-innlogging. Med feil felt eller verdi mister alle administratorer som logger inn via OIDC administratorrettighetene, inkludert administratoren som ble opprettet i launchpad. Test tilordningen med en ekstra administratorkonto først.
Testet variables.env for 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
Sist endret 6. oktober 2026
Var denne siden nyttig?
Assistant
Responses are generated using AI and may contain mistakes.