en
Език
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI превод
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

LDAP удостоверяване

LDAP

Как да конфигурирате LDAP удостоверяване

Overview
Деклариране на LDAP режим за удостоверяване
В движение, създаване на потребител
Групово LDAP вход
Отстраняване на проблеми
Ъглов ситуации

 

Overview

LDAP (Lightweight Directory Access Protocol) е софтуерен протокол, който позволява на всеки да намира организации, лица и други ресурси, като файлове и устройства в мрежа, независимо дали в публичния Интернет или в корпоративната интранет. LDAP е "лека" (по -малко количество код) версия на Протокола за достъп до директория (DAP), която е част от X.500, стандарт за услуги за директории в мрежа. LDAP е по -лек, защото в първоначалната си версия не включва функции за защита. Easy Redmine първоначално поддържа LDAP удостоверяване, използвайки една или няколко LDAP директории. Поддържаните типове услуги за директории включват Active Directory, OpenLDAP, eDirectory, Sun Java System Directory Server, както и други съвместими услуги за директории.

LDAP директория е организирана в проста "дърво" йерархия, състояща се от следните нива:

  1. Коренната директория (началното място или източникът на дървото), към която се разклонява
  2. Държави, всяка от които се разклонява
  3. Организации, които се разклоняват
  4. Организационни звена (отдели, отдели и т.н.), към които се разклонява (включва запис за)
  5. Физически лица (което включва хора, файлове и споделени ресурси като принтери)

 

Деклариране на LDAP режим за удостоверяване

Отидете на Администрация и кликнете върху „LDAP удостоверяване“ в менюто. Тук ще намерите списъка на всички съществуващи режими за удостоверяване на LDAP, включително опциите за тестване или изтриване на всеки. За да създадете нов, кликнете върху зеления бутон "Нов режим на удостоверяване" в горния десен ъгъл.

Доставчикът на LDAP услуги използва URL, за да конфигурира връзката към сървъра на директория. За генериране на URL адрес на LDAP връзка трябва да се посочат следните полета:

  • Име: Произволно име за директорията.
  • Водещ: Името на хоста на LDAP (тестов сървър).
  • Порт: LDAP порт (по подразбиране е 389).
  • LDAPS: Проверете това, ако искате или трябва да използвате LDAPS за достъп до директорията.
  • Сметка: Въведете потребителско име, което има достъп за четене до LDAP, в противен случай оставете това поле празно, ако вашият LDAP може да се чете анонимно (сървърите на Active Directory обикновено не позволяват анонимен достъп).
  • парола: Парола за акаунта.
  • База DN: DN на горното ниво на вашето дърво на директория LDAP (пример: dc = пример, dc = com).
  • LDAP филтър: Филтрите могат да се използват за ограничаване на броя потребители или групи, на които е разрешен достъп до приложение. По същество филтърът ограничава от коя част от LDAP дървото приложението се синхронизира. Филтър може и трябва да бъде написан за членство както на потребител, така и на група. Това гарантира, че не заливате приложението си с потребители и групи, които не се нуждаят от достъп.
     

    Примерни филтри

    (внимание) Тези филтри са написани за Active Directory. За да ги използвате за нещо като OpenLDAP, атрибутите ще трябва да бъдат променени.

    Това ще синхронизира само потребителите в групата „CaptainPlanet“ - това трябва да се приложи към Потребителски филтър за обекти:

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

    И това ще търси потребители, които са член на тази група, директно или чрез влагане:

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

    (Информация) Важно за Active Directory да има memberOf: 1.2.840.113556.1.4.1941 ако искате да намерите вложени групи (не замествайте числовия низ) вътре в групата CaptainPlanet.

    Това ще търси потребители, които са член на някоя или всички групи 4 (огън, вятър, вода, сърце)

    (&(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)))
  • Време за изчакване (в секунди): Ако доставчикът на LDAP не получи LDAP отговор в указания период, той прекратява опита за четене. Цялото число трябва да е по-голямо от нула. Цяло число по-малко или равно на нула означава, че не е посочено времето за четене, което е еквивалентно на чакането на отговора безкрайно, докато не бъде получено, което е по подразбиране към първоначалното поведение. Ако това свойство не е посочено, по подразбиране е да изчакате отговора, докато не бъде получен.
  • Създаване на потребители в движение: Като проверите това, всеки потребител на LDAP ще има своя акаунт в Easy Redmine автоматично създаден при първото влизане в Easy Redmine. В противен случай ще трябва да създадете ръчно потребителя в Easy Redmine за всеки потребител на LDAP, който иска да влезе.

