Modul SAML v Overleaf interně používá knihovnu passport-saml a většina následujících konfiguračních voleb se předává přímo do passport-saml. Pokud máte potíže s konfigurací SAML, vyplatí se přečíst si README knihovny passport-saml, abyste získali představu o konfiguraci, kterou očekává.K zapnutí ověřovacího modulu SAML 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 saml, bude aktivováno ověřování SAML.Například: EXTERNAL_AUTH=ldap samlPři použití metody ověřování SAML 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 samlIdentifiers s následující strukturou:
externalUserId se musí shodovat s hodnotou vlastnosti určené atributem userIdAttribute v uživatelském profilu vráceném serverem IdP.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 hashedPassword se smaže, aby se vypnulo místní ověřování, a přidá se pole samlIdentifiers.
Pokud není nalezen žádný odpovídající uživatel, vytvoří se nový uživatel s e-mailovou adresou a samlIdentifiers z profilu IdP.
Poznámka: V současnosti je podporován pouze jeden SAML IdP. Pole providerId v samlIdentifiers má pevnou hodnotu '1'.
Zobrazovaný název služby identity, používaný na přihlašovací stránce (výchozí: Log in with SAML IdP).
OVERLEAF_SAML_USER_ID_FIELD
Hodnotu tohoto atributu použije Overleaf jako externí ID uživatele; výchozí hodnota je nameID.
OVERLEAF_SAML_EMAIL_FIELD
Název pole s e-mailem v uživatelském profilu; výchozí hodnota je nameID.
OVERLEAF_SAML_FIRST_NAME_FIELD
Název pole firstName v uživatelském profilu; výchozí hodnota je givenName.
OVERLEAF_SAML_LAST_NAME_FIELD
Název pole lastName v uživatelském profilu; výchozí hodnota je lastName
OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN
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.
Příklad pro Azure: https://login.microsoftonline.com/8b26b46a-6dd3-45c7-a104-f883f4db1f6b/saml2
OVERLEAF_SAML_ISSUER(povinné)
Název vydavatele (Issuer).
OVERLEAF_SAML_AUDIENCE
Očekávaná hodnota Audience v odpovědi SAML; výchozí hodnota je hodnota OVERLEAF_SAML_ISSUER.
OVERLEAF_SAML_IDP_CERT(povinné)
Cesta k souboru s veřejným certifikátem poskytovatele identity, který se používá k ověření podpisů příchozích odpovědí SAML. Pokud má poskytovatel identity více platných podpisových certifikátů, může jít o pole JSON s cestami k certifikátům.
Cesta k souboru s veřejným podpisovým certifikátem, který se vkládá do požadavků na ověření, aby IdP mohl ověřit podpisy příchozího požadavku SAML. Je vyžadován při nastavování endpointu metadat, pokud je strategie nakonfigurována s OVERLEAF_SAML_PRIVATE_KEY. Pro podporu rotace certifikátů lze zadat pole JSON s cestami k certifikátům. Při zadání pole certifikátů by první položka pole měla odpovídat aktuálnímu OVERLEAF_SAML_PRIVATE_KEY. Další položky pole lze použít ke zveřejnění připravovaných certifikátů poskytovatelům IdP před změnou OVERLEAF_SAML_PRIVATE_KEY.
OVERLEAF_SAML_PRIVATE_KEY
Cesta k souboru se soukromým klíčem ve formátu PEM, který odpovídá OVERLEAF_SAML_PUBLIC_CERT a slouží k podepisování požadavků na ověření odesílaných knihovnou passport-saml.
OVERLEAF_SAML_DECRYPTION_CERT
Cesta k souboru s veřejným certifikátem, který se používá pro endpoint metadat.
OVERLEAF_SAML_DECRYPTION_PVK
Cesta k souboru se soukromým klíčem odpovídajícím OVERLEAF_SAML_DECRYPTION_CERT, který se použije k pokusu o dešifrování všech přijatých šifrovaných tvrzení (assertions).
OVERLEAF_SAML_SIGNATURE_ALGORITHM
Volitelně nastavuje algoritmus podpisu pro podepisování požadavků; platné hodnoty jsou ‘sha1’ (výchozí), ‘sha256’ (preferovaná) a ‘sha512’ (nejbezpečnější, ověřte, zda ji váš IdP podporuje).
OVERLEAF_SAML_ADDITIONAL_PARAMS
Slovník JSON s dalšími parametry dotazu, které se přidají ke všem požadavkům.
OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS
Slovník JSON s dalšími parametry dotazu, které se přidají k požadavkům ‘authorize’.
Příklad: {"some_key": "some_value"}
OVERLEAF_SAML_IDENTIFIER_FORMAT
Formát identifikátoru jména, který se má vyžádat od poskytovatele identity (výchozí: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress). Pokud používáte urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, ujistěte se, že je definována proměnná prostředí OVERLEAF_SAML_EMAIL_FIELD. Pokud je vyžadován urn:oasis:names:tc:SAML:2.0:nameid-format:transient, musíte také definovat proměnnou prostředí OVERLEAF_SAML_USER_ID_FIELD, kterou lze například nastavit na e-mailovou adresu uživatele.
OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS
Přijatelná odchylka hodin mezi klientem a serverem v milisekundách při kontrole platnosti časových razítek podmínek tvrzení OnBefore a NotOnOrAfter. Nastavení na -1 kontrolu těchto podmínek zcela vypne. Výchozí hodnota je 0.
OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX
Atribut AttributeConsumingServiceIndex, který se přidá do AuthnRequest a určí IdP, kterou sadu atributů má připojit k odpovědi (odkaz).
OVERLEAF_SAML_AUTHN_CONTEXT
Pole JSON s hodnotami formátu identifikátoru jména pro vyžádání kontextu ověření. Výchozí: ["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"].
OVERLEAF_SAML_FORCE_AUTHN
Pokud je true, počáteční požadavek SAML od poskytovatele služby určí, že IdP má vynutit opětovné ověření uživatele, i když má platnou relaci.
OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT
Pokud je true, nevyžaduje se konkrétní kontext ověření. Můžete to například nastavit na true, abyste povolili další kontexty, jako je přihlašování bez hesla (urn:oasis:names:tc:SAML:2.0:ac:classes:X509). Podpora dalších kontextů závisí na vašem IdP.
OVERLEAF_SAML_AUTHN_REQUEST_BINDING
Pokud je nastaveno na HTTP-POST, ověření se od IdP vyžádá prostřednictvím vazby HTTP POST; jinak se ve výchozím nastavení použije HTTP-Redirect.
OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO
Pokud je always, InResponseTo se u příchozích odpovědí SAML ověřuje vždy.
Pokud je never, InResponseTo se neověřuje (výchozí).
Pokud je ifPresent, InResponseTo se ověřuje pouze tehdy, je-li v příchozí odpovědi SAML přítomno.
OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED a OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED
Pokud jsou nastaveny na true (výchozí), Overleaf očekává, že tvrzení SAML, respektive celá ověřovací odpověď SAML, budou podepsány IdP. Pokud jsou obě volby false, musí být podepsáno alespoň jedno z tvrzení nebo odpověď.
OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS
Určuje dobu platnosti, po jejímž uplynutí ID požadavku vygenerované pro požadavek SAML již nebude platné, pokud se objeví v odpovědi SAML v poli InResponseTo. Výchozí: 28800000 (8 hodin).
OVERLEAF_SAML_LOGOUT_URL
základní adresa, která se volá s požadavky na odhlášení (výchozí: entryPoint).
Slovník JSON s dalšími parametry dotazu, které se přidají k požadavkům ‘logout’.
OVERLEAF_SAML_IS_ADMIN_FIELD a OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE
Pokud jsou nastaveny obě proměnné prostředí, proces přihlášení nastaví user.isAdmin = true, pokud profil vrácený SAML IdP obsahuje atribut určený proměnnou OVERLEAF_SAML_IS_ADMIN_FIELD a jeho hodnota buď odpovídá OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE, nebo je to pole obsahující OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE; v opačném případě se user.isAdmin nastaví na false. Pokud některá z těchto proměnných není nastavena, stav administrátora se nastaví na true pouze při vytváření administrátorského uživatele v Launchpadu.
Metadata pro poskytovatele identityAktuální verze Overleaf CE obsahuje endpoint pro získání metadat poskytovatele služby: http://my-overleaf-instance.com/saml/metaPoskytovatel identity musí být nakonfigurován tak, aby rozpoznal server Overleaf jako „poskytovatele služby“ (Service Provider). Pokyny, jak to provést, najdete v dokumentaci svého serveru SAML.Níže je příklad vhodných metadat poskytovatele služby:
Poznamenejte si certifikáty, AssertionConsumerService.Location, SingleLogoutService.Location a EntityDescriptor.entityID a odpovídajícím způsobem je nastavte v konfiguraci svého IdP, nebo soubor metadat pošlete administrátorovi IdP.
Ukázkový soubor variables.env (minimální)
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################### SAML ###################EXTERNAL_AUTH=samlOVERLEAF_SAML_ISSUER=MyOverleafOVERLEAF_SAML_IDENTITY_SERVICE_NAME='Log in with SAML Provider'OVERLEAF_SAML_EMAIL_FIELD=EmailOVERLEAF_SAML_FIRST_NAME_FIELD=DisplayNameOVERLEAF_SAML_LAST_NAME_FIELD=DisplayNameOVERLEAF_SAML_ENTRYPOINT=http://localhost:18000/login/saml/authorize/admin/SAML_OverleafOVERLEAF_SAML_IDP_CERT=/var/lib/overleaf/certs/idp_cert.pemOVERLEAF_SAML_SIGNATURE_ALGORITHM=
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 a aplikaci
V Authentiku otevřete Applications > Applications a klikněte na New Application. Průvodce vytvoří aplikaci a jejího poskytovatele najednou.1. Zadejte název a slug aplikace, například overleaf, a klikněte na Next:
OVERLEAF_SAML_ENTRYPOINT a OVERLEAF_SAML_LOGOUT_URL
Audience
OVERLEAF_SAML_ISSUER
Download signing certificate (soubor)
OVERLEAF_SAML_IDP_CERT, viz další krok
EntityID/Issuer v části SAML Configuration je název samotného Authentiku. Nevkládejte jej do OVERLEAF_SAML_ISSUER, použijte Audience.
3
Nainstalujte podpisový certifikát
Klikněte na Download pod Download signing certificate a uložte soubor jako data/overleaf/certs/idp_cert.pem v adresáři Toolkitu. Kontejner jej vidí jako /var/lib/overleaf/certs/idp_cert.pem:
Skupiny přicházejí jako http://schemas.xmlsoap.org/claims/Group, tedy seznam. Chcete-li, aby se členové skupiny Authentiku Admins stali administrátory Overleafu:
Příznak administrátora se aktualizuje při každém přihlášení přes SAML. Při chybném poli nebo hodnotě přijde každý administrátor, který se přihlásí přes SAML, o administrátorská práva. Mapování nejprve otestujte s druhým administrátorským účtem.
Otestovaný soubor variables.env pro goauthentik
variables.env
EXTERNAL_AUTH=samlOVERLEAF_SAML_IDENTITY_SERVICE_NAME=Log in with AuthentikOVERLEAF_SAML_ENTRYPOINT=https://authentik.example.com/application/saml/overleaf/OVERLEAF_SAML_LOGOUT_URL=https://authentik.example.com/application/saml/overleaf/OVERLEAF_SAML_ISSUER=overleafOVERLEAF_SAML_IDP_CERT=/var/lib/overleaf/certs/idp_cert.pemOVERLEAF_SAML_WANT_ASSERTIONS_SIGNED=trueOVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED=trueOVERLEAF_SAML_USER_ID_FIELD=http://schemas.goauthentik.io/2021/02/saml/usernameOVERLEAF_SAML_EMAIL_FIELD=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressOVERLEAF_SAML_FIRST_NAME_FIELD=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameOVERLEAF_SAML_LAST_NAME_FIELD=http://schemas.goauthentik.io/2021/02/saml/usernameOVERLEAF_SAML_IS_ADMIN_FIELD=http://schemas.xmlsoap.org/claims/GroupOVERLEAF_SAML_IS_ADMIN_FIELD_VALUE=AdminsOVERLEAF_SAML_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.