Фильтр ldap в omniauth Модуль ldap не работает в дискурсе - PullRequest
0 голосов
/ 21 ноября 2018

В настоящее время я пытаюсь настроить Discourse таким образом, чтобы в него могли входить только пользователи из определенной группы ldap. Discourse имеет подключаемый модуль под названием discourse-ldap auth (https://github.com/jonmbake/discourse-ldap-auth).Этот плагин использует модуль omniauth ldap: https://github.com/omniauth/omniauth-ldap

Моя конфигурация дискурсивного плагина (эта конфигурация фактически используется плагином дискурса для модуля omniauth ldap):

  • ldap enabled:true
  • имя хоста ldap: имя хоста моего сервера ldap
  • порт ldap: 389
  • метод ldap: обычный
  • база ldap: база моего ldapсервер
  • ldap uid: userPrincipalName
  • ldap bind dn: Ничего
  • Пароль ldap: Ничего
  • Фильтр ldap: (& (userPrincipalName =% {имя пользователя}) (memberOf = cn = [имя требуемой группы], ou = ...., [base]))

При использовании этой конфигурации никто не может войти на форум.Когда я использую bind dn и пароль, каждый может войти в систему. Я также пробовал этот фильтр безуспешно (скопировано из моего фильтра серверов ldap):

  • (& (& (& (userPrincipalName =% {username}) (memberOf = [dn группы]))))

Что мне нужно настроить, чтобы разрешить вход только пользователям из этой конкретной группы?

Я не нашел ошибок или индикаторов в журнале.Пожалуйста, помогите!

Спасибо за вашу помощь и внимание!

1 Ответ

0 голосов
/ 21 ноября 2018

Вам нужны "ldap dn" и "пароль ldap".Это учетные данные, используемые для аутентификации в LDAP, чтобы вы могли искать учетные записи людей.Обычно это служебная учетная запись, используемая только вашим приложением.

Фильтр должен выглядеть примерно так:

(&(sAMAccountName=%{username})(memberOf:1.2.840.113556.1.4.1941:=[dn of the group]))

Пользователи обычно входят в систему с sAMAccountName, чтообычно называется просто «имя пользователя».Всякий раз, когда вы видите учетную запись в формате DOMAIN\username, username - это sAMAccountName.

. userPrincipalName обычно имеет формат username@domain.com.Иногда он совпадает с адресом электронной почты, но это не обязательно.

Сумасшедшее число, которое я вставил в этот запрос, говорит Active Directory о рекурсивном поиске по группам.Так что это позволит вам поместить группы в вашу группу аутентификации, и членам этой новой группы также будет предоставлен доступ к вашему приложению.Без этого только прямые члены этой группы будут иметь доступ.

...