Co je LDAP
LDAP je ověřovací protokol používaný k externímu ověřování identity. Overleaf Server Pro poskytuje ve webovém rozhraní samostatný přihlašovací formulář LDAP, oddělený od standardní metody ověřování. Když uživatel odešle své uživatelské jméno a heslo LDAP, backend Overleaf ověří přihlašovací údaje vůči nakonfigurovanému serveru LDAP, napříkladldap://ldap:10389.

Příklad LDAP v Server Pro
Konfigurace
Interně používá LDAP v Overleaf knihovnu passport-ldapauth. Většina těchto konfiguračních voleb se předává do konfiguračního objektuserver, který slouží ke konfiguraci passport-ldapauth. Pokud máte s konfigurací LDAP potíže, vyplatí se přečíst si README knihovny passport-ldapauth, abyste získali představu o tom, jakou konfiguraci očekává.
K povolení modulu ověřování LDAP je vyžadována proměnná prostředí EXTERNAL_AUTH. Tato proměnná prostředí určuje, které externí metody ověřování jsou aktivovány. Její hodnotou je seznam. Pokud seznam obsahuje ldap, bude aktivováno ověřování LDAP.
Například: EXTERNAL_AUTH=ldap saml
Na rozdíl od Overleaf CEP omezujeme v naší edici ayaka-notes ověřování LDAP na čistě ověřovací metodu, která je dostupná na adrese http://your-overleaf.com/ldap/login.
Při použití metod ověřování LDAP zadá uživatel do přihlašovacího formuláře username a password a provede se následující:
- V adresáři LDAP se vyhledá uživatel LDAP pomocí filtru definovaného v
OVERLEAF_LDAP_SEARCH_FILTERa ověří se. - Pokud je ověření úspěšné, v databázi uživatelů Overleaf se vyhledá uživatel, jehož primární e-mailová adresa odpovídá e-mailové adrese ověřeného uživatele LDAP:
- Pokud se odpovídající uživatel najde, pole
hashedPasswordtohoto uživatele se smaže (pokud existuje). Tím se zajistí, že se uživatel bude moci v budoucnu přihlašovat pouze prostřednictvím ověřování LDAP. - Pokud se odpovídající uživatel nenajde, vytvoří se nový uživatel Overleaf s e-mailem, křestním jménem a příjmením získanými ze serveru LDAP.
- Pokud se odpovídající uživatel najde, pole
Proměnné prostředí
OVERLEAF_LDAP_URL(povinné)- URL serveru LDAP.
- Příklad:
ldaps://ldap.example.com:636(LDAP přes SSL) - Příklad:
ldap://ldap.example.com:389(nešifrované nebo STARTTLS, pokud je nakonfigurováno).
- Příklad:
- URL serveru LDAP.
OVERLEAF_LDAP_IDENTITY_SERVICE_NAME- Zobrazovaný název služby identit LDAP, používaný na přihlašovací stránce.
- Výchozí hodnota je
Log in with LDAP Provider.
OVERLEAF_LDAP_EMAIL_ATT- Atribut e-mailu vracený serverem LDAP, výchozí
mail. Každý uživatel LDAP musí mít alespoň jednu e-mailovou adresu. Pokud je zadáno více adres, použije se pouze první z nich.
- Atribut e-mailu vracený serverem LDAP, výchozí
OVERLEAF_LDAP_FIRST_NAME_ATT- Název vlastnosti obsahující křestní jméno uživatele, které se používá v aplikaci, obvykle
givenName.
- Název vlastnosti obsahující křestní jméno uživatele, které se používá v aplikaci, obvykle
OVERLEAF_LDAP_LAST_NAME_ATT- Název vlastnosti obsahující příjmení uživatele, které se používá v aplikaci, obvykle
sn.
- Název vlastnosti obsahující příjmení uživatele, které se používá v aplikaci, obvykle
OVERLEAF_LDAP_NAME_ATT- Název vlastnosti obsahující celé jméno uživatele, obvykle
cn. Pokud některá z předchozích dvou proměnných není definována, křestní jméno a/nebo příjmení uživatele se získá z této proměnné. V opačném případě se nepoužívá.
- Název vlastnosti obsahující celé jméno uživatele, obvykle
OVERLEAF_LDAP_PLACEHOLDER- Zástupný text pro přihlašovací formulář, výchozí hodnota je
Username.
- Zástupný text pro přihlašovací formulář, výchozí hodnota je
OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN- Pokud je nastaveno na
true, aktualizují se při přihlášení polefirst_namealast_nameuživatele LDAP a pro uživatele LDAP se vypne formulář s údaji o uživateli na stránce/user/settings. V opačném případě se údaje načtou pouze při prvním přihlášení.
- Pokud je nastaveno na
OVERLEAF_LDAP_BIND_DN- Rozlišující jméno (DN) uživatele LDAP, který se má použít pro připojení k LDAP (tento uživatel by měl mít možnost vyhledávat/vypisovat účty na serveru LDAP), např.
cn=ldap_reader,dc=example,dc=com. Pokud není definováno, použije se anonymní vazba (bind).
- Rozlišující jméno (DN) uživatele LDAP, který se má použít pro připojení k LDAP (tento uživatel by měl mít možnost vyhledávat/vypisovat účty na serveru LDAP), např.
OVERLEAF_LDAP_BIND_CREDENTIALS- Heslo pro
OVERLEAF_LDAP_BIND_DN.
- Heslo pro
OVERLEAF_LDAP_BIND_PROPERTY- Vlastnost uživatele, vůči níž se provádí vazba klienta, výchozí hodnota je
dn.
- Vlastnost uživatele, vůči níž se provádí vazba klienta, výchozí hodnota je
OVERLEAF_LDAP_SEARCH_BASE(povinné)- Základní DN, od kterého se uživatelé vyhledávají. Např.
ou=people,dc=example,dc=com.
- Základní DN, od kterého se uživatelé vyhledávají. Např.
OVERLEAF_LDAP_SEARCH_FILTER- Vyhledávací filtr LDAP, pomocí kterého se uživatel vyhledá. Použijte literál ‘{{username}}’, aby se do vyhledávání LDAP dosadilo zadané uživatelské jméno.
- Příklad:
(|(uid={{username}})(mail={{username}}))(uživatel se může přihlásit e-mailem nebo přihlašovacím jménem). - Příklad:
(sAMAccountName={{username}})(Active Directory).
- Příklad:
- Vyhledávací filtr LDAP, pomocí kterého se uživatel vyhledá. Použijte literál ‘{{username}}’, aby se do vyhledávání LDAP dosadilo zadané uživatelské jméno.
OVERLEAF_LDAP_SEARCH_SCOPE- Rozsah vyhledávání může být
base,onenebosub(výchozí).
- Rozsah vyhledávání může být
OVERLEAF_LDAP_SEARCH_ATTRIBUTES- Pole JSON s atributy, které se mají načíst ze serveru LDAP, např.
["uid", "mail", "givenName", "sn"]. Ve výchozím nastavení se načítají všechny atributy.
- Pole JSON s atributy, které se mají načíst ze serveru LDAP, např.
OVERLEAF_LDAP_STARTTLS- Pokud je
true, použije se LDAP přes TLS.
- Pokud je
OVERLEAF_LDAP_TLS_OPTS_CA_PATH- Cesta k souboru s certifikátem CA, který se používá k ověření certifikátu SSL/TLS serveru LDAP. Pokud je certifikátů více, může jít o pole JSON s cestami k certifikátům. Soubory musí být přístupné z kontejneru Dockeru.
- Příklad (jeden certifikát):
/var/lib/overleaf/certs/ldap_ca_cert.pem - Příklad (více certifikátů):
["/var/lib/overleaf/certs/ldap_ca_cert1.pem", "/var/lib/overleaf/certs/ldap_ca_cert2.pem"]
- Příklad (jeden certifikát):
- Cesta k souboru s certifikátem CA, který se používá k ověření certifikátu SSL/TLS serveru LDAP. Pokud je certifikátů více, může jít o pole JSON s cestami k certifikátům. Soubory musí být přístupné z kontejneru Dockeru.
OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTH- Pokud je
true, certifikát serveru se ověřuje vůči seznamu zadaných CA.
- Pokud je
OVERLEAF_LDAP_CACHE- Pokud je
true, bude se najednou cachovat až 100 přihlašovacích údajů po dobu 5 minut.
- Pokud je
OVERLEAF_LDAP_TIMEOUT- Jak dlouho má klient nechat operace běžet, než vyprší časový limit, v ms (výchozí: Infinity).
OVERLEAF_LDAP_CONNECT_TIMEOUT- Jak dlouho má klient čekat, než vyprší časový limit TCP spojení, v ms (výchozí: výchozí hodnota OS).
OVERLEAF_LDAP_IS_ADMIN_ATTaOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE- Pokud jsou nastaveny obě proměnné prostředí, proces přihlášení nastaví
user.isAdmin = true, jestliže profil LDAP obsahuje atribut určený proměnnouOVERLEAF_LDAP_IS_ADMIN_ATTa jeho hodnota buď odpovídáOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE, nebo je to pole obsahujícíOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE; v opačném případě seuser.isAdminnastaví nafalse. Pokud některá z těchto proměnných není nastavena, nastaví se stav správce natruepouze při vytváření účtu správce v Launchpadu.
- Pokud jsou nastaveny obě proměnné prostředí, proces přihlášení nastaví
OVERLEAF_LDAP_CONTACTS_FILTER- Filtr používaný k vyhledání uživatelů na serveru LDAP, kteří se mají načíst do kontaktů. Zástupný symbol ‘{{userProperty}}’ ve filtru se nahradí hodnotou vlastnosti určené proměnnou
OVERLEAF_LDAP_CONTACTS_PROPERTYu uživatele LDAP, který vyhledávání spustil. Pokud není definován, nenačítají se do kontaktů ze serveru LDAP žádní uživatelé.
- Filtr používaný k vyhledání uživatelů na serveru LDAP, kteří se mají načíst do kontaktů. Zástupný symbol ‘{{userProperty}}’ ve filtru se nahradí hodnotou vlastnosti určené proměnnou
OVERLEAF_LDAP_CONTACTS_SEARCH_BASE- Určuje základní DN, od kterého se začnou kontakty vyhledávat. Výchozí hodnota je
OVERLEAF_LDAP_SEARCH_BASE.
- Určuje základní DN, od kterého se začnou kontakty vyhledávat. Výchozí hodnota je
OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE- Rozsah vyhledávání může být
base,onenebosub(výchozí).
- Rozsah vyhledávání může být
OVERLEAF_LDAP_CONTACTS_PROPERTY- Určuje vlastnost objektu uživatele, která nahradí zástupný symbol ‘{{userProperty}}’ v
OVERLEAF_LDAP_CONTACTS_FILTER.
- Určuje vlastnost objektu uživatele, která nahradí zástupný symbol ‘{{userProperty}}’ v
OVERLEAF_LDAP_CONTACTS_NON_LDAP_VALUE- Určuje hodnotu
OVERLEAF_LDAP_CONTACTS_PROPERTYpro případ, že vyhledávání spustí uživatel, který není uživatelem LDAP. Pokud tato proměnná není definována, výsledný filtr nebude odpovídat ničemu. Jako zástupný znak lze použít hodnotu*.
- Určuje hodnotu
Příklad
Příklad
gid. Uživatelé, kteří nejsou uživateli LDAP, budou mít v kontaktech všechny uživatele LDAP s UNIXovým gid=1000.Ukázkový soubor variables.env
Ukázkový soubor variables.env
Postup krok za krokem: goauthentik
Tento návod popisuje nastavení otestované s goauthentik. Příklady používají Base DNdc=example,dc=com; nahraďte jej svým.
Vytvořte účet pro bind
ldapservice, a klikněte na Create:
Authentik: vytvoření účtu pro bind
OVERLEAF_LDAP_BIND_CREDENTIALS:
Authentik: nastavení hesla účtu pro bind (testovací instance)
19 v …/#/identity/users/19. Budete ho potřebovat v kroku 3.Vytvořte poskytovatele a aplikaci
overleaf-ldap, a klikněte na Next:
Authentik: název a slug aplikace

