2013-03-04 13 views
22

Wie kann ich verwenden, um Ldap Protokoll direkt aufzurufen und zu verwalten? Gibt es irgendwelche Pakete? oder muss ich udp und tcp verwenden?Wie gehe ich mit dem LDAP Protokoll

+9

Haben Sie gesucht? https://github.com/tonnerre/go-ldap ist Top-Ergebnis in Google – CharlesB

+3

Ich empfehle [godoc.org] (http://godoc.org) für die Suche nach Bibliotheken. [http://godoc.org/?q=ldap](http://godoc.org/?q=ldap) – lukad

+0

Für einige minimalistische Server-Unterstützung habe ich dies gemacht: https://github.com/bradyleypeabody/godap –

Antwort

18

Es gibt keine LDAP-Bibliothek in den Go-Standardbibliotheken, aber eine schnelle Google-Suche zeigt mehrere Sie könnten versuchen:

Das zweite ist eigentlich eine Gabel von der ersten. Auf github können Sie immer die offenen Probleme, das letzte Update und das Forking-Netzwerk sehen (https://github.com/mmitton/ldap/network), um ein ziemlich gutes Gefühl dafür zu bekommen, welche Bibliothek Sie verwenden sollten, wenn es viele Forking gibt.

Wenn Sie eine Bibliothek für etwas in der Standard-Go weggelassen brauchen Bibliotheken mehrere gute Plätze gibt es aussehen:

Wenn Ihnen all das nicht gelingt und Sie keine eigene Implementierung erstellen können, denken Sie daran, dass Sie immer cgo verwenden können, um C-Code (z. B. eine der vielen C LDAP-Bibliotheken) von Go aufzurufen.

+6

Bitte beziehen Sie sich auf https://github.com/go-ldap/ldap, die oben genannten Projekte abgelaufen und nicht mehr gepflegt werden. – xiaoyi

11

Ich dachte, ich sollte meine zehn Cent hier hinzufügen. Es ist eine alte Post, aber hier ist es nichtsdestoweniger

Ich benutzte die https://github.com/mavricknz/ldap Bibliothek nach der Verwendung der mmitton/ldap eine wie von voidlogic oben erwähnt. Das Problem mit der mmitton-Lib besteht darin, dass Escape-Zeichen im Filter nicht gut verarbeitet werden.

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

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

Die MMitton library kam gerade mit einem Filter zurück Fehler kompilieren sogar mit dem entkam Filter. Habe die Mavricknz Lib geladen und es hat funktioniert. Sogar kommt mit EscapeFilter Funktion! Brillanz!

Wie auch immer ... dachte, ich sollte diese Posten für jeden, der den gleichen Kampf hatte, wie ich :)

2

Zusätzlich hat, für den Server Ende, schrieb ich dieses Paket (in Go) vor einer Weile:

Es ist kein vollständiger LDAP-Server, aber funktioniert gut für die Implementierung der Authentifizierung auf einer anderen Datenquelle (etwas, das ich nicht finden konnte, ein anderes Projekt, das Adressen).

Es tut eine Menge „Ldap verwalten Protokoll direkt“ :)

+0

Sieht cool aus! Werde schon mal nach so etwas Ausschau gehalten – wickd

2

Für eine einfache LDAP-Client auf hoher Ebene, siehe go-ldap-client, go docs.

Die meisten der Optionen auf https://godoc.org/?q=ldap sind nur Gabeln eines anderen, die meisten von ihnen zu niedrigen Niveau sind oder zu begrenzt (zum Beispiel keine Fehler zurückgeben , die es schwer machen, um Probleme zu beheben).

1

Wenn Sie LDAP-basierte Authentifizierung auf Ihrer Webseite bereitstellen möchten, mögen Sie die von mir erstellte Lösung: go-ldapc ist ein LDAP-Authentifizierungs-Clientmodul mit nur einer API.

Es ist auf github - sona-tar/go-ldapc.

Verwandte Themen