github.com/sona-tar/go-ldapc

go-ldapc is a LDAP Authentication client with only one API.


License
Other
Install
go get github.com/sona-tar/go-ldapc

Documentation

go-ldapc is a LDAP Authentication client with only one API.

GoDoc

Example

You can provide LDAP based authentication on your web page easily.

  • Code:
import (
    "github.com/sona-tar/ldapc"
)

func main() {
	ldapclient := &ldapc.Client{
		Protocol:  ldapc.LDAP,
		Host:      "localhost",
		Port:      389,
		TLSConfig: nil,
		Bind: &ldapc.AuthBind{
			BindDN:       "uid=user1,ou=People,dc=test,dc=com",
			BindPassword: "admin",
			BaseDN:       "dc=test,dc=com",
			Filter:       "(&(objectClass=posixAccount)(uid=%s))",
		},
	}

	username := "user2"
	password := "user2"

	entry, err := ldapclient.Authenticate(username, password)
	if err != nil {
		fmt.Printf("LDAP Authenticate failed: %v\n", err)
	}

	// Print all entry
	fmt.Printf("%+v\n", entry)

	// username and mail
	fmt.Printf("username: %v\n", entry.GetAttributeValue("uid"))
	fmt.Printf("mail: %v\n", entry.GetAttributeValue("mail"))
}
  • Output:
username: user2
mail: user2@test.com

In other cases Anonymous Bind, Direct Bind or Active Directory, example code ldapc_test.go.

Demo

$ go get -v github.com/sona-tar/go-ldapc
$ cd ${GOPATH}/src/github.com/sona-tar/go-ldapc/example
$ go run main.go
username: user2
mail: user2@test.com

Reference