Атрибути (примери):

  • Атрибут за вход: Името за вход, под което потребителят влиза и се удостоверява.
  • Атрибут на име: Атрибут за първо име.
  • Атрибут на фамилното име: Атрибут за фамилно име.
  • Атрибут на имейл: Атрибут за имейл адрес.

Потребителите на Easy Redmine вече трябва да могат да се удостоверяват, като използват потребителското си име и парола за LDAP, ако техните акаунти са настроени да използват LDAP за удостоверяване (проверете настройката „Режим на удостоверяване“, когато редактирате потребителския профил).

За да проверите това, създайте потребител на Easy Redmine с вход, който съответства на неговия LDAP акаунт (обикновено Easy Redmine ще ви посъветва, като потърсите LDAP данните), изберете новосъздадения LDAP в падащия списък Authentication mode (това поле е видим на екрана на акаунта само ако е деклариран LDAP) и оставете неговата парола празна. Опитайте да влезете в Easy Redmine, като използвате потребителското име и паролата за LDAP.

 

В движение, създаване на потребител

Чрез проверка създаване на потребители в движениевсеки потребител на LDAP ще има своя акаунт в Easy Redmine автоматично създаден при първото влизане в Easy Redmine.
За това трябва да посочите името на LDAP атрибутите (име, фамилия, имейл), които ще бъдат използвани за създаване на техните акаунти за Easy Redmine.

Ето типичен пример с помощта на Active Directory:

Име = Моят хост на директория = host.domain.org Порт = 389 LDAPS = няма акаунт = MyDomain \ UserName (или UserName @ MyDomain в зависимост от AD сървъра) Парола = Основен DN = CN = потребители, DC = хост, DC = домейн, DC = org Създаване на потребител в движение = да Атрибути Login = sAMAccountName Firstname = givenName Фамилия = sN Email = mail

Ето още един пример за Active Directory с отделен интранет:

Име = Просто описание на страницата за режими за удостоверяване Host = DepartmentName.OrganizationName.local Port = 389 LDAPS = no Account = DepartmentName \ UserName (или UserName @ MyDomain в зависимост от AD сървър или свързване DN uid = Manager, cn = потребители, dc = MyDomain, dc = com) Парола = Основен DN = DC = Име на отдел, DC = Име на организацията, DC = локално създаване на потребител в движение = да Атрибути Login = sAMAccountName Firstname = givenName Фамилия = sN Email = mail

Обърнете внимание, че имената на LDAP атрибути са различаващ главни от малки букви.

Динамичен обвързващ акаунт

Горната настройка ще се нуждае от специален акаунт на сървъра на директории, който Easy Redmine използва за предварително удостоверяване. Възможно е да се използва ключовата дума $ вход в полето за акаунт, което след това ще бъде заменено от текущото влизане. В този случай паролата може да остане празна, например:

Профил: $login@COMPANY.DOMAIN.NAME

or

Акаунт: компания \ $ вход

Базови DN варианти

Въпреки че е напълно възможно Base DN по-горе да е стандартен за Active Directory, Active Directory на сайта на моя работодател не използва контейнера Потребители за стандартни потребители, така че тези инструкции ме изпратиха дълъг и болезнен път. Препоръчвам също да опитате само "DC = хост, DC = домейн, DC = org", ако входът не успее с настройките там.

 

Групово LDAP вход

Ако искате просто да разрешите влизане на потребители, които принадлежат към определена LDAP група, трябва да следвате инструкциите по -долу. Те са базирани на OpenLDAP LDAP сървър и Easy Redmine.

1. (OpenLDAP сървър) Активирайте memberof наслагване

1.1. Създайте файл:

vim ~ / memberof_add.ldif

Със съдържание по-долу:

dn: cn = модул, cn = config
objectClass: olcModuleList
cn: модул
olcModulePath: / usr / lib / ldap
olcModuleLoad: memberof

1.2. Създайте файл:

vim ~ / memberof_config.ldif

Със съдържание по-долу:

dn: olcOverlay = memberof, olcDatabase = {1} hdb, cn = config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: отгоре
olcOverlay: memberof
olcMemberOfDangling: игнорирайте
olcMemberOfRefInt: ИСТИНСКИ
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: член
olcMemberOfMemberOfAD: memberOf

