en
Jazyk
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI překlad
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Ověření LDAP

LDAP

Jak nakonfigurovat ověřování LDAP

O programu
Deklarace režimu ověřování LDAP
Vytváření uživatelů za běhu
Skupinové přihlášení pomocí LDAP
Řešení problémů
rohové situace

 

O programu

LDAP (Lightweight Directory Access Protocol) je softwarový protokol, který umožňuje komukoli lokalizovat organizace, jednotlivce a další zdroje, jako jsou soubory a zařízení v síti, ať už na veřejném internetu nebo na firemním intranetu. LDAP je „lehká“ (menší část kódu) verze Directory Access Protocol (DAP), která je součástí X.500, standardu pro adresářové služby v síti. LDAP je lehčí, protože ve své původní verzi neobsahoval funkce zabezpečení. Easy Redmine nativně podporuje ověřování LDAP pomocí jednoho nebo více adresářů LDAP. Mezi podporované typy adresářových služeb patří Active Directory, OpenLDAP, eDirectory, Sun Java System Directory Server a další kompatibilní adresářové služby.

Adresář LDAP je organizován v jednoduché hierarchii „stromů“ sestávající z následujících úrovní:

  1. Kořenový adresář (počáteční místo nebo zdroj stromu), na který se větví
  2. Země, z nichž se každá rozvětvuje
  3. Organizace, které se rozvětvují na
  4. Organizační jednotky (divize, oddělení atd.), Které se rozvětvují na (včetně záznamu pro)
  5. Jednotlivci (což zahrnuje lidi, soubory a sdílené zdroje, například tiskárny)

 

Deklarace režimu ověřování LDAP

Přejděte do části Správa a v nabídce klikněte na „Ověření LDAP“. Zde najdete seznam všech existujících režimů ověřování LDAP včetně možností otestovat nebo odstranit všechny. Chcete -li vytvořit nový, klikněte na zelené tlačítko „Nový režim ověřování“ v pravém horním rohu.

Poskytovatel služeb LDAP ke konfiguraci připojení k adresářovému serveru používá adresu URL. Chcete -li vygenerovat adresu URL připojení LDAP, je třeba zadat následující pole:

  • Jméno: Libovolný název adresáře.
  • Host: Název hostitele LDAP (testovací server).
  • Port: Port LDAP (výchozí je 389).
  • PÁSY: Toto zaškrtněte, pokud chcete nebo potřebujete použít LDAPS pro přístup do adresáře.
  • Účet: Zadejte uživatelské jméno, které má přístup pro čtení k LDAP, jinak ponechte toto pole prázdné, pokud lze váš LDAP číst anonymně (servery Active Directory obecně nepovolují anonymní přístup).
  • heslo: Heslo k účtu.
  • Základní DN: DN nejvyšší úrovně vašeho adresářového stromu LDAP (příklad: dc = příklad, dc = com).
  • LDAP filtr: Filtry lze použít k omezení počtu uživatelů nebo skupin, kterým je povolen přístup k aplikaci. Filtr v podstatě omezuje, ze které části stromu LDAP se aplikace synchronizuje. Filtr může a měl by být zapsán jak pro uživatele, tak pro členství ve skupině. Tím je zajištěno, že vaši aplikaci nezaplavíte uživateli a skupinami, které nepotřebují přístup.
     

    Ukázkové filtry

    (Varování) Tyto filtry jsou napsány pro Active Directory. Abyste je mohli použít pro něco, jako je OpenLDAP, je třeba změnit atributy.

    To bude synchronizovat pouze uživatele ve skupině 'CaptainPlanet' - to by mělo být použito na Objektový filtr uživatele:

    (&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))

    A toto vyhledá uživatele, kteří jsou členy této skupiny, buď přímo, nebo prostřednictvím vnoření:

    (&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))

    (informace) Důležité pro Active Directory memberOf: 1.2.840.113556.1.4.1941 pokud chcete najít vnořené skupiny (nenahrazujte číselný řetězec) uvnitř skupiny CaptainPlanet.

    Vyhledá uživatele, kteří jsou členy některé nebo všech 4 skupin (oheň, vítr, voda, srdce)

    (&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=cn=fire,ou=users,dc=company,dc=com)(memberOf=cn=wind,ou=users,dc=company,dc=com)(memberOf=cn=water,ou=users,dc=company,dc=com)(memberOf=cn=heart,ou=users,dc=company,dc=com)))
  • Časový limit (v sekundách): Pokud poskytovatel LDAP nedostane odpověď LDAP ve stanoveném období, pokus o čtení se přeruší. Celé číslo by mělo být větší než nula. Celé číslo menší nebo rovné nule znamená, že není zadán žádný časový limit pro čtení, což je ekvivalentní čekání na odpověď nekonečně, dokud není přijata, což je výchozí pro původní chování. Pokud tato vlastnost není zadána, výchozí je počkat na odpověď, dokud nebude přijata.
  • Vytváření uživatelů za běhu: Zaškrtnutím této položky bude každému uživateli LDAP automaticky vytvořen jeho účet Easy Redmine při prvním přihlášení do Easy Redmine. V opačném případě budete muset ručně vytvořit uživatele v Easy Redmine pro každého uživatele LDAP, který se chce přihlásit.

