Hvad er LDAP
LDAP er en godkendelsesprotokol, der bruges til ekstern identitetsverifikation. Overleaf Server Pro tilbyder en dedikeret LDAP-loginformular i webgrænsefladen, adskilt fra standardgodkendelsesmetoden. Når en bruger indsender sit LDAP-brugernavn og -adgangskode, verificerer Overleafs backend legitimationsoplysningerne mod den konfigurerede LDAP-server, for eksempelldap://ldap:10389.

Et Server Pro-eksempel på LDAP
Konfiguration
Internt bruger Overleaf LDAP biblioteket passport-ldapauth. De fleste af disse konfigurationsmuligheder videregives til konfigurationsobjektetserver, som bruges til at konfigurere passport-ldapauth. Hvis du har problemer med at konfigurere LDAP, er det en god idé at læse README-filen for passport-ldapauth for at få en fornemmelse af, hvilken konfiguration den forventer.
Miljøvariablen EXTERNAL_AUTH er påkrævet for at aktivere LDAP-godkendelsesmodulet. Denne miljøvariabel angiver, hvilke eksterne godkendelsesmetoder der er aktiveret. Værdien af variablen er en liste. Hvis listen indeholder ldap, aktiveres LDAP-godkendelse.
For eksempel: EXTERNAL_AUTH=ldap saml
I modsætning til Overleaf CEP begrænser vi i vores ayaka-notes-udgave LDAP-godkendelse til en ren godkendelsesmetode, som er tilgængelig på http://your-overleaf.com/ldap/login.
Når LDAP-godkendelse bruges, og en bruger indtaster et username og password i loginformularen, sker følgende:
- Der søges efter en LDAP-bruger i LDAP-kataloget ved hjælp af filteret defineret af
OVERLEAF_LDAP_SEARCH_FILTER, og brugeren godkendes. - Hvis godkendelsen lykkes, kontrolleres Overleafs brugerdatabase for en bruger, hvis primære e-mailadresse matcher e-mailadressen på den godkendte LDAP-bruger:
- Hvis der findes en matchende bruger, slettes feltet
hashedPasswordfor denne bruger (hvis det findes). Det sikrer, at brugeren fremover kun kan logge ind via LDAP-godkendelse. - Hvis der ikke findes en matchende bruger, oprettes en ny Overleaf-bruger med den e-mail, det fornavn og det efternavn, der hentes fra LDAP-serveren.
- Hvis der findes en matchende bruger, slettes feltet
Miljøvariabler
OVERLEAF_LDAP_URL(påkrævet)- URL til LDAP-serveren.
- Eksempel:
ldaps://ldap.example.com:636(LDAP over SSL) - Eksempel:
ldap://ldap.example.com:389(ukrypteret eller STARTTLS, hvis konfigureret).
- Eksempel:
- URL til LDAP-serveren.
OVERLEAF_LDAP_IDENTITY_SERVICE_NAME- Visningsnavn for LDAP-identitetstjenesten, som bruges på loginsiden.
- Standard er
Log in with LDAP Provider.
OVERLEAF_LDAP_EMAIL_ATT- E-mailattributten, som LDAP-serveren returnerer, standard
mail. Hver LDAP-bruger skal have mindst én e-mailadresse. Hvis der angives flere adresser, bruges kun den første.
- E-mailattributten, som LDAP-serveren returnerer, standard
OVERLEAF_LDAP_FIRST_NAME_ATT- Navnet på egenskaben, der indeholder brugerens fornavn, som bruges i applikationen, normalt
givenName.
- Navnet på egenskaben, der indeholder brugerens fornavn, som bruges i applikationen, normalt
OVERLEAF_LDAP_LAST_NAME_ATT- Navnet på egenskaben, der indeholder brugerens efternavn, som bruges i applikationen, normalt
sn.
- Navnet på egenskaben, der indeholder brugerens efternavn, som bruges i applikationen, normalt
OVERLEAF_LDAP_NAME_ATT- Navnet på egenskaben, der indeholder brugerens fulde navn, normalt
cn. Hvis en af de to foregående variabler ikke er defineret, udtrækkes brugerens fornavn og/eller efternavn fra denne variabel. Ellers bruges den ikke.
- Navnet på egenskaben, der indeholder brugerens fulde navn, normalt
OVERLEAF_LDAP_PLACEHOLDER- Pladsholderteksten til loginformularen, standard er
Username.
- Pladsholderteksten til loginformularen, standard er
OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN- Hvis den er sat til
true, opdateres LDAP-brugerens felterfirst_nameoglast_nameved login, og formularen med brugeroplysninger på siden/user/settingsslås fra for LDAP-brugere. Ellers hentes oplysningerne kun ved første login.
- Hvis den er sat til
OVERLEAF_LDAP_BIND_DN- Det distinguished name for den LDAP-bruger, der skal bruges til LDAP-forbindelsen (denne bruger skal kunne søge i/liste konti på LDAP-serveren), f.eks.
cn=ldap_reader,dc=example,dc=com. Hvis den ikke er defineret, bruges anonym binding.
- Det distinguished name for den LDAP-bruger, der skal bruges til LDAP-forbindelsen (denne bruger skal kunne søge i/liste konti på LDAP-serveren), f.eks.
OVERLEAF_LDAP_BIND_CREDENTIALS- Adgangskode til
OVERLEAF_LDAP_BIND_DN.
- Adgangskode til
OVERLEAF_LDAP_BIND_PROPERTY- Den egenskab ved brugeren, der skal bindes mod klienten, standard er
dn.
- Den egenskab ved brugeren, der skal bindes mod klienten, standard er
OVERLEAF_LDAP_SEARCH_BASE(påkrævet)- Det base-DN, hvorfra der søges efter brugere. F.eks.
ou=people,dc=example,dc=com.
- Det base-DN, hvorfra der søges efter brugere. F.eks.
OVERLEAF_LDAP_SEARCH_FILTER- LDAP-søgefilter, som en bruger findes med. Brug den bogstavelige tekst ‘{{username}}’ for at få det angivne brugernavn indsat i LDAP-søgningen.
- Eksempel:
(|(uid={{username}})(mail={{username}}))(brugeren kan logge ind med e-mail eller med loginnavn). - Eksempel:
(sAMAccountName={{username}})(Active Directory).
- Eksempel:
- LDAP-søgefilter, som en bruger findes med. Brug den bogstavelige tekst ‘{{username}}’ for at få det angivne brugernavn indsat i LDAP-søgningen.
OVERLEAF_LDAP_SEARCH_SCOPE- Søgningens omfang kan være
base,oneellersub(standard).
- Søgningens omfang kan være
OVERLEAF_LDAP_SEARCH_ATTRIBUTES- JSON-array med attributter, der skal hentes fra LDAP-serveren, f.eks.
["uid", "mail", "givenName", "sn"]. Som standard hentes alle attributter.
- JSON-array med attributter, der skal hentes fra LDAP-serveren, f.eks.
OVERLEAF_LDAP_STARTTLS- Hvis
true, bruges LDAP over TLS.
- Hvis
OVERLEAF_LDAP_TLS_OPTS_CA_PATH- Sti til filen med det CA-certifikat, der bruges til at verificere LDAP-serverens SSL/TLS-certifikat. Hvis der er flere certifikater, kan det være et JSON-array med stier til certifikaterne. Filerne skal være tilgængelige for Docker-containeren.
- Eksempel (ét certifikat):
/var/lib/overleaf/certs/ldap_ca_cert.pem - Eksempel (flere certifikater):
["/var/lib/overleaf/certs/ldap_ca_cert1.pem", "/var/lib/overleaf/certs/ldap_ca_cert2.pem"]
- Eksempel (ét certifikat):
- Sti til filen med det CA-certifikat, der bruges til at verificere LDAP-serverens SSL/TLS-certifikat. Hvis der er flere certifikater, kan det være et JSON-array med stier til certifikaterne. Filerne skal være tilgængelige for Docker-containeren.
OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTH- Hvis
true, verificeres servercertifikatet mod listen over angivne CA’er.
- Hvis
OVERLEAF_LDAP_CACHE- Hvis
true, caches op til 100 legitimationsoplysninger ad gangen i 5 minutter.
- Hvis
OVERLEAF_LDAP_TIMEOUT- Hvor længe klienten skal lade operationer køre, før de får timeout, i ms (standard: Infinity).
OVERLEAF_LDAP_CONNECT_TIMEOUT- Hvor længe klienten skal vente, før TCP-forbindelser får timeout, i ms (standard: operativsystemets standard).
OVERLEAF_LDAP_IS_ADMIN_ATTogOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE- Når begge miljøvariabler er angivet, opdaterer loginprocessen
user.isAdmin = true, hvis LDAP-profilen indeholder attributten angivet afOVERLEAF_LDAP_IS_ADMIN_ATT, og dens værdi enten matcherOVERLEAF_LDAP_IS_ADMIN_ATT_VALUEeller er et array, der indeholderOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE; ellers sættesuser.isAdmintilfalse. Hvis en af disse variabler ikke er angivet, sættes administratorstatus kun tiltrue, når administratorbrugeren oprettes i Launchpad.
- Når begge miljøvariabler er angivet, opdaterer loginprocessen
OVERLEAF_LDAP_CONTACTS_FILTER- Filteret, der bruges til at søge efter brugere på LDAP-serveren, som skal indlæses i kontakter. Pladsholderen ‘{{userProperty}}’ i filteret erstattes med værdien af den egenskab, der er angivet af
OVERLEAF_LDAP_CONTACTS_PROPERTY, fra den LDAP-bruger, der starter søgningen. Hvis det ikke er defineret, hentes ingen brugere fra LDAP-serveren ind i kontakter.
- Filteret, der bruges til at søge efter brugere på LDAP-serveren, som skal indlæses i kontakter. Pladsholderen ‘{{userProperty}}’ i filteret erstattes med værdien af den egenskab, der er angivet af
OVERLEAF_LDAP_CONTACTS_SEARCH_BASE- Angiver det base-DN, hvorfra søgningen efter kontakter starter. Standard er
OVERLEAF_LDAP_SEARCH_BASE.
- Angiver det base-DN, hvorfra søgningen efter kontakter starter. Standard er
OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE- Søgningens omfang kan være
base,oneellersub(standard).
- Søgningens omfang kan være
OVERLEAF_LDAP_CONTACTS_PROPERTY- Angiver den egenskab ved brugerobjektet, der erstatter pladsholderen ‘{{userProperty}}’ i
OVERLEAF_LDAP_CONTACTS_FILTER.
- Angiver den egenskab ved brugerobjektet, der erstatter pladsholderen ‘{{userProperty}}’ i
OVERLEAF_LDAP_CONTACTS_NON_LDAP_VALUE- Angiver værdien af
OVERLEAF_LDAP_CONTACTS_PROPERTY, hvis søgningen startes af en bruger, der ikke er LDAP-bruger. Hvis denne variabel ikke er defineret, matcher det resulterende filter ingenting. Værdien*kan bruges som jokertegn.
- Angiver værdien af
Eksempel
Eksempel
gid indlæses i den aktuelle LDAP-brugers kontakter. Brugere, der ikke er LDAP-brugere, får alle LDAP-brugere med UNIX gid=1000 i deres kontakter.Eksempel på variables.env-fil
Eksempel på variables.env-fil
Trin for trin: goauthentik
Denne vejledning gennemgår en opsætning, der er testet mod goauthentik. Eksemplerne bruger Base DNdc=example,dc=com; erstat den med din egen.
Opret en bind-konto
ldapservice, og klik på Create:
Authentik: opret bind-kontoen
OVERLEAF_LDAP_BIND_CREDENTIALS:
Authentik: angiv adgangskoden til bind-kontoen (testinstans)
19 i …/#/identity/users/19. Du skal bruge det i trin 3.Opret udbyderen og applikationen
overleaf-ldap, og klik på Next:
Authentik: applikationens navn og slug

