Skip to main content
Tämän ominaisuuden on kehittänyt yu-i-i/overleaf-cep. Tarjoamme tässä ohjeita sen määrittämiseen.

Määritys

Sisäisesti Overleafin SAML-moduuli käyttää passport-saml-kirjastoa, ja useimmat seuraavista määritysasetuksista välitetään suoraan passport-saml-kirjastolle. Jos SAML:n määrittämisessä on ongelmia, kannattaa lukea passport-saml-kirjaston README, jotta saat käsityksen sen odottamasta määrityksestä. SAML-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 saml, SAML-todennus aktivoidaan. Esimerkiksi: EXTERNAL_AUTH=ldap saml SAML-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 samlIdentifiers-kentän:
Kentän externalUserId on vastattava IdP-palvelimen palauttaman käyttäjäprofiilin sitä ominaisuutta, jonka userIdAttribute määrittää. 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, hashedPassword-kenttä poistetaan paikallisen todennuksen estämiseksi ja samlIdentifiers-kenttä lisätään.
  • Jos vastaavaa käyttäjää ei löydy, luodaan uusi käyttäjä IdP-profiilin sähköpostiosoitteella ja samlIdentifiers-tiedoilla.
Huomaa: Tällä hetkellä tuetaan vain yhtä SAML-identiteetintarjoajaa. samlIdentifiers-kentän providerId on kiinteästi '1'.

