Documentation
¶
Overview ¶
Package kinit provides utilities for interacting with a KDC (Key Distribution Center) for Kerberos5
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CertGetter ¶
type CertGetter interface {
// GetCertificateBytes returns a new cert/key pair along with a CA for use with x509 Auth
GetCertificateBytes(ctx context.Context) (*WindowsCAAndKeyPair, error)
}
CertGetter is an interface for getting a new cert/key pair along with a CA cert
type CommandConfig ¶
type CommandConfig struct {
// AuthClient is a subset of the auth interface
AuthClient windows.AuthInterface
// User is the username of the database/AD user
User string
// Realm is the domain name
Realm string
// KDCHost is the key distribution center hostname (usually AD server)
KDCHost string
// AdminServer is the administration server hostname (usually AD server)
AdminServer string
// DataDir is the Teleport Data Directory
DataDir string
// LDAPCA is the Windows LDAP Certificate for client signing
LDAPCA *x509.Certificate
// LDAPCAPEM contains the same certificate as LDAPCA but in PEM format. It
// can be used to embed the LDAPCA into files without needing to convert
// it.
LDAPCAPEM string
// Command is a command generator that generates an executable command
Command CommandGenerator
// CertGetter is a Teleport Certificate getter that prepares an x509 certificate
// for use with windows AD
CertGetter CertGetter
}
CommandConfig is used to configure a kinit binary execution
type CommandGenerator ¶
type CommandGenerator interface {
// CommandContext is a wrapper for creating a command
CommandContext(ctx context.Context, name string, args ...string) *exec.Cmd
}
CommandGenerator is a small interface for wrapping *exec.Cmd
type CommandLineInitializer ¶
type CommandLineInitializer struct {
// RealmName is the kerberos realm Name (domain Name, like `example.com`
RealmName string
// KDCHostName is the key distribution center host Name (usually AD host, like ad.example.com)
KDCHostName string
// AdminServerName is the admin server Name (usually AD host)
AdminServerName string
// contains filtered or unexported fields
}
CommandLineInitializer uses a command line `kinit` binary to provide a kerberos CCache
func NewCommandLineInitializer ¶
func NewCommandLineInitializer(config CommandConfig) *CommandLineInitializer
NewCommandLineInitializer returns a new command line initializer using a preinstalled `kinit` binary
func (*CommandLineInitializer) UseOrCreateCredentials ¶
func (k *CommandLineInitializer) UseOrCreateCredentials(ctx context.Context) (*credentials.CCache, *config.Config, error)
UseOrCreateCredentials uses an existing cacheData or creates a new one
func (*CommandLineInitializer) WriteKRB5Config ¶
func (k *CommandLineInitializer) WriteKRB5Config(path string) error
WriteKRB5Config writes a krb configuration to path
type DBCertGetter ¶
type DBCertGetter struct {
// Auth is the auth client
Auth windows.AuthInterface
// KDCHostName is the Name of the key distribution center host
KDCHostName string
// RealmName is the kerberos realm Name (domain Name)
RealmName string
// AdminServerName is the Name of the admin server. Usually same as the KDC
AdminServerName string
// UserName is the database username
UserName string
// LDAPCA is the windows ldap certificate
LDAPCA *x509.Certificate
}
DBCertGetter obtains a new cert/key pair along with the Teleport database CA
func (*DBCertGetter) GetCertificateBytes ¶
func (d *DBCertGetter) GetCertificateBytes(ctx context.Context) (*WindowsCAAndKeyPair, error)
GetCertificateBytes returns a new cert/key pem and the DB CA bytes
type PKInit ¶
type PKInit struct {
// contains filtered or unexported fields
}
PKInit is a structure used for initializing a kerberos context
func (*PKInit) UseOrCreateCredentialsCache ¶
func (k *PKInit) UseOrCreateCredentialsCache(ctx context.Context) (*credentials.CCache, *config.Config, error)
UseOrCreateCredentialsCache uses or creates a credentials cacheData.
type Provider ¶
type Provider interface {
// UseOrCreateCredentials uses or updates an existing cacheData or creates a new one
UseOrCreateCredentials(ctx context.Context) (cache *credentials.CCache, conf *config.Config, err error)
}
Provider is a kinit provider capable of producing a credentials cacheData for kerberos
type WindowsCAAndKeyPair ¶
type WindowsCAAndKeyPair struct {
// contains filtered or unexported fields
}
WindowsCAAndKeyPair is a wrapper around PEM bytes for Windows authentication