Authentik: vælg LDAP-udbyderen

Authentik: bind- og søgetilstand for LDAP-udbyderen
default-authentication-flow og Base DN til din Base DN, for eksempel dc=example,dc=com:
Authentik: bind flow og Base DN for LDAP-udbyderen
Lad bind-kontoen søge i kataloget
ak-managed-role--user-<number> og derefter slå Search full LDAP directory til:
Authentik: giv bind-kontoen søgetilladelsen (testinstans)

Authentik: tilladelser for en LDAP-udbyder (testinstans)
Kør LDAP-outposten

Authentik: en kørende LDAP-outpost (testinstans)
Udfyld DN'erne

Authentik: oversigt over en LDAP-udbyder (testinstans)
- Bind DN viser den konto, du er logget ind med. Brug i stedet bind-kontoen fra trin 1:
cn=ldapservice,ou=users,<Base DN>. - Search base viser Base DN. Brug
ou=users,<Base DN>.
Kontrollér søgningen
dn::dn: overhovedet betyder som regel, at tilladelsen fra trin 3 mangler.Tilknyt administratorerne (valgfrit)
memberOf, som DN’er under ou=groups. Sådan gør du medlemmerne af Authentik-gruppen Admins til administratorer i Overleaf:Testet variables.env til goauthentik
Testet variables.env til goauthentik