Atributy (Příklady):

  • Přihlašovací atribut: Přihlašovací jméno, pod kterým se uživatel přihlašuje a ověřuje.
  • Atribut křestního jména: Atribut pro křestní jméno.
  • Příjmení: Atribut pro příjmení.
  • Atribut e -mailu: Atribut pro e -mailovou adresu.

Uživatelé Easy Redmine by nyní měli mít možnost ověřovat pomocí svého uživatelského jména a hesla LDAP, pokud jsou jejich účty nastaveny tak, aby pro ověřování používaly LDAP (při úpravě profilu uživatele zkontrolujte nastavení „Režim ověřování“).

Chcete-li to otestovat, vytvořte uživatele Easy Redmine s přihlášením, které odpovídá jeho účtu LDAP (normálně vám Easy Redmine poradí vyhledáním dat LDAP), vyberte nově vytvořený LDAP v rozevíracím seznamu Režim ověřování (toto pole je viditelné na obrazovce účtu pouze v případě, že je deklarován LDAP) a ponechte jeho heslo prázdné. Zkuste se přihlásit do Easy Redmine pomocí uživatelského jména a hesla LDAP.

 

Vytváření uživatelů za běhu

Kontrolou vytváření uživatelů za běhu, každému uživateli LDAP bude automaticky vytvořen jeho účet Easy Redmine při prvním přihlášení do Easy Redmine.
K tomu musíte zadat název atributu LDAP (jméno, příjmení, e -mail), který bude použit k vytvoření jejich účtů Easy Redmine.

Zde je typický příklad použití služby Active Directory:

Jméno = Můj adresář Host = host.domain.org Port = 389 LDAPS = žádný účet = MyDomain \ UserName (nebo UserName@MyDomain v závislosti na serveru AD) Heslo = Základní DN = CN = uživatelé, DC = hostitel, DC = doména, DC = org Vytvoření uživatele za běhu = ano Atributy Přihlášení = sAMAccountName Jméno = zadané Jméno Příjmení = sN E-mail = pošta

Zde je další příklad služby Active Directory s rozdělovaným intranetem:

Název = Jen popis stránky režimů ověřování Host = DepartmentName.OrganizationName.local Port = 389 LDAPS = no Account = DepartmentName \ UserName (or UserName@MyDomain depending on AD server or bind DN uid = Manager, cn = users, dc = MyDomain, dc = com) Heslo = Base DN = DC = DepartmentName, DC = OrganizationName, DC = local On-the-fly user creation = yes Attributes Login = sAMAccountName Firstname = givenName Lastname = sN Email = mail