Ympäristömuuttujat

  • OVERLEAF_SAML_IDENTITY_SERVICE_NAME
    • Identiteettipalvelun näyttönimi, jota käytetään kirjautumissivulla (oletus: Log in with SAML IdP).
  • OVERLEAF_SAML_USER_ID_FIELD
    • Overleaf käyttää tämän attribuutin arvoa ulkoisena käyttäjätunnuksena, oletuksena nameID.
  • OVERLEAF_SAML_EMAIL_FIELD
    • Käyttäjäprofiilin sähköpostikentän nimi, oletuksena nameID.
  • OVERLEAF_SAML_FIRST_NAME_FIELD
    • Käyttäjäprofiilin etunimikentän (firstName) nimi, oletuksena givenName.
  • OVERLEAF_SAML_LAST_NAME_FIELD
    • Käyttäjäprofiilin sukunimikentän (lastName) nimi, oletuksena lastName
  • OVERLEAF_SAML_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_SAML_ENTRYPOINT (pakollinen)
    • SAML-identiteettipalvelun sisääntulo-URL.
      • Esimerkki: https://idp.example.com/simplesaml/saml2/idp/SSOService.php
      • Azure-esimerkki: https://login.microsoftonline.com/8b26b46a-6dd3-45c7-a104-f883f4db1f6b/saml2
  • OVERLEAF_SAML_ISSUER (pakollinen)
    • Myöntäjän (Issuer) nimi.
  • OVERLEAF_SAML_AUDIENCE
    • SAML-vastauksen odotettu Audience-arvo, oletuksena muuttujan OVERLEAF_SAML_ISSUER arvo.
  • OVERLEAF_SAML_IDP_CERT (pakollinen)
    • Polku tiedostoon, joka sisältää identiteetintarjoajan julkisen varmenteen, jolla saapuvien SAML-vastausten allekirjoitukset tarkistetaan. Jos identiteetintarjoajalla on useita kelvollisia allekirjoitusvarmenteita, arvo voi olla JSON-taulukko varmenteiden poluista.
      • Esimerkki (yksi varmenne): /var/lib/overleaf/certs/idp_cert.pem
      • Esimerkki (useita varmenteita): ["var/lib/overleaf/certs/idp_cert.pem", "/var/lib/overleaf/certs/idp_cert_old.pem"]
  • OVERLEAF_SAML_PUBLIC_CERT
    • Polku tiedostoon, joka sisältää julkisen allekirjoitusvarmenteen. Varmenne upotetaan todennuspyyntöihin, jotta IdP voi tarkistaa saapuvan SAML-pyynnön allekirjoitukset. Se on pakollinen, kun metadatapäätepiste otetaan käyttöön ja strategia on määritetty muuttujalla OVERLEAF_SAML_PRIVATE_KEY. Varmenteiden kierron tukemiseksi voidaan antaa JSON-taulukko varmenteiden poluista. Kun annetaan varmennetaulukko, taulukon ensimmäisen alkion on vastattava nykyistä OVERLEAF_SAML_PRIVATE_KEY-avainta. Taulukon muita alkioita voidaan käyttää tulevien varmenteiden julkaisemiseen identiteetintarjoajille ennen OVERLEAF_SAML_PRIVATE_KEY-avaimen vaihtamista.
  • OVERLEAF_SAML_PRIVATE_KEY
    • Polku tiedostoon, joka sisältää PEM-muotoisen yksityisen avaimen, joka vastaa varmennetta OVERLEAF_SAML_PUBLIC_CERT ja jolla passport-saml allekirjoittaa lähettämänsä todennuspyynnöt.
  • OVERLEAF_SAML_DECRYPTION_CERT
  • OVERLEAF_SAML_DECRYPTION_PVK
    • Polku tiedostoon, joka sisältää varmennetta OVERLEAF_SAML_DECRYPTION_CERT vastaavan yksityisen avaimen, jolla yritetään purkaa vastaanotettujen salattujen väittämien (assertion) salaus.
  • OVERLEAF_SAML_SIGNATURE_ALGORITHM
    • Valinnaisesti pyyntöjen allekirjoittamiseen käytettävä allekirjoitusalgoritmi; kelvolliset arvot ovat ‘sha1’ (oletus), ‘sha256’ (suositeltu) ja ‘sha512’ (turvallisin, tarkista, tukeeko IdP:si sitä).
  • OVERLEAF_SAML_ADDITIONAL_PARAMS
    • JSON-sanakirja lisäkyselyparametreista, jotka lisätään kaikkiin pyyntöihin.
  • OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS
    • JSON-sanakirja lisäkyselyparametreista, jotka lisätään ‘authorize’-pyyntöihin.
      • Esimerkki: {"some_key": "some_value"}
  • OVERLEAF_SAML_IDENTIFIER_FORMAT
    • Identiteetintarjoajalta pyydettävä nimitunnisteen muoto (oletus: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress). Jos käytät muotoa urn:oasis:names:tc:SAML:2.0:nameid-format:persistent, varmista, että ympäristömuuttuja OVERLEAF_SAML_EMAIL_FIELD on määritetty. Jos tarvitaan muotoa urn:oasis:names:tc:SAML:2.0:nameid-format:transient, sinun on määritettävä myös ympäristömuuttuja OVERLEAF_SAML_USER_ID_FIELD, jonka arvoksi voidaan asettaa esimerkiksi käyttäjän sähköpostiosoite.
  • OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS
    • Asiakkaan ja palvelimen välinen hyväksyttävä kellojen ero millisekunteina, kun tarkistetaan väittämäehtojen OnBefore ja NotOnOrAfter voimassaoloaikaleimoja. Arvo -1 poistaa näiden ehtojen tarkistuksen kokonaan käytöstä. Oletus on 0.
  • OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX
    • AuthnRequest-pyyntöön lisättävä AttributeConsumingServiceIndex-attribuutti, joka kertoo IdP:lle, mikä attribuuttijoukko vastaukseen liitetään (linkki).
  • OVERLEAF_SAML_AUTHN_CONTEXT
    • JSON-taulukko nimitunnisteen muotoarvoista, joilla pyydetään todennuskontekstia. Oletus: ["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"].
  • OVERLEAF_SAML_FORCE_AUTHN
    • Jos true, palveluntarjoajan ensimmäinen SAML-pyyntö määrittää, että IdP:n on pakotettava käyttäjä todentautumaan uudelleen, vaikka tällä olisi voimassa oleva istunto.
  • OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT
    • Jos true, tiettyä todennuskontekstia ei pyydetä. Voit esimerkiksi asettaa arvoksi true salliaksesi muita konteksteja, kuten salasanattomat kirjautumiset (urn:oasis:names:tc:SAML:2.0:ac:classes:X509). Muiden kontekstien tuki riippuu IdP:stäsi.
  • OVERLEAF_SAML_AUTHN_REQUEST_BINDING
    • Jos arvoksi asetetaan HTTP-POST, todennusta pyydetään IdP:ltä HTTP POST -sidonnalla; muussa tapauksessa oletuksena on HTTP-Redirect.
  • OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO
    • Jos always, saapuvien SAML-vastausten InResponseTo tarkistetaan.
    • Jos never, InResponseTo-arvoa ei tarkisteta (oletus).
    • Jos ifPresent, InResponseTo tarkistetaan vain, jos se on mukana saapuvassa SAML-vastauksessa.
  • OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED ja OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED
    • Kun arvo on true (oletus), Overleaf odottaa IdP:n allekirjoittavan SAML-väittämät tai vastaavasti koko SAML-todennusvastauksen. Kun molemmat asetukset ovat false, vähintään joko väittämien tai vastauksen on oltava allekirjoitettu.
  • OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS
    • Määrittää vanhenemisajan, jonka jälkeen SAML-pyynnölle luotu pyyntötunniste (Request ID) ei ole enää kelvollinen, jos se nähdään SAML-vastauksen InResponseTo-kentässä. Oletus: 28800000 (8 tuntia).
  • OVERLEAF_SAML_LOGOUT_URL
    • perusosoite, jota kutsutaan uloskirjautumispyynnöillä (oletus: entryPoint).
      • Esimerkki: https://idp.example.com/simplesaml/saml2/idp/SingleLogoutService.php
  • OVERLEAF_SAML_ADDITIONAL_LOGOUT_PARAMS
    • JSON-sanakirja lisäkyselyparametreista, jotka lisätään ‘logout’-pyyntöihin.
  • OVERLEAF_SAML_IS_ADMIN_FIELD ja OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE
    • Kun molemmat ympäristömuuttujat on asetettu, kirjautumisprosessi asettaa user.isAdmin = true, jos SAML-identiteetintarjoajan palauttama profiili sisältää muuttujan OVERLEAF_SAML_IS_ADMIN_FIELD määrittämän attribuutin ja sen arvo joko vastaa muuttujaa OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE tai on taulukko, joka sisältää arvon OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE; muussa tapauksessa user.isAdmin asetetaan arvoon false. Jos jompaakumpaa näistä muuttujista ei ole asetettu, ylläpitäjän tila asetetaan arvoon true vain luotaessa ylläpitäjäkäyttäjää Launchpadissa.
