Hva er LDAP
LDAP er en autentiseringsprotokoll som brukes til ekstern identitetsverifisering. Overleaf Server Pro har et eget LDAP-innloggingsskjema i webgrensesnittet, atskilt fra standard autentiseringsmetode. Når en bruker sender inn LDAP-brukernavn og -passord, verifiserer Overleaf-backend legitimasjonen mot den konfigurerte LDAP-serveren, for eksempelldap://ldap:10389.

Et Server Pro-eksempel for LDAP
Konfigurasjon
Internt bruker Overleaf LDAP biblioteket passport-ldapauth. De fleste av disse konfigurasjonsalternativene sendes videre til konfigurasjonsobjektetserver, som brukes til å konfigurere passport-ldapauth. Hvis du har problemer med å konfigurere LDAP, er det verdt å lese README-filen for passport-ldapauth for å få et inntrykk av hvilken konfigurasjon den forventer.
Miljøvariabelen EXTERNAL_AUTH kreves for å aktivere LDAP-autentiseringsmodulen. Denne miljøvariabelen angir hvilke eksterne autentiseringsmetoder som er aktivert. Verdien av variabelen er en liste. Hvis listen inneholder ldap, aktiveres LDAP-autentisering.
For eksempel: EXTERNAL_AUTH=ldap saml
I motsetning til Overleaf CEP begrenser vi i ayaka-notes-utgaven LDAP-autentisering til en ren autentiseringsmetode, som er tilgjengelig på http://your-overleaf.com/ldap/login.
Når LDAP-autentisering brukes og en bruker skriver inn username og password i innloggingsskjemaet, skjer følgende:
- Det søkes etter en LDAP-bruker i LDAP-katalogen med filteret definert av
OVERLEAF_LDAP_SEARCH_FILTER, og brukeren autentiseres. - Hvis autentiseringen lykkes, søkes det i Overleafs brukerdatabase etter en bruker med en primær e-postadresse som samsvarer med e-postadressen til den autentiserte LDAP-brukeren:
- Hvis en samsvarende bruker blir funnet, slettes feltet
hashedPasswordfor denne brukeren (hvis det finnes). Dette sikrer at brukeren heretter bare kan logge inn via LDAP-autentisering. - Hvis ingen samsvarende bruker blir funnet, opprettes en ny Overleaf-bruker med e-postadressen, fornavnet og etternavnet som hentes fra LDAP-serveren.
- Hvis en samsvarende bruker blir funnet, slettes feltet
Miljøvariabler
OVERLEAF_LDAP_URL(påkrevd)- URL-en til LDAP-serveren.
- Eksempel:
ldaps://ldap.example.com:636(LDAP over SSL) - Eksempel:
ldap://ldap.example.com:389(ukryptert eller STARTTLS, hvis konfigurert).
- Eksempel:
- URL-en til LDAP-serveren.
OVERLEAF_LDAP_IDENTITY_SERVICE_NAME- Visningsnavn for LDAP-identitetstjenesten, brukt på innloggingssiden.
- Standard er
Log in with LDAP Provider.
OVERLEAF_LDAP_EMAIL_ATT- E-postattributtet som returneres av LDAP-serveren, standard
mail. Hver LDAP-bruker må ha minst én e-postadresse. Hvis flere adresser oppgis, brukes bare den første.
- E-postattributtet som returneres av LDAP-serveren, standard
OVERLEAF_LDAP_FIRST_NAME_ATT- Navnet på egenskapen som inneholder brukerens fornavn som brukes i applikasjonen, vanligvis
givenName.
- Navnet på egenskapen som inneholder brukerens fornavn som brukes i applikasjonen, vanligvis
OVERLEAF_LDAP_LAST_NAME_ATT- Navnet på egenskapen som inneholder brukerens etternavn som brukes i applikasjonen, vanligvis
sn.
- Navnet på egenskapen som inneholder brukerens etternavn som brukes i applikasjonen, vanligvis
OVERLEAF_LDAP_NAME_ATT- Navnet på egenskapen som inneholder brukerens fulle navn, vanligvis
cn. Hvis en av de to foregående variablene ikke er definert, hentes brukerens fornavn og/eller etternavn fra denne variabelen. Ellers brukes den ikke.
- Navnet på egenskapen som inneholder brukerens fulle navn, vanligvis
OVERLEAF_LDAP_PLACEHOLDER- Plassholderteksten for innloggingsskjemaet, standard er
Username.
- Plassholderteksten for innloggingsskjemaet, standard er
OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN- Hvis satt til
true, oppdateres LDAP-brukerens feltfirst_nameoglast_nameved innlogging, og skjemaet for brukerdetaljer på siden/user/settingsslås av for LDAP-brukere. Ellers hentes detaljene bare ved første innlogging.
- Hvis satt til
OVERLEAF_LDAP_BIND_DN- Det unike navnet (DN) til LDAP-brukeren som skal brukes for LDAP-tilkoblingen (denne brukeren må kunne søke etter/liste kontoer på LDAP-serveren), f.eks.
cn=ldap_reader,dc=example,dc=com. Hvis den ikke er definert, brukes anonym binding.
- Det unike navnet (DN) til LDAP-brukeren som skal brukes for LDAP-tilkoblingen (denne brukeren må kunne søke etter/liste kontoer på LDAP-serveren), f.eks.
OVERLEAF_LDAP_BIND_CREDENTIALS- Passord for
OVERLEAF_LDAP_BIND_DN.
- Passord for
OVERLEAF_LDAP_BIND_PROPERTY- Brukeregenskapen som skal bindes mot klienten, standard er
dn.
- Brukeregenskapen som skal bindes mot klienten, standard er
OVERLEAF_LDAP_SEARCH_BASE(påkrevd)- Basis-DN-en det skal søkes etter brukere fra. F.eks.
ou=people,dc=example,dc=com.
- Basis-DN-en det skal søkes etter brukere fra. F.eks.
OVERLEAF_LDAP_SEARCH_FILTER- LDAP-søkefilter som brukes til å finne en bruker. Bruk literalen ‘{{username}}’ for å få det oppgitte brukernavnet interpolert inn i LDAP-søket.
- Eksempel:
(|(uid={{username}})(mail={{username}}))(brukeren kan logge inn med e-post eller brukernavn). - Eksempel:
(sAMAccountName={{username}})(Active Directory).
- Eksempel:
- LDAP-søkefilter som brukes til å finne en bruker. Bruk literalen ‘{{username}}’ for å få det oppgitte brukernavnet interpolert inn i LDAP-søket.
OVERLEAF_LDAP_SEARCH_SCOPE- Søkeomfanget kan være
base,oneellersub(standard).
- Søkeomfanget kan være
OVERLEAF_LDAP_SEARCH_ATTRIBUTES- JSON-matrise med attributter som skal hentes fra LDAP-serveren, f.eks.
["uid", "mail", "givenName", "sn"]. Som standard hentes alle attributter.
- JSON-matrise med attributter som skal hentes fra LDAP-serveren, f.eks.
OVERLEAF_LDAP_STARTTLS- Hvis
true, brukes LDAP over TLS.
- Hvis
OVERLEAF_LDAP_TLS_OPTS_CA_PATH- Sti til filen som inneholder CA-sertifikatet som brukes til å verifisere LDAP-serverens SSL/TLS-sertifikat. Hvis det finnes flere sertifikater, kan det være en JSON-matrise med stier til sertifikatene. Filene må være tilgjengelige for Docker-containeren.
- Eksempel (ett sertifikat):
/var/lib/overleaf/certs/ldap_ca_cert.pem - Eksempel (flere sertifikater):
["/var/lib/overleaf/certs/ldap_ca_cert1.pem", "/var/lib/overleaf/certs/ldap_ca_cert2.pem"]
- Eksempel (ett sertifikat):
- Sti til filen som inneholder CA-sertifikatet som brukes til å verifisere LDAP-serverens SSL/TLS-sertifikat. Hvis det finnes flere sertifikater, kan det være en JSON-matrise med stier til sertifikatene. Filene må være tilgjengelige for Docker-containeren.
OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTH- Hvis
true, verifiseres serversertifikatet mot listen over oppgitte CA-er.
- Hvis
OVERLEAF_LDAP_CACHE- Hvis
true, hurtigbufres opptil 100 legitimasjoner om gangen i 5 minutter.
- Hvis
OVERLEAF_LDAP_TIMEOUT- Hvor lenge klienten skal la operasjoner pågå før tidsavbrudd, i ms (standard: Infinity).
OVERLEAF_LDAP_CONNECT_TIMEOUT- Hvor lenge klienten skal vente før tidsavbrudd på TCP-tilkoblinger, i ms (standard: operativsystemets standard).
OVERLEAF_LDAP_IS_ADMIN_ATTogOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE- Når begge miljøvariablene er angitt, setter innloggingsprosessen
user.isAdmin = truehvis LDAP-profilen inneholder attributtet angitt avOVERLEAF_LDAP_IS_ADMIN_ATTog verdien enten samsvarer medOVERLEAF_LDAP_IS_ADMIN_ATT_VALUEeller er en matrise som inneholderOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE; ellers settesuser.isAdmintilfalse. Hvis en av disse variablene ikke er angitt, settes administratorstatusen bare tiltruenår administratorbrukeren opprettes i Launchpad.
- Når begge miljøvariablene er angitt, setter innloggingsprosessen
OVERLEAF_LDAP_CONTACTS_FILTER- Filteret som brukes til å søke etter brukere på LDAP-serveren som skal lastes inn i kontaktene. Plassholderen ‘{{userProperty}}’ i filteret erstattes med verdien av egenskapen angitt av
OVERLEAF_LDAP_CONTACTS_PROPERTYfra LDAP-brukeren som starter søket. Hvis den ikke er definert, hentes ingen brukere fra LDAP-serveren inn i kontaktene.
- Filteret som brukes til å søke etter brukere på LDAP-serveren som skal lastes inn i kontaktene. Plassholderen ‘{{userProperty}}’ i filteret erstattes med verdien av egenskapen angitt av
OVERLEAF_LDAP_CONTACTS_SEARCH_BASE- Angir basis-DN-en som søket etter kontakter skal starte fra. Standard er
OVERLEAF_LDAP_SEARCH_BASE.
- Angir basis-DN-en som søket etter kontakter skal starte fra. Standard er
OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE- Søkeomfanget kan være
base,oneellersub(standard).
- Søkeomfanget kan være
OVERLEAF_LDAP_CONTACTS_PROPERTY- Angir egenskapen i brukerobjektet som skal erstatte plassholderen ‘{{userProperty}}’ i
OVERLEAF_LDAP_CONTACTS_FILTER.
- Angir egenskapen i brukerobjektet som skal erstatte plassholderen ‘{{userProperty}}’ i
OVERLEAF_LDAP_CONTACTS_NON_LDAP_VALUE- Angir verdien av
OVERLEAF_LDAP_CONTACTS_PROPERTYhvis søket startes av en bruker som ikke er LDAP-bruker. Hvis denne variabelen ikke er definert, vil det resulterende filteret ikke samsvare med noe. Verdien*kan brukes som jokertegn.
- Angir verdien av
Eksempel
Eksempel
gid lastes inn i kontaktene til den gjeldende LDAP-brukeren. Brukere som ikke er LDAP-brukere, får alle LDAP-brukere med UNIX gid=1000 i kontaktene sine.Eksempel på variables.env-fil
Eksempel på variables.env-fil
Trinn for trinn: goauthentik
Dette er en gjennomgang av et oppsett som er testet mot goauthentik. Eksemplene bruker Base DNdc=example,dc=com; erstatt den med din egen.
Opprett en bind-konto
ldapservice, og klikk Create:
Authentik: opprett bind-kontoen
OVERLEAF_LDAP_BIND_CREDENTIALS:
Authentik: angi passordet for bind-kontoen (testinstans)
19 i …/#/identity/users/19. Du trenger det i trinn 3.Opprett leverandøren og applikasjonen
overleaf-ldap, og klikk Next:
Authentik: navn og slug for applikasjonen

