23

如何使用 Go 直接调用和管理Ldap协议?有包吗?还是我必须使用 udp 和 tcp?

4

6 回答 6

18

There is no LDAP library in the Go standard libraries, but a quick Google search reveals several you could try:

This second one is actually a fork of the first one. On github you can always view the open issues, last update and forking network (https://github.com/mmitton/ldap/network) to get a pretty good sense of which library you should use when there is a lot of forking.

If you need a library for something omitted in the Go standard libraries there are several good places to look:

If all of those fail you and you don't feel up to creating your own implementation, keep in mind you can always use cgo to call C code (such as one of the many C LDAP libraries for example) from Go.

于 2013-03-09T00:10:22.377 回答
11

我想我应该在这里加上我的十美分。这是一个旧帖子,但仍然在这里

在使用上面 voidlogic 提到的库之后,我使用了https://github.com/mavricknz/ldap库。mmitton/ldapmmitton lib 的问题在于它在过滤器中不能很好地处理转义字符。

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

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

即使使用转义过滤器,MMitton library刚刚返回过滤器编译错误。加载了 Mavricknz 库,它工作了。甚至自带EscapeFilter功能!光彩!

无论如何......我想我应该为那些和我有同样挣扎的人发布这个:)

于 2014-09-04T06:12:49.613 回答
3

我开始编写一个帮助程序库来构建能够使用 LDAP 协议的服务器软件。包括一些使用示例。

于 2015-08-22T13:16:17.613 回答
2

此外,对于它的服务器端,我不久前写了这个包(在 Go 中): https ://github.com/bradleypeabody/godap

它不是一个完整的 LDAP 服务器,但可以很好地在另一个数据源之上实现身份验证(我无法找到任何其他解决的项目)。

它做了很多“直接管理 Ldap 协议”:)

于 2015-03-02T22:31:25.307 回答
2

有关简单的高级 ldap 客户端,请参阅go-ldap-clientgo docs

https://godoc.org/?q=ldap上的大多数选项 只是另一个选项的分支,它们中的大多数都太低级或太有限(例如,不返回导致问题难以解决的错误)。

于 2015-12-17T12:29:42.990 回答
1

如果您想在您的网页上提供基于 LDAP 的身份验证,您可能会喜欢我创建的解决方案:go-ldapc是一个 LDAP 身份验证客户端模块,只有一个 API。

它在github - sona-tar/go-ldapc 上

于 2016-07-25T20:49:13.270 回答