Internt bruger Overleafs OIDC-modul biblioteket passport-openidconnect. Hvis du har problemer med at konfigurere OpenID Connect, er det en god idé at læse README-filen for passport-openidconnect for at få en fornemmelse af den konfiguration, det forventer.Miljøvariablen EXTERNAL_AUTH er påkrævet for at aktivere OIDC-godkendelsesmodulet. Denne miljøvariabel angiver, hvilke eksterne godkendelsesmetoder der er aktiveret. Variablens værdi er en liste. Hvis listen indeholder oidc, aktiveres OIDC-godkendelse.For eksempel: EXTERNAL_AUTH=ldap oidcNår OIDC-godkendelsesmetoden bruges, omdirigeres brugeren til identitetsudbyderens (IdP) godkendelsesside. Hvis IdP’en godkender brugeren, kontrolleres Overleafs brugerdatabase for en post, der indeholder et thirdPartyIdentifiers-felt med følgende struktur:
externalUserId skal matche bruger-ID’et i den profil, som IdP-serveren returnerer (se miljøvariablen OVERLEAF_OIDC_USER_ID_FIELD), og providerId skal matche ID’et for OIDC-udbyderen (se OVERLEAF_OIDC_PROVIDER_ID).Hvis der ikke findes en matchende post, søges der i databasen efter en bruger, hvis primære e-mailadresse matcher e-mailadressen i IdP-brugerprofilen:
Hvis en sådan bruger findes, opdateres feltet thirdPartyIdentifiers.
Hvis der ikke findes en matchende bruger, og JIT-kontooprettelse ikke er deaktiveret, oprettes en ny bruger med e-mailadressen og thirdPartyIdentifiers fra IdP-profilen.
I begge tilfælde siges brugeren at være “linket” til den eksterne OIDC-bruger. Brugeren kan fjerne linket til OIDC-udbyderen på siden /user/settings.
Alle OpenID-udbydere (OP) offentliggør et discovery-dokument på <issuer>/.well-known/openid-configuration. Kopiér værdierne derfra i stedet for at skrive dem i hånden; ét forkert tegn er nok til at ødelægge login.
1
Find discovery-URL'en
Din OP viser den på siden for den klient (udbyder), du har oprettet til Overleaf. I Authentik skal du åbne Applications > Providers, vælge udbyderen og kigge efter OpenID Configuration URL og OpenID Configuration Issuer:
Authentik: discovery-URL'en og issueren for en udbyder (testinstans)
Kopiér issuer nøjagtigt, inklusive den afsluttende skråstreg. Overleaf sammenligner den tegn for tegn med issueren i ID-tokenet; enhver forskel får alle OIDC-logins til at mislykkes med:{"message":{"message":"ID token not issued by expected OpenID provider."}}I Authentik hører issueren til applikationen (.../application/o/<application-slug>/). Den er ikke adressen på Authentik-serveren, selvom authorize-, token- og userinfo-URL’erne deles af alle applikationer.
Værdierne for de følgende fem påkrævede variabler kan findes via endpointet .well-known/openid-configuration hos din OpenID-udbyder (OP), se ovenfor.
OVERLEAF_OIDC_ISSUER(påkrævet)
OVERLEAF_OIDC_AUTHORIZATION_URL(påkrævet)
OVERLEAF_OIDC_TOKEN_URL(påkrævet)
OVERLEAF_OIDC_USER_INFO_URL(påkrævet)
OVERLEAF_OIDC_LOGOUT_URL(påkrævet)
Værdierne for de følgende to påkrævede variabler leveres af administratoren af din OP
OVERLEAF_OIDC_CLIENT_ID(påkrævet)
OVERLEAF_OIDC_CLIENT_SECRET(påkrævet)
OVERLEAF_OIDC_SCOPE
Standard: openid profile email
OVERLEAF_OIDC_PROVIDER_ID
Vilkårligt ID for OP’en, standard er oidc.
OVERLEAF_OIDC_PROVIDER_NAME
Navnet på OP’en, der bruges i afsnittet Linked Accounts på siden /user/settings, standard er OIDC Provider.
OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
Visningsnavn for identitetstjenesten, der bruges på login-siden (standard: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_DESCRIPTION
Beskrivelse af OP’en, der bruges i afsnittet Linked Accounts (standard: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_INFO_LINK
Learn more-URL i beskrivelsen af OP’en, standard: intet Learn more-link i beskrivelsen.
OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
Vis ikke OP’en på siden /user/settings, hvis brugerens konto ikke er linket til OP’en, standard false.
OVERLEAF_OIDC_USER_ID_FIELD
Værdien af denne attribut bruges af Overleaf som eksternt bruger-ID, standard er id. Andre mulige fornuftige værdier er email og username (svarende til OIDC-claimet preferred_username).
OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
Begrænser Just-in-Time-kontooprettelse (JIT) for brugere, der godkendes via OIDC. Hvis variablen sættes til en kommasepareret liste over domænenavne, oprettes en ny konto kun, hvis domænet i brugerens e-mailadresse matcher et af de angivne domæner. Hvis domænet ikke matcher, skal en administrator manuelt oprette brugerkontoen med OIDC-brugerens e-mailadresse, enten med en stærk tilfældig adgangskode eller helst helt uden feltet hashedPassword. Domænenavne kan indeholde et foranstillet *.-jokertegn for at matche underdomæner.
Eksempel: For at tillade JIT-kontooprettelse for brugere med e-mailadresser som name@example.com og name@math.example.com: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
Eksempel: For helt at deaktivere JIT-kontooprettelse: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN
Hvis den er sat til true, opdateres brugerens felter first_name og last_name ved login, og formularen med brugeroplysninger på siden /user/settings deaktiveres.
OVERLEAF_OIDC_IS_ADMIN_FIELD og OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
Når begge miljøvariabler er sat, opdaterer login-processen user.isAdmin = true, hvis den profil, OP’en returnerer, indeholder den attribut, der er angivet med OVERLEAF_OIDC_IS_ADMIN_FIELD, og dens værdi enten matcher OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE eller er et array, der indeholder OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE (for eksempel claimet groups); ellers sættes user.isAdmin til false. Hvis OVERLEAF_OIDC_IS_ADMIN_FIELD er email, bruges værdien af attributten emails[0].value til matchkontrollen.
Omdirigerings-URL’en til din OpenID-udbyder 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
Denne vejledning gennemgår en opsætning, der er testet mod goauthentik. Erstat https://overleaf.example.com med din OVERLEAF_SITE_URL og https://authentik.example.com med adressen på din Authentik.
1
Opret udbyderen
I Authentik skal du åbne Applications > Providers, klikke på New Provider, vælge OAuth2/OpenID Provider og klikke på Next.
Client Type: Confidential.
Redirect URIs (under Protocol settings): tilføj https://overleaf.example.com/oidc/login/callback med matchtilstanden Strict.
Kopiér Client ID og Client Secret nu, ind i OVERLEAF_OIDC_CLIENT_ID og OVERLEAF_OIDC_CLIENT_SECRET.
Authentik: Client ID og Client Secret for en ny udbyder
Authentik viser kun client secret, mens du opretter udbyderen. Senere tilbyder redigeringsformularen kun Modify, som erstatter secret med en ny.
2
Opret applikationen
Åbn Applications > Applications, opret en ny applikation, giv den et navn og en slug, for eksempel overleaf, og vælg udbyderen. Sluggen bliver en del af issueren: https://authentik.example.com/application/o/overleaf/.
Administratorflaget opdateres ved hvert OIDC-login. Med et forkert felt eller en forkert værdi mister alle administratorer, der logger ind via OIDC, deres administratorrettigheder, inklusive den administrator, der blev oprettet i launchpad. Test tilknytningen med en anden administratorkonto først.
Testet variables.env til 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
Sidst ændret 6. oktober 2026
Var denne side nyttig?
Assistant
Responses are generated using AI and may contain mistakes.