1.3. Заредете ги. Това ще зависи от вашата конфигурация на OpenLDAP, така че ще предложим някои възможности:

sudo ldapadd -c -Y ВЪНШЕН -H ldapi: /// -f memberof_add.ldif
sudo ldapadd -c -Y ВЪНШЕН -H ldapi: /// -f memberof_config.ldif

Или:

ldapadd -D cn = администратор, cn = config -w "парола" -H ldapi: /// -f memberof_add.ldif
ldapadd -D cn = admin, cn = config -w "парола" -H ldapi: /// -f memberof_config.ldif

Рестартирането НЕ е необходимо, ако използвате двигател за динамична конфигурация на изпълнение (slapd-config).

1.4. (Незадължително) Тествайте го:

ldapsearch -D cn = admin, dc = пример, dc = com -x -W -b 'dc = пример, dc = com' -H 'ldap: //127.0.0.1: 389/"" (& (objectClass = posixAccount ) (memberOf = cn = ldapeasyredmine, ou = групи, dc = пример, dc = com)) '

2. (OpenLDAP сървър) Създайте групата. В този пример потребителят е „ldap_user_1“, а групата е „ldapeasyredmine“:

dn: cn = ldapeasyredmine, ou = групи, dc = пример, dc = com
cn: ldapeasyredmine
описание: Членовете на персонала имат право да влизат в системата за билети Easy Redmine
член: cn = ldap_user_1, ou = хора, dc = пример, dc = com
objectclass: groupOfNames
objectclass: отгоре

Настройте "dn" и "cn" s, за да се впишат във вашата DIT структура

3. (Easy Redmine) Редактирайте режима за удостоверяване на LDAP. В моя случай "ldap_user_1" е обектна класа "posixAccount":

База DN: dc = пример, dc = com
Филтър: (& (objectClass = posixAccount) (memberOf = cn = ldapeasyredmine, ou = групи, dc = пример, dc = com))

 

Отстраняване на проблеми

Ако искате да използвате създаването на потребители в движение, уверете се, че Easy Redmine може да извлече от вашия LDAP цялата необходима информация, за да създаде валиден потребител.
Например създаването на потребители в движение няма да работи, ако нямате валидни имейл адреси в своята директория (при опит да влезете ще получите съобщение за грешка „Невалидно потребителско име / парола“).
(Това не е вярно при по -новите версии на Easy Redmine; диалоговият прозорец за създаване на потребител е попълнен с всичко, което може да намери от LDAP сървъра, и моли новия потребител да попълни останалите.)

Освен това се уверете, че нямате персонализирано поле, маркирано като длъжен за потребителски акаунти. Тези персонализирани полета биха предотвратили създаването на потребителски акаунти в движение.

Грешки в системата за влизане не се съобщават с никаква реална информация в регистрационните файлове на Easy Redmine, което затруднява отстраняването на неизправности. Можете обаче да намерите повечето от необходимата информация, която използвате Wireshark между вашия Easy Redmine хост и LDAP сървъра. Имайте предвид, че това работи само ако имате разрешения за четене на мрежовия трафик между тези два хоста.

Можете също да използвате инструмента „ldapsearch“, за да проверите дали настройките ви са правилни. Влезте в машината на Linux, която хоства вашия Easy Redmine (и евентуално инсталирайте ldaputils) и изпълнете това:

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

Ако успеете, ще получите списък със съдържанието на рекламата, съответстващ на вашата заявка за търсене. След това ще знаете как да попълните полетата в LDAP конфигурацията в Easy Redmine.

Алтернативни начини за проверка на функционалността

  • Опитайте да премахнете LDAP филтри, които, ако са неправилно зададени, могат да изтрият потребителите, които искате да намерите.
  • До „атрибута за вход“ е икона на книга. Ако щракнете върху него и LDAP е настроен правилно, "обичайните атрибути" автоматично се попълват от действителния LDAP сървър. Вместо текстови полета се появяват квадратчета за случай, в който потребителят иска да промени настройките. В повечето случаи потребителят изобщо не трябва да попълва това. Ако това работи, вероятно всичко останало ще работи.
  • За проблеми със свързването можете да използвате бутона "Тест" в списъка на LDAP сървъра. Внимавайте, това служи само за тестване дали можете да се свържете с LDAP. Честият проблем е, че администраторите не попълват потребителя на системата LDAP, дори когато настройките на LDAP все още са защитени. В този случай тестът ще стартира ОК, защото връзката работи, но не могат да се добавят потребители, тъй като LDAP не "вижда".
  • За да проверите дали LDAP наистина работи, може да се използва и номерът „Налични потребители“ - ако стойността му е 0, LDAP не връща никакви данни и вероятно е неправилно зададен. Ако има число, можете да щракнете върху него, за да го разгънете и да видите какво показва LDAP (и съответно коригирайте филтрите).

