Skip to main content
SAML-kirjautumisen hoitaa web-palvelu (authentication-moduuli) jokaisessa Ayakaleaf Pro -podissa. Sillä ei ole taustatehtävää eikä erillistä podia. Määritä identiteetintarjoaja (IdP) kuten sivulla SAML-todennus ja vie sitten arvot ja IdP:n varmenne Kubernetesiin alla kuvatulla tavalla.

Missä mikin toimii

Konfiguraatio

1

Rekisteröi Overleaf IdP:hen

goauthentik-esimerkki näyttää, mistä nämä löytyvät.
2

Vie IdP:n varmenne Secretiin overleaf-certs

Toolkit lukee varmenteen hakemistosta data/overleaf/certs/. Kubernetesissa se tulee Secretistä overleaf-certs, joka on liitetty polkuun /var/lib/overleaf/certs kohdan Varmenteet ja muut tiedostot mukaisesti:
Jos Secret on jo olemassa, lisää tiedosto siihen sen sijaan: poista ja luo se uudelleen kaikilla --from-file-valitsimilla, tai käytä komentoa kubectl -n overleaf edit secret overleaf-certs.OVERLEAF_SAML_IDP_CERT ottaa polun, tai varmenteen vaihdon aikana JSON-luettelon poluista. Se ei ota itse PEM-tekstiä.
3

Lisää asetukset ConfigMapiin

30-config.yaml (additions)
Kaikki OVERLEAF_SAML_*-asetukset on lueteltu kohdassa Ympäristömuuttujat. Ne kaikki menevät ConfigMapiin: mikään niistä ei itsessään ole salaisuus. Avaintiedostot (OVERLEAF_SAML_PRIVATE_KEY, OVERLEAF_SAML_DECRYPTION_PVK) menevät Secretiin overleaf-certs, ja ConfigMap sisältää niiden polut.
Lainausmerkitse "true", "false" ja JSON-arvot, kuten OVERLEAF_SAML_AUTHN_CONTEXT: '["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"]'. Asetus, joka ei ole kelvollinen totuusarvo tai JSON-arvo, estää SAML-strategian latautumisen, vaikka pod ilmoittaa silti olevansa valmis; kirjautuminen SAML:n kautta epäonnistuu silloin. Tarkista web.log jokaisen muutoksen jälkeen, katso alla olevat kysymykset ja vastaukset.
4

Ota käyttöön ja käynnistä uudelleen

IdP:n varmenne ja avaimet luetaan, kun web käynnistyy, joten myös uusi varmenne Secretissä overleaf-certs vaatii tämän uudelleenkäynnistyksen.

Useita replikoita

IdP palauttaa käyttäjän ACS-osoitteeseen sivustojen välisellä POST-pyynnöllä. Selaimet eivät lähetä SameSite=Lax-evästeitä sen mukana, joten pyyntö ei sisällä Overleafin istuntoevästettä eikä Chromessa ja Edgessä kuormantasaajan pysyvyysevästettä, ja se voi saapua mille tahansa replikalle. Oletusasetuksilla tällä ei ole merkitystä: pyynnön vastaanottava replika luo istunnon Redisiin, ja kuormantasaaja pitää käyttäjän siitä lähtien kyseisellä replikalla.
Jätä OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO asettamatta (oletus on never), kun ajat useita replikoita. Arvoilla always tai ifPresent kukin replika muistaa IdP:lle lähettämänsä pyynnöt omassa muistissaan, ja toiselle replikalle saapuva vastaus hylätään virheellä ”InResponseTo is not valid”: käyttäjä jää sivulle /saml/login/callback. Testissämme kolmella replikalla ja arvolla always 19 SAML-testitapauksesta 12 epäonnistui tällä tavalla, kun taas oletusarvolla kaikki menivät läpi. Yhdellä replikalla SAML-kirjautumiset menevät läpi myös arvolla always.

Testattu Kubernetesissa

Kun IdP:nä oli goauthentik (HTTP-POST-sidonta, allekirjoitetut väitteet ja vastaukset), Kubernetes 1.37:ssä kolmella replikalla HAProxyn takana, SAML:n päästä päähän -testimme menevät läpi (19 tapausta): launchpadin ensimmäisen ylläpitäjän kirjautuminen SAML:n kautta, kirjautuminen Secretistä overleaf-certs tulevalla IdP:n varmenteella, tilin luominen ja uudelleenkirjautuminen, ylläpitäjäoikeuksien määritys ryhmän perusteella ja ilman määritystä, nimen ja ylläpitäjälipun päivitys jokaisella kirjautumisella, uloskirjautuminen IdP:n kautta, SAML-tilien salasanasäännöt sekä jäädytetyt tilit. OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO jätettiin oletusarvoonsa.

Kysymyksiä ja vastauksia

Vastaus: SAML-strategian lataaminen epäonnistui. Pod tulee silti valmiiksi, joten katso kunkin podin web-lokia:
Yleisiä syitä: OVERLEAF_SAML_IDP_CERT osoittaa tiedostoon, jota ei ole Secretissä overleaf-certs, totuusarvo, joka ei ole "true" tai "false", tai virheellinen JSON. Kun EXTERNAL_AUTH luettelee useita menetelmiä, tällainen virhe poistaa käytöstä myös SAML:n jälkeen tulevat menetelmät (ldap, sitten saml, sitten oidc).
Vastaus: Ei kummankaan kirjautumista ja uloskirjautumista varten: IdP ja Overleaf vaihtavat viestejä vain käyttäjän selaimen kautta. Vain jos määrität IdP:hen metatietojen URL-osoitteen, se lataa osoitteen ${OVERLEAF_SITE_URL}/saml/meta.
Viimeksi muokattu 2. marraskuuta 2026