Skip to main content
Tämän ominaisuuden on kehittänyt yu-i-i/overleaf-cep. Tarjoamme tässä dokumentaatiota konfigurointiasi varten.
Overleaf käyttää passport-ldapauth-kirjastoa, joka on melko vanhentunut, joten LDAP-yhteensopivuutta ei voida täysin taata. Tiettyjen LDAP-identiteetintarjoajien kanssa (esimerkiksi https://goauthentik.io/) kirjautuminen voi epäonnistua. Siksi on suositeltavaa käyttää ensisijaisesti OAuth/SAML-menetelmää, jos mahdollista. Jos käytät goauthentikia, noudata alla olevaa testattua ohjetta Vaihe vaiheelta: goauthentik.

Mikä on LDAP

LDAP on todennusprotokolla, jota käytetään ulkoiseen identiteetin varmentamiseen. Overleaf Server Pro tarjoaa verkkokäyttöliittymässä erillisen LDAP-kirjautumislomakkeen, joka on erillään tavallisesta todennusmenetelmästä. Kun käyttäjä lähettää LDAP-käyttäjänimensä ja salasanansa, Overleafin taustajärjestelmä tarkistaa tunnistetiedot määritettyä LDAP-palvelinta vasten, esimerkiksi ldap://ldap:10389.

Server Pro -esimerkki LDAP:sta

Konfiguraatio

Sisäisesti Overleafin LDAP käyttää passport-ldapauth-kirjastoa. Useimmat näistä konfiguraatioasetuksista välitetään server-konfiguraatio-objektille, jolla passport-ldapauth määritetään. Jos LDAP:n määrittämisessä on ongelmia, kannattaa lukea passport-ldapauth-kirjaston README saadakseen käsityksen sen odottamasta konfiguraatiosta. Ympäristömuuttuja EXTERNAL_AUTH vaaditaan LDAP-todennusmoduulin käyttöön ottamiseksi. Tämä ympäristömuuttuja määrittää, mitkä ulkoiset todennusmenetelmät aktivoidaan. Muuttujan arvo on luettelo. Jos luettelo sisältää arvon ldap, LDAP-todennus aktivoidaan. Esimerkiksi: EXTERNAL_AUTH=ldap saml Toisin kuin Overleaf CEP:ssä, ayaka-notes-versiossamme LDAP-todennus on rajattu puhtaaksi todennusmenetelmäksi, joka on käytettävissä osoitteessa http://your-overleaf.com/ldap/login. Kun LDAP-todennusmenetelmiä käytetään ja käyttäjä syöttää kirjautumislomakkeeseen username- ja password-arvot, järjestelmä toimii seuraavasti:
  1. LDAP-käyttäjää haetaan LDAP-hakemistosta muuttujan OVERLEAF_LDAP_SEARCH_FILTER määrittämällä suodattimella, ja käyttäjä todennetaan.
  2. Jos todennus onnistuu, Overleafin käyttäjätietokannasta etsitään käyttäjää, jonka ensisijainen sähköpostiosoite vastaa todennetun LDAP-käyttäjän sähköpostiosoitetta:
    • Jos vastaava käyttäjä löytyy, tämän käyttäjän hashedPassword-kenttä poistetaan (jos se on olemassa). Tämä varmistaa, että käyttäjä voi jatkossa kirjautua vain LDAP-todennuksen kautta.
    • Jos vastaavaa käyttäjää ei löydy, luodaan uusi Overleaf-käyttäjä LDAP-palvelimelta haetun sähköpostiosoitteen, etunimen ja sukunimen perusteella.
LDAP:n kautta kirjautuvien käyttäjien salasanatiivisteitä emme tallenna Overleafin mongo-tietokantaan (ja olemassa olevat poistetaan).

Ympäristömuuttujat

  • OVERLEAF_LDAP_URL (pakollinen)
    • LDAP-palvelimen URL-osoite.
      • Esimerkki: ldaps://ldap.example.com:636 (LDAP SSL:n yli)
      • Esimerkki: ldap://ldap.example.com:389 (salaamaton tai STARTTLS, jos määritetty).
  • OVERLEAF_LDAP_IDENTITY_SERVICE_NAME
    • LDAP-identiteettipalvelun näyttönimi, jota käytetään kirjautumissivulla.
    • Oletus on Log in with LDAP Provider.
  • OVERLEAF_LDAP_EMAIL_ATT
    • LDAP-palvelimen palauttama sähköpostiattribuutti, oletuksena mail. Jokaisella LDAP-käyttäjällä on oltava vähintään yksi sähköpostiosoite. Jos osoitteita on useita, vain ensimmäistä käytetään.
  • OVERLEAF_LDAP_FIRST_NAME_ATT
    • Ominaisuuden nimi, joka sisältää sovelluksessa käytettävän käyttäjän etunimen, yleensä givenName.
  • OVERLEAF_LDAP_LAST_NAME_ATT
    • Ominaisuuden nimi, joka sisältää sovelluksessa käytettävän käyttäjän sukunimen, yleensä sn.
  • OVERLEAF_LDAP_NAME_ATT
    • Ominaisuuden nimi, joka sisältää käyttäjän koko nimen, yleensä cn. Jos jompaakumpaa kahdesta edellisestä muuttujasta ei ole määritetty, käyttäjän etu- ja/tai sukunimi poimitaan tästä muuttujasta. Muussa tapauksessa sitä ei käytetä.
  • OVERLEAF_LDAP_PLACEHOLDER
    • Kirjautumislomakkeen paikkamerkkiteksti, oletuksena Username.
  • OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN
    • Jos arvo on true, LDAP-käyttäjän first_name- ja last_name-kentät päivitetään kirjautumisen yhteydessä, ja /user/settings-sivun käyttäjätietolomake poistetaan käytöstä LDAP-käyttäjiltä. Muussa tapauksessa tiedot haetaan vain ensimmäisellä kirjautumiskerralla.
  • OVERLEAF_LDAP_BIND_DN
    • Sen LDAP-käyttäjän erottava nimi (DN), jota käytetään LDAP-yhteyteen (tämän käyttäjän on voitava hakea/listata tilejä LDAP-palvelimella), esim. cn=ldap_reader,dc=example,dc=com. Jos sitä ei ole määritetty, käytetään anonyymiä sidontaa.
  • OVERLEAF_LDAP_BIND_CREDENTIALS
    • Salasana käyttäjälle OVERLEAF_LDAP_BIND_DN.
  • OVERLEAF_LDAP_BIND_PROPERTY
    • Käyttäjän ominaisuus, jota vasten sidonta asiakkaaseen tehdään, oletuksena dn.
  • OVERLEAF_LDAP_SEARCH_BASE (pakollinen)
    • Perus-DN, josta käyttäjiä haetaan. Esim. ou=people,dc=example,dc=com.
  • OVERLEAF_LDAP_SEARCH_FILTER
    • LDAP-hakusuodatin, jolla käyttäjä etsitään. Käytä literaalia ‘{{username}}’, jotta annettu käyttäjänimi sijoitetaan LDAP-hakuun.
      • Esimerkki: (|(uid={{username}})(mail={{username}})) (käyttäjä voi kirjautua sähköpostiosoitteella tai käyttäjätunnuksella).
      • Esimerkki: (sAMAccountName={{username}}) (Active Directory).
  • OVERLEAF_LDAP_SEARCH_SCOPE
    • Haun laajuus voi olla base, one tai sub (oletus).
  • OVERLEAF_LDAP_SEARCH_ATTRIBUTES
    • JSON-taulukko LDAP-palvelimelta haettavista attribuuteista, esim. ["uid", "mail", "givenName", "sn"]. Oletuksena kaikki attribuutit haetaan.
  • OVERLEAF_LDAP_STARTTLS
    • Jos arvo on true, käytetään LDAP:tä TLS:n yli.
  • OVERLEAF_LDAP_TLS_OPTS_CA_PATH
    • Polku tiedostoon, joka sisältää LDAP-palvelimen SSL/TLS-varmenteen tarkistamiseen käytettävän CA-varmenteen. Jos varmenteita on useita, arvo voi olla JSON-taulukko varmenteiden poluista. Tiedostojen on oltava Docker-kontin käytettävissä.
      • Esimerkki (yksi varmenne): /var/lib/overleaf/certs/ldap_ca_cert.pem
      • Esimerkki (useita varmenteita): ["/var/lib/overleaf/certs/ldap_ca_cert1.pem", "/var/lib/overleaf/certs/ldap_ca_cert2.pem"]
  • OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTH
    • Jos arvo on true, palvelimen varmenne tarkistetaan annettujen CA-varmenteiden luetteloa vasten.
  • OVERLEAF_LDAP_CACHE
    • Jos arvo on true, enintään 100 tunnistetietoa kerrallaan tallennetaan välimuistiin 5 minuutiksi.
  • OVERLEAF_LDAP_TIMEOUT
    • Kuinka kauan asiakas antaa operaatioiden kestää ennen aikakatkaisua, ms (oletus: Infinity).
  • OVERLEAF_LDAP_CONNECT_TIMEOUT
    • Kuinka kauan asiakas odottaa ennen TCP-yhteyksien aikakatkaisua, ms (oletus: käyttöjärjestelmän oletus).
  • OVERLEAF_LDAP_IS_ADMIN_ATT ja OVERLEAF_LDAP_IS_ADMIN_ATT_VALUE
    • Kun molemmat ympäristömuuttujat on asetettu, kirjautumisprosessi asettaa user.isAdmin = true, jos LDAP-profiili sisältää muuttujan OVERLEAF_LDAP_IS_ADMIN_ATT määrittämän attribuutin ja sen arvo joko vastaa arvoa OVERLEAF_LDAP_IS_ADMIN_ATT_VALUE tai on taulukko, joka sisältää arvon OVERLEAF_LDAP_IS_ADMIN_ATT_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 ylläpitäjäkäyttäjän luomisen yhteydessä Launchpadissa.
Seuraavilla viidellä muuttujalla määritetään, miten käyttäjien yhteystiedot haetaan LDAP-palvelimelta.
  • OVERLEAF_LDAP_CONTACTS_FILTER
    • Suodatin, jolla LDAP-palvelimelta haetaan käyttäjiä ladattavaksi yhteystietoihin. Suodattimen sisällä oleva paikkamerkki ‘{{userProperty}}’ korvataan haun aloittavan LDAP-käyttäjän sen ominaisuuden arvolla, jonka OVERLEAF_LDAP_CONTACTS_PROPERTY määrittää. Jos tätä ei ole määritetty, LDAP-palvelimelta ei haeta käyttäjiä yhteystietoihin.
  • OVERLEAF_LDAP_CONTACTS_SEARCH_BASE
    • Määrittää perus-DN:n, josta yhteystietojen haku aloitetaan. Oletuksena OVERLEAF_LDAP_SEARCH_BASE.
  • OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE
    • Haun laajuus voi olla base, one tai sub (oletus).
  • OVERLEAF_LDAP_CONTACTS_PROPERTY
    • Määrittää käyttäjäobjektin ominaisuuden, joka korvaa paikkamerkin ‘{{userProperty}}’ muuttujassa OVERLEAF_LDAP_CONTACTS_FILTER.
  • OVERLEAF_LDAP_CONTACTS_NON_LDAP_VALUE
    • Määrittää muuttujan OVERLEAF_LDAP_CONTACTS_PROPERTY arvon, jos haun aloittaa muu kuin LDAP-käyttäjä. Jos tätä muuttujaa ei ole määritetty, tuloksena oleva suodatin ei vastaa mitään. Arvoa * voidaan käyttää jokerimerkkinä.
Yllä oleva esimerkki lataa nykyisen LDAP-käyttäjän yhteystietoihin kaikki LDAP-käyttäjät, joilla on sama UNIX-gid. Muiden kuin LDAP-käyttäjien yhteystiedoissa ovat kaikki LDAP-käyttäjät, joilla on UNIX-gid=1000.

Vaihe vaiheelta: goauthentik

Tämä ohje käy läpi määrityksen, joka on testattu goauthentikin kanssa. Esimerkeissä käytetään Base DN:ää dc=example,dc=com; korvaa se omallasi.
1

Luo sidontatili (bind)

Overleaf kirjautuu ensin hakemistoon omalla tilillään löytääkseen käyttäjän. Avaa Authentikissa Directory > Users, napsauta New User, valitse Internal User ja napsauta Next. Anna käyttäjänimi, esimerkiksi ldapservice, ja napsauta Create:

Authentik: sidontatilin luominen

Avaa uusi käyttäjä ja napsauta Set password. Tämä salasana asetetaan muuttujaan OVERLEAF_LDAP_BIND_CREDENTIALS:

Authentik: sidontatilin salasanan asettaminen (testi-instanssi)

Kirjoita muistiin käyttäjän numero osoiteriviltä, esimerkiksi 19 osoitteessa …/#/identity/users/19. Tarvitset sitä vaiheessa 3.
2

Luo tarjoaja ja sovellus

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

Authentik: sovelluksen nimi ja slug

2. Valitse LDAP Provider ja napsauta Next:

Authentik: LDAP-tarjoajan valitseminen

3. Aseta Bind Mode arvoon Direct binding ja Search Mode arvoon Direct querying:

Authentik: LDAP-tarjoajan sidonta- ja hakutila

4. Aseta alempana Bind Flow arvoon default-authentication-flow ja Base DN omaan Base DN:ääsi, esimerkiksi dc=example,dc=com:

Authentik: LDAP-tarjoajan sidontavuo ja Base DN

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

Anna sidontatilin hakea hakemistosta

Ilman tätä oikeutta sidontatili näkee vain itsensä, haku ei löydä yhtään käyttäjää ja jokainen LDAP-kirjautuminen epäonnistuu.Avaa tarjoaja, siirry kohtaan Permissions ja napsauta Assign Role Object Permission. Kirjoita kenttään Role vaiheen 1 numero ja valitse ak-managed-role--user-<number>, ja ota sitten käyttöön Search full LDAP directory:

Authentik: hakuoikeuden antaminen sidontatilille (testi-instanssi)

Tämän jälkeen roolin kohdalla näkyy valintamerkki sarakkeessa Search full LDAP directory:

Authentik: LDAP-tarjoajan oikeudet (testi-instanssi)

4

Käynnistä LDAP-outpost

Authentik vastaa LDAP-pyyntöihin outpostin eli erillisen kontin kautta. Avaa Applications > Outposts, luo LDAP-tyyppinen outpost tarjoajallesi ja ota se käyttöön Authentikin ohjeiden mukaisesti. Se kuuntelee porttia 389 isännässä, jossa se toimii. Kun yhteys on muodostettu, siinä näkyy vihreä valintamerkki:

Authentik: käynnissä oleva LDAP-outpost (testi-instanssi)

5

Täytä DN:t

Tarjoajan sivulla näkyvät Base DN ja esimerkki kohdassa How to connect:

Authentik: LDAP-tarjoajan yleiskatsaus (testi-instanssi)

Älä kopioi esimerkkiarvoja sellaisenaan:
  • Bind DN näyttää tilin, jolla olet kirjautunut. Käytä sen sijaan vaiheen 1 sidontatiliä: cn=ldapservice,ou=users,<Base DN>.
  • Search base näyttää Base DN:n. Käytä arvoa ou=users,<Base DN>.
Authentik ylläpitää jokaisen käyttäjän nimistä ryhmää kohdassa ou=virtual-groups. Kun koko Base DN:stä haetaan (cn=alice), löytyvät sekä cn=alice,ou=users,… että cn=alice,ou=virtual-groups,…, ja Overleaf hylkää kirjautumisen, joka vastaa useampaa kuin yhtä merkintää. Pidä hakukantana ou=users,<Base DN>.
6

Tarkista haku

Ennen kuin käynnistät Overleafin, suorita sama haku, jonka se tekee. Sen on tulostettava täsmälleen yksi dn::
Jos dn:-riviä ei tule lainkaan, vaiheen 3 oikeus yleensä puuttuu.
7

Määritä ylläpitäjät (valinnainen)

Käyttäjän ryhmät ovat attribuutissa memberOf DN-muodossa kohdan ou=groups alla. Jos haluat Authentik-ryhmän Admins jäsenistä Overleafin ylläpitäjiä:
Ylläpitäjän tila päivitetään jokaisella LDAP-kirjautumisella. Jos attribuutti tai arvo on väärä, jokainen LDAP: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