Authentik: velg LDAP-leverandøren

Authentik: bind- og søkemodus for LDAP-leverandøren
default-authentication-flow og Base DN til din Base DN, for eksempel dc=example,dc=com:
Authentik: bind-flyt og Base DN for LDAP-leverandøren
La bind-kontoen søke i katalogen
ak-managed-role--user-<number>, og deretter slår du på Search full LDAP directory:
Authentik: gi bind-kontoen søketillatelsen (testinstans)

Authentik: tillatelser for en LDAP-leverandør (testinstans)
Kjør LDAP-outposten

Authentik: en kjørende LDAP-outpost (testinstans)
Fyll inn DN-ene

Authentik: oversikt over en LDAP-leverandør (testinstans)
- Bind DN viser kontoen du er logget inn med. Bruk i stedet bind-kontoen fra trinn 1:
cn=ldapservice,ou=users,<Base DN>. - Search base viser Base DN. Bruk
ou=users,<Base DN>.
Kontroller søket
dn::dn: i det hele tatt betyr vanligvis at tillatelsen fra trinn 3 mangler.Tilordne administratorene (valgfritt)
memberOf, som DN-er under ou=groups. Slik gjør du medlemmene av Authentik-gruppen Admins til administratorer i Overleaf:Testet variables.env for goauthentik
Testet variables.env for goauthentik

