Vad är LDAP
LDAP är ett autentiseringsprotokoll som används för extern identitetsverifiering. Overleaf Server Pro tillhandahåller ett särskilt LDAP-inloggningsformulär i webbgränssnittet, separat från standardautentiseringsmetoden. När en användare skickar in sitt LDAP-användarnamn och lösenord verifierar Overleafs backend inloggningsuppgifterna mot den konfigurerade LDAP-servern, till exempelldap://ldap:10389.

Ett Server Pro-exempel för LDAP
Konfiguration
Internt använder Overleafs LDAP-stöd biblioteket passport-ldapauth. De flesta av dessa konfigurationsalternativ skickas vidare till konfigurationsobjektetserver, som används för att konfigurera passport-ldapauth. Om du har problem med att konfigurera LDAP är det värt att läsa README-filen för passport-ldapauth för att få en känsla för vilken konfiguration den förväntar sig.
Miljövariabeln EXTERNAL_AUTH krävs för att aktivera LDAP-autentiseringsmodulen. Den här miljövariabeln anger vilka externa autentiseringsmetoder som är aktiverade. Variabelns värde är en lista. Om listan innehåller ldap aktiveras LDAP-autentisering.
Till exempel: EXTERNAL_AUTH=ldap saml
Till skillnad från Overleaf CEP begränsar vi i vår ayaka-notes-utgåva LDAP-autentisering till en ren autentiseringsmetod, som finns tillgänglig på http://your-overleaf.com/ldap/login.
När LDAP-autentisering används och en användare anger ett username och password i inloggningsformuläret görs följande försök:
- En LDAP-användare söks upp i LDAP-katalogen med det filter som definieras av
OVERLEAF_LDAP_SEARCH_FILTERoch autentiseras. - Om autentiseringen lyckas söks Overleafs användardatabas igenom efter en användare vars primära e-postadress matchar e-postadressen för den autentiserade LDAP-användaren:
- Om en matchande användare hittas raderas fältet
hashedPasswordför denna användare (om det finns). Detta säkerställer att användaren i fortsättningen endast kan logga in via LDAP-autentisering. - Om ingen matchande användare hittas skapas en ny Overleaf-användare med den e-postadress, det förnamn och det efternamn som hämtats från LDAP-servern.
- Om en matchande användare hittas raderas fältet
Miljövariabler
OVERLEAF_LDAP_URL(obligatorisk)- URL till LDAP-servern.
- Exempel:
ldaps://ldap.example.com:636(LDAP över SSL) - Exempel:
ldap://ldap.example.com:389(okrypterad eller STARTTLS, om det är konfigurerat).
- Exempel:
- URL till LDAP-servern.
OVERLEAF_LDAP_IDENTITY_SERVICE_NAME- Visningsnamn för LDAP-identitetstjänsten, som används på inloggningssidan.
- Standardvärde:
Log in with LDAP Provider.
OVERLEAF_LDAP_EMAIL_ATT- E-postattributet som returneras av LDAP-servern, standard
mail. Varje LDAP-användare måste ha minst en e-postadress. Om flera adresser anges används endast den första.
- E-postattributet som returneras av LDAP-servern, standard
OVERLEAF_LDAP_FIRST_NAME_ATT- Namnet på egenskapen som innehåller användarens förnamn som används i applikationen, vanligtvis
givenName.
- Namnet på egenskapen som innehåller användarens förnamn som används i applikationen, vanligtvis
OVERLEAF_LDAP_LAST_NAME_ATT- Namnet på egenskapen som innehåller användarens efternamn som används i applikationen, vanligtvis
sn.
- Namnet på egenskapen som innehåller användarens efternamn som används i applikationen, vanligtvis
OVERLEAF_LDAP_NAME_ATT- Namnet på egenskapen som innehåller användarens fullständiga namn, vanligtvis
cn. Om någon av de två föregående variablerna inte är definierad extraheras användarens förnamn och/eller efternamn från denna variabel. Annars används den inte.
- Namnet på egenskapen som innehåller användarens fullständiga namn, vanligtvis
OVERLEAF_LDAP_PLACEHOLDER- Platshållartexten för inloggningsformuläret, standard
Username.
- Platshållartexten för inloggningsformuläret, standard
OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN- Om värdet är
trueuppdateras LDAP-användarens fältfirst_nameochlast_namevid inloggning, och formuläret för användaruppgifter på sidan/user/settingsstängs av för LDAP-användare. Annars hämtas uppgifterna endast vid första inloggningen.
- Om värdet är
OVERLEAF_LDAP_BIND_DN- Det unika namnet (DN) för den LDAP-användare som ska användas för LDAP-anslutningen (användaren ska kunna söka efter/lista konton på LDAP-servern), t.ex.
cn=ldap_reader,dc=example,dc=com. Om det inte är definierat används anonym bindning.
- Det unika namnet (DN) för den LDAP-användare som ska användas för LDAP-anslutningen (användaren ska kunna söka efter/lista konton på LDAP-servern), t.ex.
OVERLEAF_LDAP_BIND_CREDENTIALS- Lösenord för
OVERLEAF_LDAP_BIND_DN.
- Lösenord för
OVERLEAF_LDAP_BIND_PROPERTY- Den egenskap hos användaren som används för bindning mot klienten, standard
dn.
- Den egenskap hos användaren som används för bindning mot klienten, standard
OVERLEAF_LDAP_SEARCH_BASE(obligatorisk)- Bas-DN från vilket användare söks. T.ex.
ou=people,dc=example,dc=com.
- Bas-DN från vilket användare söks. T.ex.
OVERLEAF_LDAP_SEARCH_FILTER- LDAP-sökfilter som används för att hitta en användare. Använd literalen ‘{{username}}’ för att det angivna användarnamnet ska infogas i LDAP-sökningen.
- Exempel:
(|(uid={{username}})(mail={{username}}))(användaren kan logga in med e-postadress eller inloggningsnamn). - Exempel:
(sAMAccountName={{username}})(Active Directory).
- Exempel:
- LDAP-sökfilter som används för att hitta en användare. Använd literalen ‘{{username}}’ för att det angivna användarnamnet ska infogas i LDAP-sökningen.
OVERLEAF_LDAP_SEARCH_SCOPE- Sökningens omfång kan vara
base,oneellersub(standard).
- Sökningens omfång kan vara
OVERLEAF_LDAP_SEARCH_ATTRIBUTES- JSON-array med attribut som ska hämtas från LDAP-servern, t.ex.
["uid", "mail", "givenName", "sn"]. Som standard hämtas alla attribut.
- JSON-array med attribut som ska hämtas från LDAP-servern, t.ex.
OVERLEAF_LDAP_STARTTLS- Om värdet är
trueanvänds LDAP över TLS.
- Om värdet är
OVERLEAF_LDAP_TLS_OPTS_CA_PATH- Sökväg till filen som innehåller CA-certifikatet som används för att verifiera LDAP-serverns SSL/TLS-certifikat. Om det finns flera certifikat kan värdet vara en JSON-array med sökvägar till certifikaten. Filerna måste vara åtkomliga för Docker-containern.
- Exempel (ett certifikat):
/var/lib/overleaf/certs/ldap_ca_cert.pem - Exempel (flera certifikat):
["/var/lib/overleaf/certs/ldap_ca_cert1.pem", "/var/lib/overleaf/certs/ldap_ca_cert2.pem"]
- Exempel (ett certifikat):
- Sökväg till filen som innehåller CA-certifikatet som används för att verifiera LDAP-serverns SSL/TLS-certifikat. Om det finns flera certifikat kan värdet vara en JSON-array med sökvägar till certifikaten. Filerna måste vara åtkomliga för Docker-containern.
OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTH- Om värdet är
trueverifieras servercertifikatet mot listan över angivna CA:er.
- Om värdet är
OVERLEAF_LDAP_CACHE- Om värdet är
truecachas upp till 100 inloggningsuppgifter åt gången i 5 minuter.
- Om värdet är
OVERLEAF_LDAP_TIMEOUT- Hur länge klienten ska låta operationer pågå innan de avbryts på grund av tidsgräns, i ms (standard: Infinity).
OVERLEAF_LDAP_CONNECT_TIMEOUT- Hur länge klienten ska vänta innan TCP-anslutningar avbryts på grund av tidsgräns, i ms (standard: operativsystemets standardvärde).
OVERLEAF_LDAP_IS_ADMIN_ATTochOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE- När båda miljövariablerna är angivna sätter inloggningsprocessen
user.isAdmin = trueom LDAP-profilen innehåller det attribut som anges avOVERLEAF_LDAP_IS_ADMIN_ATToch dess värde antingen matcharOVERLEAF_LDAP_IS_ADMIN_ATT_VALUEeller är en array som innehållerOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE; annars sättsuser.isAdmintillfalse. Om någon av dessa variabler inte är angiven sätts administratörsstatusen tilltrueendast när administratörsanvändaren skapas i Launchpad.
- När båda miljövariablerna är angivna sätter inloggningsprocessen
OVERLEAF_LDAP_CONTACTS_FILTER- Filtret som används för att söka efter användare på LDAP-servern som ska läsas in som kontakter. Platshållaren ‘{{userProperty}}’ i filtret ersätts med värdet av den egenskap som anges av
OVERLEAF_LDAP_CONTACTS_PROPERTYhos den LDAP-användare som initierar sökningen. Om det inte är definierat hämtas inga användare från LDAP-servern till kontakterna.
- Filtret som används för att söka efter användare på LDAP-servern som ska läsas in som kontakter. Platshållaren ‘{{userProperty}}’ i filtret ersätts med värdet av den egenskap som anges av
OVERLEAF_LDAP_CONTACTS_SEARCH_BASE- Anger det bas-DN från vilket sökningen efter kontakter ska börja. Standardvärdet är
OVERLEAF_LDAP_SEARCH_BASE.
- Anger det bas-DN från vilket sökningen efter kontakter ska börja. Standardvärdet är
OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE- Sökningens omfång kan vara
base,oneellersub(standard).
- Sökningens omfång kan vara
OVERLEAF_LDAP_CONTACTS_PROPERTY- Anger den egenskap hos användarobjektet som ersätter platshållaren ‘{{userProperty}}’ i
OVERLEAF_LDAP_CONTACTS_FILTER.
- Anger den egenskap hos användarobjektet som ersätter platshållaren ‘{{userProperty}}’ i
OVERLEAF_LDAP_CONTACTS_NON_LDAP_VALUE- Anger värdet för
OVERLEAF_LDAP_CONTACTS_PROPERTYom sökningen initieras av en användare som inte är LDAP-användare. Om variabeln inte är definierad matchar det resulterande filtret ingenting. Värdet*kan användas som jokertecken.
- Anger värdet för
Exempel
Exempel
gid läses in i den aktuella LDAP-användarens kontakter. Användare som inte är LDAP-användare får alla LDAP-användare med UNIX-gid=1000 i sina kontakter.Exempel på variables.env-fil
Exempel på variables.env-fil
Steg för steg: goauthentik
Här går vi igenom en konfiguration som har testats mot goauthentik. Exemplen använder Base DNdc=example,dc=com; ersätt det med ditt eget.
Skapa ett bind-konto
ldapservice, och klicka på Create:
Authentik: skapa bind-kontot
OVERLEAF_LDAP_BIND_CREDENTIALS:
Authentik: ange lösenordet för bind-kontot (testinstans)
19 i …/#/identity/users/19. Du behöver det i steg 3.Skapa leverantören och applikationen
overleaf-ldap, och klicka på Next:
Authentik: applikationens namn och slug

Authentik: välj LDAP-leverantören

Authentik: bind- och sökläge för LDAP-leverantören
default-authentication-flow och Base DN till ditt Base DN, till exempel dc=example,dc=com:
Authentik: bind-flöde och Base DN för LDAP-leverantören
Låt bind-kontot söka i katalogen
ak-managed-role--user-<number>, och aktiverar sedan Search full LDAP directory:
Authentik: ge bind-kontot sökbehörighet (testinstans)

Authentik: behörigheter för en LDAP-leverantör (testinstans)
Kör LDAP-outposten

Authentik: en körande LDAP-outpost (testinstans)
Fyll i DN:erna

Authentik: översikt över en LDAP-leverantör (testinstans)
- Bind DN visar kontot du är inloggad med. Använd i stället bind-kontot från steg 1:
cn=ldapservice,ou=users,<Base DN>. - Search base visar Base DN. Använd
ou=users,<Base DN>.
Kontrollera sökningen
dn::dn: alls betyder oftast att behörigheten från steg 3 saknas.Mappa administratörerna (valfritt)
memberOf, som DN:er under ou=groups. Så här gör du medlemmarna i Authentik-gruppen Admins till administratörer i Overleaf:Testad variables.env för goauthentik
Testad variables.env för goauthentik

