2013-03-04 44 views
22

如何使用Go直接拨打和管理Ldap协议?有没有包?或者我必须使用udp和tcp?如何使用Go with LDAP协议

+9

您是否在搜索? https://github.com/tonnerre/go-ldap是Google – CharlesB 2013-03-04 16:12:51

+3

中的首要结果,我建议[godoc.org](http://godoc.org)搜索资料库。 [http://godoc.org/?q=ldap](http://godoc.org/?q=ldap) – lukad 2013-03-05 09:57:19

+0

对于一些简约的服务器支持,我做了这个:https://github.com/bradleypeabody/godap – 2014-11-14 08:25:16

回答

18

有一个在围棋标准库没有LDAP库,但快速谷歌搜索发现一些你可以尝试:

这第二个实际上是一个叉的第一个。在github上,您可以随时查看未解决问题,上次更新和分支网络(https://github.com/mmitton/ldap/network),以便在分叉很多时能够很好地了解应该使用哪个库。

如果你需要的东西在转标准省略了库库也有几个不错的地方看看:

如果所有这些都失败了,并且您不想创建自己的实现,请记住,始终可以使用cgo从Go中调用C代码(例如,许多C LDAP库中的一个)。

+6

请参考https://github.com/go-ldap/ldap,上述项目已过期并不再维持。 – xiaoyi 2015-04-02 01:09:51

11

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

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

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

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

MMitton library刚刚回来,即使转义过滤器也出现过滤器编译错误。加载了Mavricknz lib,它工作。即使带有EscapeFilter功能!辉煌!

不管怎样......想我应该张贴这对任何人有同样的斗争,像我一样:)

2

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

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

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

+0

看起来很酷!将有一个样子寻找这样的东西 – wickd 2015-12-18 10:18:08

2

对于一个简单的高级LDAP客户端,请参阅go-ldap-clientgo docs

大多数的选项上https://godoc.org/?q=ldap 只是另外一个分支,他们大多是等级太低或太有限(如不返回错误 ,这使得它很难解决问题)。

1

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

它在github - sona-tar/go-ldapc