Подтвердить что ты не робот

Как использовать Go с протоколом LDAP

Как я могу использовать Go для вызова и управления протоколом Ldap напрямую? есть ли какие-либо пакеты? или я должен использовать udp и tcp?

4b9b3361

Ответ 1

В стандартных библиотеках Go нет библиотеки LDAP, но быстрый поиск в Google показывает несколько вариантов:

Этот второй - фактически вилка первого. В github вы всегда можете просмотреть открытые проблемы, последнее обновление и разветвленную сеть (https://github.com/mmitton/ldap/network), чтобы получить довольно хорошее представление о том, какую библиотеку вы должны использовать, когда есть много разветвления.

Если вам нужна библиотека для чего-то, отсутствующего в стандартных библиотеках Go, есть несколько хороших мест для поиска:

Если все из них не позволяют вам и вам не придумать собственную реализацию, имейте в виду, что вы всегда можете использовать cgo для вызова кода C (например, одна из многих библиотек LDAP LD) из Go.

Ответ 2

Думаю, я должен добавить свои десять центов здесь. Это старый пост, но здесь он тем не менее

Я использовал библиотеку https://github.com/mavricknz/ldap после использования mmitton/ldap, как указано выше в voidlogic. Проблема с mmitton lib заключается в том, что она не обрабатывает escape-символы очень хорошо в фильтре.

The test filter: (&(objectClass=user)(cn=wickd(bracketTest )))

Escaped Filter:  (&(objectClass=user)(cn=wickd\28bracketTest \29))

MMitton library только что вернулся с ошибкой компиляции фильтра даже с экранированным фильтром. Загрузил Mavricknz lib, и он сработал. Даже поставляется с функцией EscapeFilter! блеск!

В любом случае... Думаю, я должен опубликовать это для всех, у кого была такая же борьба, как и я:)

Ответ 3

Я начал писать вспомогательную библиотеку для создания серверного программного обеспечения, способного говорить по протоколу LDAP. В него включены некоторые примеры использования.

Ответ 4

Кроме того, для конца сервера я написал этот пакет (в Go) некоторое время назад: https://github.com/bradleypeabody/godap

Это не полный LDAP-сервер, но хорошо работает для реализации аутентификации поверх другого источника данных (что-то, что я не смог найти ни одного другого проекта, который обращается).

Он выполняет "управление протоколом Ldap напрямую":)

Ответ 5

Для простого клиента ldap высокого уровня см. go-ldap-client, go docs.

Большинство опций на https://godoc.org/?q=ldap являются просто вилами другого, большинство из них слишком низки или слишком ограничены (например, не возвращают ошибки которые затрудняют устранение неполадок).

Ответ 6

Если вы хотите предоставить аутентификацию на основе LDAP на своей веб-странице, вам может понравиться решение, которое я создал: go-ldapc - это клиентский модуль аутентификации LDAP с одним API.

Это на github - sona-tar/go-ldapc.