2013-03-04 67 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