Sisäisesti Overleafin OIDC-moduuli käyttää passport-openidconnect-kirjastoa. Jos OpenID Connectin määrittämisessä on ongelmia, kannattaa lukea passport-openidconnect-kirjaston README, jotta saat käsityksen sen odottamasta määrityksestä.OIDC-todennusmoduulin käyttöönotto edellyttää ympäristömuuttujaa EXTERNAL_AUTH. Tämä ympäristömuuttuja määrittää, mitkä ulkoiset todennusmenetelmät aktivoidaan. Muuttujan arvo on luettelo. Jos luettelo sisältää arvon oidc, OIDC-todennus aktivoidaan.Esimerkiksi: EXTERNAL_AUTH=ldap oidcOIDC-todennusmenetelmää käytettäessä käyttäjä ohjataan identiteetintarjoajan (IdP) todennussivustolle. Jos IdP todentaa käyttäjän onnistuneesti, Overleafin käyttäjätietokannasta etsitään tietue, joka sisältää seuraavanlaisen thirdPartyIdentifiers-kentän:
Kentän externalUserId on vastattava IdP-palvelimen palauttaman profiilin käyttäjätunnusta (katso ympäristömuuttuja OVERLEAF_OIDC_USER_ID_FIELD), ja kentän providerId on vastattava OIDC-tarjoajan tunnusta (katso OVERLEAF_OIDC_PROVIDER_ID).Jos vastaavaa tietuetta ei löydy, tietokannasta etsitään käyttäjää, jonka ensisijainen sähköpostiosoite vastaa IdP:n käyttäjäprofiilin sähköpostiosoitetta:
Jos tällainen käyttäjä löytyy, thirdPartyIdentifiers-kenttä päivitetään.
Jos vastaavaa käyttäjää ei löydy eikä JIT-tilinluontia ole poistettu käytöstä, luodaan uusi käyttäjä IdP-profiilin sähköpostiosoitteella ja thirdPartyIdentifiers-tiedoilla.
Molemmissa tapauksissa käyttäjän sanotaan olevan “linkitetty” ulkoiseen OIDC-käyttäjään. Linkityksen OIDC-tarjoajaan voi purkaa sivulla /user/settings.
Jokainen OpenID-tarjoaja (OP) julkaisee discovery-dokumentin osoitteessa <issuer>/.well-known/openid-configuration. Kopioi arvot sieltä sen sijaan, että kirjoittaisit ne käsin; yksikin väärä merkki riittää rikkomaan kirjautumisen.
1
Etsi discovery-URL
OP näyttää sen sivulla, jolla on Overleafia varten luomasi asiakas (tarjoaja). Avaa Authentikissa Applications > Providers, valitse tarjoaja ja etsi kohdat OpenID Configuration URL ja OpenID Configuration Issuer:
Authentik: tarjoajan discovery-URL ja myöntäjä (testi-instanssi)
Kopioi issuer täsmälleen, myös loppukauttaviiva. Overleaf vertaa sitä merkki merkiltä ID-tokenin myöntäjään; mikä tahansa ero saa jokaisen OIDC-kirjautumisen epäonnistumaan virheellä:{"message":{"message":"ID token not issued by expected OpenID provider."}}Authentikissa myöntäjä kuuluu sovellukselle (.../application/o/<application-slug>/). Se ei ole Authentik-palvelimen osoite, vaikka authorize-, token- ja userinfo-URL-osoitteet ovat kaikille sovelluksille yhteiset.
Seuraavien viiden pakollisen muuttujan arvot löytyvät OpenID-tarjoajasi (OP) .well-known/openid-configuration-päätepisteestä, katso yllä.
OVERLEAF_OIDC_ISSUER(pakollinen)
OVERLEAF_OIDC_AUTHORIZATION_URL(pakollinen)
OVERLEAF_OIDC_TOKEN_URL(pakollinen)
OVERLEAF_OIDC_USER_INFO_URL(pakollinen)
OVERLEAF_OIDC_LOGOUT_URL(pakollinen)
Seuraavien kahden pakollisen muuttujan arvot saat OP:n ylläpitäjältä
OVERLEAF_OIDC_CLIENT_ID(pakollinen)
OVERLEAF_OIDC_CLIENT_SECRET(pakollinen)
OVERLEAF_OIDC_SCOPE
Oletus: openid profile email
OVERLEAF_OIDC_PROVIDER_ID
OP:n vapaavalintainen tunnus, oletuksena oidc.
OVERLEAF_OIDC_PROVIDER_NAME
OP:n nimi, jota käytetään sivun /user/settingsLinked Accounts -osiossa, oletuksena OIDC Provider.
OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
Identiteettipalvelun näyttönimi, jota käytetään kirjautumissivulla (oletus: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_DESCRIPTION
OP:n kuvaus, jota käytetään Linked Accounts -osiossa (oletus: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_INFO_LINK
OP:n kuvauksen Learn more -URL; oletuksena kuvauksessa ei ole Learn more -linkkiä.
OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
Älä näytä OP:tä sivulla /user/settings, jos käyttäjän tiliä ei ole linkitetty OP:hen, oletuksena false.
OVERLEAF_OIDC_USER_ID_FIELD
Overleaf käyttää tämän attribuutin arvoa ulkoisena käyttäjätunnuksena, oletuksena id. Muita mahdollisia järkeviä arvoja ovat email ja username (vastaa OIDC-väitettä preferred_username).
OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
Rajoittaa Just-in-Time (JIT) -tilinluontia OIDC:n kautta todentautuville käyttäjille. Jos arvoksi asetetaan pilkuin eroteltu luettelo verkkotunnuksista, uusi tili luodaan vain, jos käyttäjän sähköpostiosoitteen verkkotunnus vastaa jotakin luettelon verkkotunnuksista. Jos verkkotunnus ei vastaa, ylläpitäjän on luotava käyttäjätili manuaalisesti OIDC-käyttäjän sähköpostiosoitteella joko vahvalla satunnaisella salasanalla tai mieluiten kokonaan ilman hashedPassword-kenttää. Verkkotunnusten alussa voi olla *.-jokerimerkki, joka vastaa aliverkkotunnuksia.
Esimerkki: JIT-tilinluonnin salliminen käyttäjille, joiden sähköpostiosoite on muotoa name@example.com ja name@math.example.com: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
Esimerkki: JIT-tilinluonnin poistaminen kokonaan käytöstä: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN
Jos arvoksi asetetaan true, käyttäjän kentät first_name ja last_name päivitetään kirjautumisen yhteydessä, ja sivun /user/settings käyttäjätietolomake poistetaan käytöstä.
OVERLEAF_OIDC_IS_ADMIN_FIELD ja OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
Kun molemmat ympäristömuuttujat on asetettu, kirjautumisprosessi asettaa user.isAdmin = true, jos OP:n palauttama profiili sisältää muuttujan OVERLEAF_OIDC_IS_ADMIN_FIELD määrittämän attribuutin ja sen arvo joko vastaa muuttujaa OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE tai on taulukko, joka sisältää arvon OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE (esimerkiksi groups-claim); muussa tapauksessa user.isAdmin asetetaan arvoon false. Jos OVERLEAF_OIDC_IS_ADMIN_FIELD on email, vastaavuuden tarkistuksessa käytetään attribuutin emails[0].value arvoa.
OpenID-tarjoajasi uudelleenohjaus-URL on https://my-overleaf-instance.com/oidc/login/callback.
Esimerkki variables.env-tiedostosta
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
Tämä ohje käy läpi määrityksen, joka on testattu goauthentikin kanssa. Korvaa https://overleaf.example.com omalla OVERLEAF_SITE_URL-arvollasi ja https://authentik.example.com Authentikisi osoitteella.
1
Luo tarjoaja
Avaa Authentikissa Applications > Providers, napsauta New Provider, valitse OAuth2/OpenID Provider ja napsauta Next.
Client Type: Confidential.
Redirect URIs (kohdassa Protocol settings): lisää https://overleaf.example.com/oidc/login/callback vastaavuustilalla Strict.
Kopioi nyt Client ID ja Client Secret muuttujiin OVERLEAF_OIDC_CLIENT_ID ja OVERLEAF_OIDC_CLIENT_SECRET.
Authentik: uuden tarjoajan Client ID ja Client Secret
Authentik näyttää asiakassalaisuuden vain tarjoajaa luotaessa. Myöhemmin muokkauslomake tarjoaa vain Modify-toiminnon, joka korvaa salaisuuden uudella.
2
Luo sovellus
Avaa Applications > Applications, luo uusi sovellus, anna sille nimi ja slug, esimerkiksi overleaf, ja valitse tarjoaja. Slugista tulee osa myöntäjää: https://authentik.example.com/application/o/overleaf/.
Ylläpitäjän tila päivitetään jokaisella OIDC-kirjautumisella. Jos kenttä tai arvo on väärä, jokainen OIDC:n kautta kirjautuva ylläpitäjä menettää ylläpitäjän oikeutensa, mukaan lukien launchpadissa luotu ylläpitäjä. Testaa määritys ensin toisella ylläpitäjätilillä.
Testattu variables.env-tiedosto goauthentikille
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
Viimeksi muokattu 6. lokakuuta 2026
Oliko tästä sivusta hyötyä?
Assistant
Responses are generated using AI and may contain mistakes.