|
1 | 1 | # GSSAPI interace for Go
|
2 | 2 |
|
3 |
| -Upto this point there have been several GSSAPI implementations for Go, |
4 |
| -either native or C bindings. Developers needed to make a choice |
5 |
| -of implementation because their interfaces were not unified. This |
6 |
| -contrasts to the C language, where the bindings are specified |
7 |
| -[in RFC 2744](https://datatracker.ietf.org/doc/html/rfc2744). |
| 3 | +go-gssapi provides GSSAPI bindings for Go. |
8 | 4 |
|
9 |
| -The interface specified in this package aims to fill that gap, albeit |
10 |
| -without an RFC. The aim is to provide developers with a common, idomatic |
11 |
| -programming interface, allowing users to switch out the actual implementation |
12 |
| -depending on preference or local policy. |
| 5 | + |
| 6 | +[](https://img.shields.io/github/actions/workflow/status/golang-auth/go-gssapi/checks.yml?branch=de) |
| 8 | +[](https://golang.org/) |
| 9 | +[](https://pkg.go.dev/mod/github.com/golang-auth/go-gssapi/v3) |
13 | 10 |
|
| 11 | +# Overview |
| 12 | +This repository contains the Golang GSSAPI bindings interface and |
| 13 | +provider-independent support functions [described in the wiki](https://github.com/golang-auth/go-gssapi/wiki/Golang-GSSAPI-bindings-specification). A GSSAPI |
| 14 | +provider that implements the interface is required along with this package. |
| 15 | + |
| 16 | +Versions prior to v3 of this repository contained a GSSAPI implementation that |
| 17 | +used native Golang Kerberos and was not pluggable. As of version 3, the |
| 18 | +providers are separate to the interface. |
| 19 | + |
| 20 | +At this time, a provider that [wraps the C bindings](https://github.com/golang-auth/go-gssapi-c) 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 |
| 21 | +at this stage. |
| 22 | + |
| 23 | +## Installation |
| 24 | + |
| 25 | +Include the interface and common functions from this package: |
| 26 | + |
| 27 | +```go |
| 28 | +go get github.com/golang-auth/go-gssapi/v3 |
| 29 | +``` |
| 30 | + |
| 31 | +.. and a provider, for example `go-gssapi-c`: |
| 32 | +```go |
| 33 | +go get github.com/golang-auth/go-gssapi-c |
| 34 | +``` |
| 35 | + |
| 36 | +## Getting started |
| 37 | + |
| 38 | +The interface and provider packages should be included in the application. The |
| 39 | +provider package does not need to supply any symbols to the app -- just loading |
| 40 | +it is enough to have it register itself: |
| 41 | + |
| 42 | +```go |
| 43 | +package main |
| 44 | + |
| 45 | +import ( |
| 46 | + _ "github.com/golang-auth/go-gssapi-c" |
| 47 | + "github.com/golang-auth/go-gssapi/v3" |
| 48 | +) |
| 49 | + |
| 50 | +// GSSAPI-C is the name that go-gssapi-c registers itself under |
| 51 | +var gss = gssapi.NewProvider("GSSAPI-C") |
| 52 | +``` |
14 | 53 |
|
0 commit comments