go-gssapi provides GSSAPI bindings for Go.
This repository contains the Golang GSSAPI bindings interface and provider-independent support functions described in the wiki. A GSSAPI provider that implements the interface is required along with this package.
Versions prior to v3 of this repository contained a GSSAPI implementation that used native Golang Kerberos and was not pluggable. As of version 3, the providers are separate to the interface.
At this time, a provider that wraps the C bindings is available. We feel that the native Go Kerberos implementation needs a reasonable amount of work for it to be production ready and so a native provider will come at a later stage. Developers are recommended to use the C wrappers at this stage.
Include the interface and common functions from this package:
go get github.com/golang-auth/go-gssapi/v3
.. and a provider, for example go-gssapi-c
:
go get github.com/golang-auth/go-gssapi-c
The interface and provider packages should be included in the application. The provider package does not need to supply any symbols to the app -- just loading it is enough to have it register itself:
package main
import (
_ "github.com/golang-auth/go-gssapi-c"
"github.com/golang-auth/go-gssapi/v3"
)
// GSSAPI-C is the name that go-gssapi-c registers itself under
var gss = gssapi.NewProvider("GSSAPI-C")