我如何使用Go直接调用和管理LDAP协议?有哪些包可用?或者必须使用UDP和TCP?
我如何使用Go直接调用和管理LDAP协议?有哪些包可用?或者必须使用UDP和TCP?
Go标准库中没有LDAP库,但是快速的谷歌搜索可以找到几个可用的库:
第二个其实是第一个的分支。在Github上,您可以查看开放问题、最后更新和分叉网络(https://github.com/mmitton/ldap/network)来了解哪个库应该在分叉很多时使用。
如果您需要用于Go标准库中省略的某些库,有几个好的地方供您查找:
如果所有这些都不起作用,您又不想自己创建实现,那么请记住,您总是可以使用cgo来从Go调用C代码(例如其中许多C LDAP库)。
我想在这里补充一下我的看法。尽管这是一篇旧帖子,但仍然可以参考。
在voidlogic上面提到使用mmitton/ldap
之后,我使用了https://github.com/mavricknz/ldap库。 mmitton库的问题在于它在筛选器中不能很好地处理转义字符。
The test filter: (&(objectClass=user)(cn=wickd(bracketTest )))
Escaped Filter: (&(objectClass=user)(cn=wickd\28bracketTest \29))
MMitton库
即使使用了转义过的过滤器,也刚刚遇到了编译错误。加载Mavricknz库后问题得以解决。甚至还包含EscapeFilter函数!太棒了!
无论如何...我想为遇到与我相同困扰的人发布这篇文章 :)
如果需要一个简单的高级LDAP客户端,请参考go-ldap-client和go文档。
https://godoc.org/?q=ldap上的大多数选项只是另一个选项的分支,它们中的大部分要么太低级,要么太有限(例如不返回错误,这使得难以排除问题)。