Identiteetintarjoajan metadata Overleaf CE:n nykyinen versio sisältää päätepisteen palveluntarjoajan metadatan hakemiseen: http://my-overleaf-instance.com/saml/meta Identiteetintarjoaja on määritettävä tunnistamaan Overleaf-palvelin “palveluntarjoajaksi” (Service Provider). Katso ohjeet tähän SAML-palvelimesi dokumentaatiosta. Alla on esimerkki asianmukaisesta palveluntarjoajan metadatasta:
Pane merkille varmenteet sekä arvot AssertionConsumerService.Location, SingleLogoutService.Location ja EntityDescriptor.entityID, ja aseta ne asianmukaisesti IdP:si määrityksiin tai lähetä metadatatiedosto IdP:n ylläpitäjälle.

Vaihe vaiheelta: goauthentik

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 ja sovellus

Avaa Authentikissa Applications > Applications ja napsauta New Application. Ohjattu toiminto luo sovelluksen ja sen tarjoajan samalla kertaa.1. Anna sovellukselle nimi ja slug, esimerkiksi overleaf, ja napsauta Next:

Authentik: sovelluksen nimi ja slug

2. Valitse SAML Provider ja napsauta Next:

Authentik: SAML-tarjoajan valitseminen

3. Täytä tarjoajan tiedot:
  • Authorization Flow: default-provider-authorization-implicit-consent
  • ACS URL: https://overleaf.example.com/saml/login/callback
  • Audience: nimi Overleafille, esimerkiksi overleaf. Overleaf lähettää sen arvona OVERLEAF_SAML_ISSUER.

Authentik: sovelluksen SAML-tarjoaja

4. Avaa Advanced protocol settings ja aseta:
  • Signing Certificate: varmenne, esimerkiksi authentik Self-signed Certificate
  • Sign assertions ja Sign responses: molemmat käytössä
  • Service Provider Binding: Post

Authentik: testatun tarjoajan allekirjoitus ja sidonta (testi-instanssi)

5. Napsauta Next, kunnes olet viimeisellä sivulla, ja tallenna sovellus.
2

Kopioi arvot tarjoajan sivulta

Avaa tarjoaja uudelleen. Kaikki, mitä Overleaf tarvitsee, löytyy sen yleiskatsauksesta:

Authentik: SAML-tarjoajan yleiskatsaus (testi-instanssi)

EntityID/Issuer kohdassa SAML Configuration on Authentikin itsensä nimi. Älä aseta sitä muuttujaan OVERLEAF_SAML_ISSUER, vaan käytä Audience-arvoa.
3

Asenna allekirjoitusvarmenne

Napsauta Download kohdassa Download signing certificate ja tallenna tiedosto nimellä data/overleaf/certs/idp_cert.pem Toolkit-hakemistoosi. Kontti näkee sen polussa /var/lib/overleaf/certs/idp_cert.pem:
4

Määritä attribuutit

Authentik lähettää attribuuttinsa seuraavilla nimillä:
Ryhmät tulevat attribuutissa http://schemas.xmlsoap.org/claims/Group luettelona. Jos haluat Authentik-ryhmän Admins jäsenistä Overleafin ylläpitäjiä:
Ylläpitäjän tila päivitetään jokaisella SAML-kirjautumisella. Jos kenttä tai arvo on väärä, jokainen SAML:n kautta kirjautuva ylläpitäjä menettää ylläpitäjän oikeutensa. Testaa määritys ensin toisella ylläpitäjätilillä.
variables.env
Viimeksi muokattu 6. lokakuuta 2026