如何直接使用Go来调用和管理 Ldap 协议?有包裹吗?或者我必须使用udp和tcp吗?
答案 0 :(得分:18)
Go标准库中没有LDAP库,但快速Google搜索会显示您可以尝试的几个:
第二个实际上是第一个的分支。在github上,您始终可以查看未解决的问题,上次更新和分叉网络(https://github.com/mmitton/ldap/network),以便在需要大量分析时很好地了解应该使用哪个库。
如果你需要一个库来获取Go标准库中省略的东西,那么有几个好的地方可以看:
如果所有这些都让您失败并且您不想创建自己的实现,请记住,您始终可以使用cgo来调用C代码(例如,许多C LDAP库之一)来自Go。
答案 1 :(得分:11)
以为我应该在这里加上我的十美分。这是一个老帖子,但在这里它仍然是
我在使用上面的voidlogic提到的mmitton/ldap
之后使用了https://github.com/mavricknz/ldap库。 mmitton lib的问题在于它在过滤器中不能很好地处理转义字符。
The test filter: (&(objectClass=user)(cn=wickd(bracketTest )))
Escaped Filter: (&(objectClass=user)(cn=wickd\28bracketTest \29))
即使使用转义过滤器,MMitton library
刚回来时出现了过滤器编译错误。加载了Mavricknz lib并且它有效。甚至还带有EscapeFilter功能!辉煌!
无论如何......我想我应该为那些和我一样奋斗的人发布这个:)
答案 2 :(得分:3)
我开始编写一个帮助程序库,用于构建能够说出LDAP协议的服务器软件。 包括一些使用样本。
答案 3 :(得分:2)
另外,对于它的服务器端,我不久前写了这个包(在Go中): https://github.com/bradleypeabody/godap
它不是一个完整的LDAP服务器,但适用于在另一个数据源之上实现身份验证(我无法找到任何其他解决的项目)。
它做了很多"直接管理Ldap协议" :)
答案 4 :(得分:2)
对于简单的高级ldap客户端,请参阅go-ldap-client,go docs。
https://godoc.org/?q=ldap上的大多数选项 只是另一个的叉子,大多数是太低或太有限(例如不返回错误 这使得很难排除问题。)
答案 5 :(得分:1)
如果您想在网页上提供基于LDAP的身份验证,您可能会喜欢我创建的解决方案:go-ldapc
是一个LDAP身份验证客户端模块,只有一个API。