# gosaml2

[![Build Status](https://github.com/mattermost/gosaml2/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/mattermost/gosaml2/actions/workflows/test.yml?query=branch%3Amain)
[![GoDoc](https://godoc.org/github.com/mattermost/gosaml2?status.svg)](https://godoc.org/github.com/mattermost/gosaml2)

SAML 2.0 implemementation for Service Providers based on [etree](https://github.com/beevik/etree)
and [goxmldsig](https://github.com/russellhaering/goxmldsig), a pure Go
implementation of XML digital signatures.

## Installation

Install `gosaml2` into your `$GOPATH` using `go get`:

```
go get github.com/mattermost/gosaml2
```

## Example

See [demo.go](s2example/demo.go).

## Supported Identity Providers

This library is meant to be a generic SAML implementation. If you find a
standards compliant identity provider that it doesn't work with please
submit a bug or pull request.

The following identity providers have been tested:

* Okta
* Auth0
* Shibboleth
* Ipsilon
* OneLogin