Authentik: výběr poskytovatele LDAP

Authentik: režim bind a režim vyhledávání poskytovatele LDAP
default-authentication-flow a Base DN na váš Base DN, například dc=example,dc=com:
Authentik: bind flow a Base DN poskytovatele LDAP
Povolte účtu pro bind prohledávat adresář
ak-managed-role--user-<number> a poté zapněte Search full LDAP directory:
Authentik: udělení oprávnění k vyhledávání účtu pro bind (testovací instance)

Authentik: oprávnění poskytovatele LDAP (testovací instance)
Spusťte LDAP outpost

Authentik: běžící LDAP outpost (testovací instance)
Vyplňte DN

Authentik: přehled poskytovatele LDAP (testovací instance)
- Bind DN zobrazuje účet, se kterým jste přihlášeni. Místo něj použijte účet pro bind z kroku 1:
cn=ldapservice,ou=users,<Base DN>. - Search base zobrazuje Base DN. Použijte
ou=users,<Base DN>.
Ověřte vyhledávání
dn::dn:, obvykle chybí oprávnění z kroku 3.Namapujte administrátory (volitelné)
memberOf jako DN pod ou=groups. Chcete-li, aby se členové skupiny Authentiku Admins stali administrátory Overleafu:Otestovaný soubor variables.env pro goauthentik
Otestovaný soubor variables.env pro goauthentik

