mirror of
https://github.com/gravitational/teleport.git
synced 2026-09-24 16:17:11 +08:00
6.5 KiB
6.5 KiB
Auth Server Client
type Client struct {
roundtrip.Client
}
Certificate authority endpoints control user and host CAs. They are
central mechanism for authenticating users and hosts within the cluster.
Client is HTTP API client that connects to the remote server
func NewClient(addr string, params ...roundtrip.ClientParam) (*Client, error)
func NewClientFromNetAddr(
a utils.NetAddr, params ...roundtrip.ClientParam) (*Client, error)
func (c *Client) CheckPassword(user string, password []byte) error
CheckPassword checks if the suplied web access password is valid.
func (c *Client) Delete(u string) (*roundtrip.Response, error)
Delete issues http Delete Request to the server
func (c *Client) DeleteUser(user string) error
DeleteUser deletes a user by username
func (c *Client) DeleteUserKey(username string, id string) error
DeleteUserKey deletes a key by id for a given user
func (c *Client) DeleteWebSession(user string, sid string) error
DeleteWebSession deletes a web session for this user by id
func (c *Client) DeleteWebTun(prefix string) error
DeleteWebTun deletes the tunnel by prefix
func (c *Client) GenerateHostCert(
key []byte, id, hostname string, ttl time.Duration) ([]byte, error)
GenerateHostCert takes the public key in the Open SSH
``authorized_keys`` plain text format, signs it using Host CA private
key and returns the resulting certificate.
func (c *Client) GenerateKeyPair(pass string) ([]byte, []byte, error)
GenerateKeyPair generates SSH private/public key pair optionally
protected by password. If the pass parameter is an empty string, the key
pair is not password-protected.
func (c *Client) GenerateToken(domainName string, ttl time.Duration) (string, error)
GenerateToken creates a special provisioning token for the SSH server
with the specified domainName that is valid for ttl period seconds.
This token is used by SSH server to authenticate with Auth server and
get signed certificate and private key from the auth server.
The token can be used only once and only to generate the domainName specified
in it.
func (c *Client) GenerateUserCert(
key []byte, id, user string, ttl time.Duration) ([]byte, error)
GenerateUserCert takes the public key in the Open SSH
``authorized_keys`` plain text format, signs it using User CA signing
key and returns the resulting certificate.
func (c *Client) Get(u string, params url.Values) (*roundtrip.Response, error)
Get issues http GET request to the server
func (c *Client) GetEvents() ([]interface{}, error)
GetEvents returns last 20 audit events recorded by the auth server
func (c *Client) GetHostCAPub() ([]byte, error)
Returns host certificate authority public key. This public key is used
to validate if host certificates were signed by the proper key.
func (c *Client) GetLogWriter() *LogWriter
GetLogWriter returns a io.Writer - compatible object that can be used by
lunk.EventLogger to ship audit logs to the auth server
func (c *Client) GetServers() ([]backend.Server, error)
GetServers returns the list of servers registered in the cluster.
func (c *Client) GetUserCAPub() ([]byte, error)
Returns user certificate authority public key. This public key is used
to check if the users certificate is valid and was signed by this
authority.
func (c *Client) GetUserKeys(user string) ([]backend.AuthorizedKey, error)
GetUserKeys returns a list of keys registered for this user. This list
does not include the temporary keys associated with user web sessions.
func (c *Client) GetUsers() ([]string, error)
GetUsers returns a list of usernames registered in the system
func (c *Client) GetWebSession(user string, sid string) (string, error)
GetWebSession check if a web sesion is valid, returns session id in case
if it is valid, or error otherwise.
func (c *Client) GetWebSessionsKeys(
user string) ([]backend.AuthorizedKey, error)
GetWebSessionKeys returns the list of temporary keys generated for this
user web session. Each web session has a temporary user ssh key and
certificate generated, that is stored for the duration of this web
session. These keys are used to access SSH servers via web portal.
func (c *Client) GetWebTun(prefix string) (*backend.WebTun, error)
GetWebTun retruns the web tunel details by it unique prefix
func (c *Client) GetWebTuns() ([]backend.WebTun, error)
GetWebTuns returns a list of web tunnels supported by the system
func (c *Client) PostForm(
endpoint string,
vals url.Values,
files ...roundtrip.File) (*roundtrip.Response, error)
PostForm is a generic method that issues http POST request to the server
func (c *Client) ResetHostCA() error
All host certificate keys will have to be regenerated and all SSH nodes
will have to be re-provisioned after calling this method.
func (c *Client) ResetUserCA() error
Regenerates user certificate authority private key. User authority
certificate is used to sign User SSH public keys, so auth server can
check if that is a valid key before even hitting the database.
All user certificates will have to be regenerated.
func (c *Client) SignIn(user string, password []byte) (string, error)
SignIn checks if the web access password is valid, and if it is valid
returns a secure web session id.
func (c *Client) SubmitEvents(events [][]byte) error
Submit events submits structured audit events in JSON serialized format
to the auth server.
func (c *Client) UpsertPassword(user string, password []byte) error
UpsertPassword updates web access password for the user
func (c *Client) UpsertServer(s backend.Server, ttl time.Duration) error
UpsertServer is used by SSH servers to reprt their presense to the auth
servers in form of hearbeat expiring after ttl period.
func (c *Client) UpsertUserKey(username string,
key backend.AuthorizedKey, ttl time.Duration) ([]byte, error)
UpsertUserKey takes public key of the user, generates certificate for it
and adds it to the authorized keys database. It returns certificate
signed by user CA in case of success, error otherwise. The certificate
will be valid for the duration of the ttl passed in.
func (c *Client) UpsertWebTun(wt backend.WebTun, ttl time.Duration) error
UpsertWebTun creates a persistent SSH tunnel to the specified web target
server that is valid for ttl period. See backend.WebTun documentation
for details