Názvy atributů LDAP jsou citlivý na velká písmena.

Účet s dynamickou vazbou

Výše uvedené nastavení by vyžadovalo speciální účet na adresářovém serveru, který Easy Redmine používá k předběžnému ověření. Je možné použít klíčové slovo $ přihlášení v poli účtu, které by pak bylo nahrazeno aktuálním přihlášením. Heslo může v tomto případě zůstat prázdné, například:

Účet: $login@COMPANY.DOMAIN.NAME

or

Účet: společnost \ $ přihlášení

Základní varianty DN

Ačkoli je docela možné, že výše uvedené základní DN je standardní pro Active Directory, Active Directory na webu mého zaměstnavatele nepoužívá kontejner Users pro standardní uživatele, takže mě tyto pokyny poslaly dlouhou a bolestivou cestou. Doporučuji také zkusit pouze „DC = hostitel, DC = doména, DC = org“, pokud se přihlášení nezdařilo s nastavením tam.

 

Skupinové přihlášení LDAP

Pokud chcete pouze povolit přihlášení uživatelům, kteří patří do konkrétní skupiny LDAP, měli byste postupovat podle následujících pokynů. Jsou založeny na OpenLDAP LDAP serveru a Easy Redmine.

1. (OpenLDAP server) Povolit překrytí memberof

1.1. Vytvořit soubor:

vim ~/memberof_add.ldif

S níže uvedeným obsahem:

dn: cn = modul, cn = konfigurace
objectClass: olcModuleList
cn: modul
olcModulePath:/usr/lib/ldap
olcModuleLoad: memberof

1.2. Vytvořit soubor:

vim ~/memberof_config.ldif

S níže uvedeným obsahem:

dn: olcOverlay = memberof, olcDatabase = {1} hdb, cn = config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: horní
olcOverlay: memberof
olcMemberOfDangling: ignorovat
olcMemberOfRefInt: PRAVDA
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: člen
olcMemberOfMemberOfAD: memberOf

1.3. Naložte je. Bude to záviset na vaší konfiguraci OpenLDAP, takže navrhneme několik možností:

sudo ldapadd -c -Y EXTERNAL -H ldapi: /// -f memberof_add.ldif
sudo ldapadd -c -Y EXTERNAL -H ldapi: /// -f memberof_config.ldif

nebo:

ldapadd -D cn = admin, cn = config -w "heslo" -H ldapi: /// -f memberof_add.ldif
ldapadd -D cn = admin, cn = config -w "heslo" -H ldapi: /// -f memberof_config.ldif

Pokud používáte dynamický konfigurační modul runtime (slapd-config), restart NENÍ nutný.

1.4. (Volitelné) Otestujte:

ldapsearch -D cn = admin, dc = příklad, dc = com -x -W -b 'dc = příklad, dc = com' -H 'ldap: //127.0.0.1: 389/' '(& (objectClass = posixAccount ) (memberOf = cn = ldapeasyredmine, ou = groups, dc = example, dc = com)) '

2. (Server OpenLDAP) Vytvořte skupinu. V tomto případě je uživatel „ldap_user_1“ a skupina je „ldapeasyredmine“:

dn: cn = ldapeasyredmine, ou = skupiny, dc = příklad, dc = com
cn: ldapeasyredmine
popis: Zaměstnanci se mohou přihlásit do systému prodeje lístků Easy Redmine
člen: cn = ldap_user_1, ou = lidé, dc = příklad, dc = com
objectclass: groupOfNames
třída objektu: nahoře

Upravte „dn“ a „cn“ s, aby odpovídaly vaší struktuře DIT

3. (Easy Redmine) Upravte režim ověřování LDAP. V mém případě je „ldap_user_1“ třída objektu „posixAccount“:

Základní DN: dc = příklad, dc = com
Filtr: (& (objectClass = posixAccount) (memberOf = cn = ldapeasyredmine, ou = groups, dc = example, dc = com))

 

Řešení problémů

Pokud chcete používat vytváření uživatelů za běhu, ujistěte se, že aplikace Easy Redmine může z vašeho LDAP načíst všechny požadované informace k vytvoření platného uživatele.
Vytvoření uživatele za běhu například nebude fungovat, pokud ve svém adresáři nemáte platné e-mailové adresy (při pokusu o přihlášení se zobrazí chybová zpráva „Neplatné uživatelské jméno/heslo“).
(To neplatí pro novější verze Easy Redmine; dialog pro vytvoření uživatele je naplněn vším, co může najít ze serveru LDAP, a žádá nového uživatele, aby vyplnil zbytek.)

Také se ujistěte, že nemáte žádné vlastní pole označené jako požadováno pro uživatelské účty. Tato vlastní pole by zabránila vytváření uživatelských účtů za běhu.

Chyby v přihlašovacím systému nejsou v protokolech Easy Redmine hlášeny se skutečnými informacemi, což ztěžuje odstraňování problémů. Většinu informací, které potřebujete, však můžete najít pomocí Wireshark mezi hostitelem Easy Redmine a serverem LDAP. Všimněte si toho, že to funguje pouze v případě, že máte oprávnění ke čtení síťového provozu mezi těmito dvěma hostiteli.

Můžete také použít nástroj „ldapsearch“ k testování správnosti nastavení. Přihlaste se k počítači Linux, který je hostitelem vašeho Easy Redmine (a případně nainstalujte ldaputils) a spusťte toto:

ldapsearch -x -b  "dc=example,dc=com" -H ldap://hostname/ -D "DOMAIN\USER" -w mypassword [searchterm]

Pokud bude úspěšný, obdržíte seznam obsahu AD, který odpovídá vašemu vyhledávacímu dotazu. Poté budete vědět, jak vyplnit pole v konfiguraci LDAP v Easy Redmine.

Alternativní způsoby ověření funkčnosti

  • Zkuste odebrat filtry LDAP, které v případě nesprávného nastavení mohou odstranit uživatele, které chcete najít.
  • Vedle „Přihlašovacího atributu“ je ikona knihy. Pokud na něj kliknete a LDAP je nastaven správně, „obvyklé atributy“ jsou automaticky předvyplněny skutečným serverem LDAP. Místo textových polí se zobrazí zaškrtávací políčka pro případ, že uživatel chce změnit nastavení. Ve většině případů to uživatel nemusí vůbec vyplňovat. Pokud to funguje, pak bude pravděpodobně fungovat vše ostatní.
  • V případě problémů s připojením můžete v seznamu serverů LDAP použít tlačítko „Testovat“. Pozor, toto slouží pouze k testování, zda se můžete připojit k LDAP. Běžným problémem je, že správci nevyplní uživatele systému LDAP, i když jsou nastavení LDAP stále chráněna. V tomto případě test proběhne v pořádku, protože připojení funguje, ale nelze přidat žádné uživatele, protože LDAP žádné „nevidí“.
  • K testování, zda LDAP opravdu funguje, lze použít také číslo „Dostupné uživatele“ - pokud je jeho hodnota 0, LDAP nevrací žádná data a je pravděpodobně nesprávně nastaven. Pokud existuje číslo, můžete kliknutím na něj rozbalit a zjistit, co zobrazuje LDAP (a podle toho upravit filtry).

Účet hodnotový formát

Uživatelské jméno pro pověření vazby může být nutné zadat spíše jako DN než jako UPN (user@domain.com) nebo jako domain \ user, jak ukazuje tento komentář v zdroj: trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap.rb:

  # Jak je popsáno v #bind, většina serverů LDAP vyžaduje, abyste zadali úplné DN # jako přihlašovací údaje spolu s autentizátorem, jako je heslo.

