Modul OIDC v Overleaf interně používá knihovnu passport-openidconnect. Pokud máte potíže s konfigurací OpenID Connect, vyplatí se přečíst si README knihovny passport-openidconnect, abyste získali představu o konfiguraci, kterou očekává.K zapnutí ověřovacího modulu OIDC je vyžadována proměnná prostředí EXTERNAL_AUTH. Tato proměnná prostředí určuje, které externí metody ověřování jsou aktivovány. Hodnotou této proměnné je seznam. Pokud seznam obsahuje oidc, bude aktivováno ověřování OIDC.Například: EXTERNAL_AUTH=ldap oidcPři použití metody ověřování OIDC je uživatel přesměrován na ověřovací stránku poskytovatele identity (IdP). Pokud IdP uživatele úspěšně ověří, v databázi uživatelů Overleaf se vyhledá záznam obsahující pole thirdPartyIdentifiers s následující strukturou:
externalUserId se musí shodovat s ID uživatele v profilu vráceném serverem IdP (viz proměnná prostředí OVERLEAF_OIDC_USER_ID_FIELD) a providerId se musí shodovat s ID poskytovatele OIDC (viz OVERLEAF_OIDC_PROVIDER_ID).Pokud není nalezen žádný odpovídající záznam, v databázi se vyhledá uživatel, jehož primární e-mailová adresa odpovídá e-mailu v uživatelském profilu IdP:
Pokud je takový uživatel nalezen, pole thirdPartyIdentifiers se aktualizuje.
Pokud není nalezen žádný odpovídající uživatel a vytváření účtů JIT není vypnuto, vytvoří se nový uživatel s e-mailovou adresou a thirdPartyIdentifiers z profilu IdP.
V obou případech se říká, že uživatel je „propojen“ s externím uživatelem OIDC. Propojení uživatele s poskytovatelem OIDC lze zrušit na stránce /user/settings.
Každý poskytovatel OpenID (OP) zveřejňuje discovery dokument na adrese <issuer>/.well-known/openid-configuration. Hodnoty z něj zkopírujte, místo abyste je psali ručně; k selhání přihlášení stačí jediný chybný znak.
1
Najděte discovery URL
Váš OP ji zobrazuje na stránce klienta (poskytovatele), kterého jste pro Overleaf vytvořili. V Authentiku otevřete Applications > Providers, vyberte poskytovatele a vyhledejte OpenID Configuration URL a OpenID Configuration Issuer:
Authentik: discovery URL a issuer poskytovatele (testovací instance)
Zkopírujte issuer přesně, včetně koncového lomítka. Overleaf jej porovnává znak po znaku s issuerem v ID tokenu; jakýkoli rozdíl způsobí, že každé přihlášení přes OIDC selže s chybou:{"message":{"message":"ID token not issued by expected OpenID provider."}}V Authentiku issuer patří k aplikaci (.../application/o/<application-slug>/). Nejde o adresu serveru Authentik, přestože URL authorize, token a userinfo jsou sdílené všemi aplikacemi.
Hodnoty následujících pěti povinných proměnných zjistíte pomocí endpointu .well-known/openid-configuration vašeho poskytovatele OpenID (OP), viz výše.
OVERLEAF_OIDC_ISSUER(povinné)
OVERLEAF_OIDC_AUTHORIZATION_URL(povinné)
OVERLEAF_OIDC_TOKEN_URL(povinné)
OVERLEAF_OIDC_USER_INFO_URL(povinné)
OVERLEAF_OIDC_LOGOUT_URL(povinné)
Hodnoty následujících dvou povinných proměnných vám poskytne administrátor vašeho OP
OVERLEAF_OIDC_CLIENT_ID(povinné)
OVERLEAF_OIDC_CLIENT_SECRET(povinné)
OVERLEAF_OIDC_SCOPE
Výchozí: openid profile email
OVERLEAF_OIDC_PROVIDER_ID
Libovolné ID poskytovatele OP, výchozí hodnota je oidc.
OVERLEAF_OIDC_PROVIDER_NAME
Název OP, používaný v části Linked Accounts na stránce /user/settings, výchozí hodnota je OIDC Provider.
OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
Zobrazovaný název služby identity, používaný na přihlašovací stránce (výchozí: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_DESCRIPTION
Popis OP, používaný v části Linked Accounts (výchozí: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
OVERLEAF_OIDC_PROVIDER_INFO_LINK
URL odkazu Learn more v popisu OP; ve výchozím nastavení popis neobsahuje odkaz Learn more.
OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
Nezobrazovat OP na stránce /user/settings, pokud účet uživatele není s OP propojen; výchozí hodnota false.
OVERLEAF_OIDC_USER_ID_FIELD
Hodnotu tohoto atributu použije Overleaf jako externí ID uživatele; výchozí hodnota je id. Další možné rozumné hodnoty jsou email a username (odpovídá OIDC claimu preferred_username).
OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
Omezuje vytváření účtů Just-in-Time (JIT) pro uživatele ověřované přes OIDC. Pokud je nastavena na seznam doménových jmen oddělených čárkami, nový účet se vytvoří pouze tehdy, když doména e-mailové adresy uživatele odpovídá některé z uvedených domén. Pokud doména neodpovídá, musí administrátor vytvořit uživatelský účet ručně s použitím e-mailové adresy uživatele OIDC, buď se silným náhodným heslem, nebo nejlépe zcela bez pole hashedPassword. Doménová jména mohou obsahovat úvodní zástupný znak *., který odpovídá subdoménám.
Příklad: Povolení vytváření účtů JIT pro uživatele s e-mailovými adresami jako name@example.com a name@math.example.com: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
Pokud je nastaveno na true, při přihlášení se aktualizují pole uživatele first_name a last_name a formulář s údaji o uživateli na stránce /user/settings se vypne.
OVERLEAF_OIDC_IS_ADMIN_FIELD a OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
Pokud jsou nastaveny obě proměnné prostředí, proces přihlášení nastaví user.isAdmin = true, pokud profil vrácený OP obsahuje atribut určený proměnnou OVERLEAF_OIDC_IS_ADMIN_FIELD a jeho hodnota buď odpovídá OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE, nebo je polem obsahujícím OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE (například claim groups); v opačném případě se user.isAdmin nastaví na false. Pokud je OVERLEAF_OIDC_IS_ADMIN_FIELD rovno email, pro kontrolu shody se použije hodnota atributu emails[0].value.
URL pro přesměrování pro vašeho poskytovatele OpenID je https://my-overleaf-instance.com/oidc/login/callback.
Ukázkový soubor variables.env
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
Tento návod popisuje nastavení otestované s goauthentik. Nahraďte https://overleaf.example.com svou hodnotou OVERLEAF_SITE_URL a https://authentik.example.com adresou svého Authentiku.
1
Vytvořte poskytovatele
V Authentiku otevřete Applications > Providers, klikněte na New Provider, zvolte OAuth2/OpenID Provider a klikněte na Next.
Client Type: Confidential.
Redirect URIs (v části Protocol settings): přidejte https://overleaf.example.com/oidc/login/callback s režimem shody Strict.
Hned teď zkopírujte Client ID a Client Secret do OVERLEAF_OIDC_CLIENT_ID a OVERLEAF_OIDC_CLIENT_SECRET.
Authentik: Client ID a Client Secret nového poskytovatele
Authentik zobrazuje client secret pouze při vytváření poskytovatele. Formulář pro úpravy později nabízí jen Modify, které secret nahradí novým.
2
Vytvořte aplikaci
Otevřete Applications > Applications, vytvořte novou aplikaci, zadejte její název a slug, například overleaf, a vyberte poskytovatele. Slug se stane součástí issueru: https://authentik.example.com/application/o/overleaf/.
Příznak administrátora se aktualizuje při každém přihlášení přes OIDC. Při chybném poli nebo hodnotě přijde každý administrátor, který se přihlásí přes OIDC, o administrátorská práva, včetně administrátora vytvořeného v launchpadu. Mapování nejprve otestujte s druhým administrátorským účtem.
Otestovaný soubor variables.env pro 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
Naposledy změněno 6. října 2026
Byla tato stránka užitečná?
Assistant
Responses are generated using AI and may contain mistakes.