package cert import ( "github.com/hashicorp/vault/logical" "github.com/hashicorp/vault/logical/framework" ) func Factory(map[string]string) (logical.Backend, error) { return Backend(), nil } func Backend() *framework.Backend { var b backend b.Backend = &framework.Backend{ Help: backendHelp, PathsSpecial: &logical.Paths{ Root: []string{ "certs/*", }, Unauthenticated: []string{ "login", }, }, Paths: append([]*framework.Path{ pathLogin(&b), pathCerts(&b), }), AuthRenew: b.pathLoginRenew, } return b.Backend } type backend struct { *framework.Backend MapCertId *framework.PathMap } const backendHelp = ` The "cert" credential provider allows authentication using TLS client certificates. A client connects to Vault and uses the "login" endpoint to generate a client token. Trusted certificates are configured using the "certs/" endpoint by a user with root access. A certificate authority can be trusted, which permits all keys signed by it. Alternatively, self-signed certificates can be trusted avoiding the need for a CA. `