Акаунт формат на стойност

Потребителското име за идентификационните данни за обвързване може да се наложи да бъде посочено като DN, а не като UPN (user@domain.com) или като домейн \ потребителско, както бе посочено от този коментар в източник: багажника / продавач / плъгини / рубинено-нет-LDAP-0.0.4 / ИЪ / нето / ldap.rb:

  # Както е описано в #bind, повечето LDAP сървъри изискват да предоставите пълна DN # като свързващо-идентификационно средство, заедно с удостоверителя, като парола.

Следователно потребител с MyDomain \ MyUserName или MyUserName@MyDomain.com потребителското име може да въведе само MyUserName като име за влизане в Easy Redmine.

Бавно LDAP удостоверяване

Ако удостоверяването на LDAP е бавно и имате AD клъстер, опитайте се да посочите в полето Host един от физическите сървъри на AD. Може да помогне.

OpenDS

Ако използвате сървъра на OpenDS, може да имате проблеми с контрола на заявката „Странични резултати“, изпратен с първоначалната заявка, търсеща потребителя по посочения атрибут за вход. Този контрол на заявката 1.2.840.113556.1.4.319 не е разрешен за анонимни потребители по подразбиране, като по този начин предотвратява Easy Redmine да намери потребителя в директорията дори преди да се осъществи свързването.

Добавете глобален ACI като този

./dsconfig -h SERVER_IP -p 4444 -D cn = "Мениджър на директории" -w PASSWORD -n set-access-control-handler-prop --trustAll --add global-aci: \ (targetcontrol = \ "1.2.840.113556.1.4.319 \" \) \ \ (версия \ 3.0 \; \ acl \ \ "Анонимен \ контрол \ достъп \ до \ 1.2.840.113556.1.4.319 \" \; \ разреши \ \ (прочетете \) \ userdn = \ "ldap: /// никой \" \ ; \)

Забележка: Въведете командата на един ред, използвайте избягащия точно както е посочено (\ след "acl" се означава "\" за интервал).

Някои потребители не могат да влязат

Проблем: Конкретен ОУ потребители не може да влезе (невалиден потребител или парола), докато всички останали. Потребителите са в отдалечен сайт, но потребителите в другите ОУ на същия сайт не получават тази грешка.

Решение: Проблемът най-вероятно не е свързан с неправилни настройки, а по-скоро проблем с Active Directory (AD). Потребителите, които не са могли да се свържат, са задали полето „Вход към“ на определен компютър в Свойствата на потребителя на AD (AD администрация). След като го смените на „Вход отвсякъде“, би трябвало да работи. По-конкретно, това поле трябва да бъде настроено на: AD потребител -> свойства -> акаунт -> влизане отвсякъде.

Проблеми с влизането при използване на LDAPS без валиден сертификат

Може да срещнете проблеми с влизането, когато използвате LDAPS без валиден сертификат. В Redmine 4 сертификатът LDAPS винаги е валидиран. С невалиден сертификат потребителите няма да могат да влизат. Разбира се, правилното и дългосрочно решение е да използвате валиден сертификат. Но докато постигнете това, временното решение е да отидете на Администрация >> LDAP удостоверяване >> Редактиране на съответния режим за удостоверяване.

Променете настройката на LDAPS (без проверка на сертификата).

С Easy Redmine Server решение можете да го промените насипно от конзолата на релсите
rails r "AuthSource.update_all (верига_проверка: невярно)" -e производство

или чрез SQL
UPDATE auth_sources set_control_peer = 0;

 

Ъглов ситуации

  • При импортиране / създаване на потребители автоматично от LDAP, настройката за тип потребител по подразбиране, въведена във формуляра за създаване на потребител, е предпочитана пред настройката за потребителски тип по подразбиране, въведена в LDAP. След като потребителят е създаден, тази настройка не може да бъде променена по-късно (освен ако не създадете нов LDAP).

Опитайте Easy Redmine за 30 дни безплатен пробен период

Пълни функции, SSL защитени, ежедневни архиви, във вашето геолокация