Proto uživatel s MyDomain \ MyUserName nebo MyUserName@MyDomain.com uživatelské jméno může zadat pouze MyUserName jako přihlašovací jméno Easy Redmine.

Pomalé ověřování LDAP

Pokud je ověřování LDAP pomalé a máte cluster AD, zkuste zadat do pole Host jeden z fyzických serverů AD. Může to pomoci.

OpenDS

Pokud používáte server OpenDS, můžete mít problémy s ovládacím prvkem požadavku „Stránkované výsledky“ odeslaným s počátečním dotazem, který hledá uživatele podle zadaného atributu přihlášení. Tato kontrola požadavků 1.2.840.113556.1.4.319 není ve výchozím nastavení povolena pro anonymní uživatele, což brání Easy Redmine najít uživatele v adresáři ještě před tím, než dojde k navázání.

Přidejte globální ACI takto

./dsconfig -h SERVER_IP -p 4444 -D cn = "Správce adresářů" -w PASSWORD -n set -access -control -handler -prop --trustAll --add global -aci: \ (targetcontrol = \ "1.2.840.113556.1.4.319 .3.0 \ "\) \ \ (verze \ 1.2.840.113556.1.4.319 \; \ acl \ \" Anonymní \ ovládání \ přístup \ k \ XNUMX \ "\; \ allow \ \ (číst \) \ userdn = \ "ldap: /// kdokoli \" \; \)

Poznámka: Zadejte příkaz na jednom řádku, použijte escapování přesně podle pokynů (\ za "acl" má být "\" pro mezeru).

Někteří uživatelé se nemohou přihlásit

Problém: Konkrétní organizační jednotka uživatelů se nemůže přihlásit (neplatný uživatel nebo heslo), zatímco všichni ostatní ano. Uživatelé jsou na vzdáleném webu, ale uživatelé v jiných organizačních jednotkách na stejném webu tuto chybu nedostanou.

Řešení: Problém pravděpodobně nesouvisí s nesprávným nastavením, ale spíše s problémem služby Active Directory (AD). Uživatelé, kteří se nemohli připojit, měli v poli Vlastnosti uživatele AD (správa AD) pole „Přihlášení do“ nastaveno na určitý počítač. Po změně na „Přihlášení odkudkoli“ by to mělo fungovat. Přesněji řečeno, toto pole musí být nastaveno na: Uživatel AD -> Vlastnosti -> Účet -> Přihlášení odkudkoli.

Problémy s přihlášením při používání LDAPS bez platného certifikátu

Při používání LDAPS bez platného certifikátu můžete narazit na problémy s přihlášením. V Redmine 4 je certifikát LDAPS vždy ověřen. S neplatným certifikátem se uživatelé nebudou moci přihlásit. Samozřejmě, správným a dlouhodobým řešením je použít platný certifikát. Ale dokud toho nedosáhnete, dočasným řešením je přejít na Administraci >> Ověřování LDAP >> Upravit příslušný režim ověřování.

Změňte nastavení na LDAPS (bez kontroly certifikátu).

S řešením Easy Redmine Server jej můžete měnit ve velkém z konzoly kolejnic
rails r "AuthSource.update_all (verify_peer: false)" -e výroba

nebo prostřednictvím SQL
UPDATE auth_sources nastavit authentication_peer = 0;

 

rohové situace

  • Při automatickém importu/vytváření uživatelů z LDAP je upřednostňováno výchozí nastavení typu uživatele zadané ve formuláři pro vytvoření uživatele před výchozím nastavením typu uživatele zadaným v LDAP. Jakmile je uživatel vytvořen, nelze toto nastavení později změnit (pokud nevytvoříte nový LDAP).

Vyzkoušejte Easy Redmine ve 30denní bezplatné zkušební verzi

Plné funkce, chráněné SSL, denní zálohy ve vaší geolokaci