Documentation ¶
Index ¶
- Constants
- func CreateOpsCenterAgent(opsCenter, clusterName string, users Users) (storage.User, *storage.APIKey, error)
- func CryptoRandomToken(length int) (string, error)
- func ExtractKubeGroups(action string) ([]string, error)
- func FindAllConnectors(identity Identity) (resources []teleservices.Resource, err error)
- func FindConnector(identity Identity, name string) (teleservices.Resource, error)
- func FindPreferredConnector(identity Identity) (teleservices.Resource, error)
- func GetAdminKubernetesGroups() []string
- func GetBuiltinRoles() ([]teleservices.Role, error)
- func GetOpsCenterAgent(opsCenter, clusterName string, backend storage.Backend) (storage.User, *storage.APIKey, error)
- func GetSiteAgent(siteName string, backend storage.Backend) (*storage.APIKey, error)
- func NewAccessPoint(identity Identity) auth.AccessPoint
- func NewActionsParser(ctx teleservices.RuleContext) (predicate.Parser, error)
- func NewAdminRole() (teleservices.Role, error)
- func NewAssignKubernetesGroupsActionFn(ctx teleservices.RuleContext) interface{}
- func NewClusterAgentRole(name string, clusterName string) (teleservices.Role, error)
- func NewGatekeeperRole() (teleservices.Role, error)
- func NewInstallTokenRole(name string, clusterName, repoName string) (teleservices.Role, error)
- func NewObjectStorageRole(name string) (teleservices.Role, error)
- func NewOneTimeLinkRole() (teleservices.Role, error)
- func NewOneTimeLinkRoleForApp(loc loc.Locator) (teleservices.Role, error)
- func NewReaderRole() (teleservices.Role, error)
- func NewSystemRole(name string, spec teleservices.RoleSpecV3) (teleservices.Role, error)
- func NewUpdateAgentRole(name string) (teleservices.Role, error)
- type Account
- type Accounts
- type AssignKubernetesGroupsAction
- type AuthenticateResponse
- type Authenticator
- type AuthenticatorConfig
- type Context
- type CredsConfig
- type Identity
- type IdentityACL
- func (i *IdentityACL) AcquireLock(token string, ttl time.Duration) error
- func (i *IdentityACL) ActivateCertAuthority(id teleservices.CertAuthID) error
- func (i *IdentityACL) AddUserLoginAttempt(username string, attempt teleservices.LoginAttempt, ttl time.Duration) error
- func (i *IdentityACL) AuthenticateUser(creds httplib.AuthCreds) (storage.User, teleservices.AccessChecker, error)
- func (i *IdentityACL) CompareAndSwapCertAuthority(new, existing teleservices.CertAuthority) error
- func (i *IdentityACL) CreateAPIKey(key storage.APIKey, upsert bool) (*storage.APIKey, error)
- func (i *IdentityACL) CreateAccount(a Account) (*Account, error)
- func (i *IdentityACL) CreateAdmin(email, password string) error
- func (i *IdentityACL) CreateAgent(agent storage.User) (storage.User, error)
- func (i *IdentityACL) CreateAgentFromLoginEntry(clusterName string, entry storage.LoginEntry, admin bool) (storage.User, error)
- func (i *IdentityACL) CreateCertAuthority(ca teleservices.CertAuthority) error
- func (i *IdentityACL) CreateClusterAdminAgent(clusterName string, agent storage.User) (storage.User, error)
- func (i *IdentityACL) CreateClusterAgent(clusterName string, agent storage.User) (storage.User, error)
- func (i *IdentityACL) CreateGatekeeper(gatekeeper RemoteAccessUser) (*RemoteAccessUser, error)
- func (i *IdentityACL) CreateGithubAuthRequest(req teleservices.GithubAuthRequest) error
- func (i *IdentityACL) CreateGithubConnector(connector teleservices.GithubConnector) error
- func (i *IdentityACL) CreateInstallToken(t storage.InstallToken) (*storage.InstallToken, error)
- func (i *IdentityACL) CreateInviteToken(advertiseURL string, invite storage.UserInvite) (*storage.UserToken, error)
- func (i *IdentityACL) CreateOIDCAuthRequest(req teleservices.OIDCAuthRequest, ttl time.Duration) error
- func (i *IdentityACL) CreateProvisioningToken(t storage.ProvisioningToken) (*storage.ProvisioningToken, error)
- func (i *IdentityACL) CreateRemoteAgent(agent RemoteAccessUser) (storage.User, error)
- func (i *IdentityACL) CreateRemoteCluster(conn teleservices.RemoteCluster) error
- func (i *IdentityACL) CreateResetToken(advertiseURL string, email string, ttl time.Duration) (*storage.UserToken, error)
- func (i *IdentityACL) CreateRole(role teleservices.Role, ttl time.Duration) error
- func (i *IdentityACL) CreateSAMLAuthRequest(req teleservices.SAMLAuthRequest, ttl time.Duration) error
- func (i *IdentityACL) CreateSAMLConnector(connector teleservices.SAMLConnector) error
- func (i *IdentityACL) CreateUser(user teleservices.User) error
- func (i *IdentityACL) CreateUserWithToken(req UserTokenCompleteRequest) (teleservices.WebSession, error)
- func (i *IdentityACL) DeactivateCertAuthority(id teleservices.CertAuthID) error
- func (i *IdentityACL) DeleteAPIKey(username, token string) error
- func (i *IdentityACL) DeleteAllCertAuthorities(certAuthType teleservices.CertAuthType) error
- func (i *IdentityACL) DeleteAllNamespaces() error
- func (i *IdentityACL) DeleteAllNodes(namespace string) error
- func (i *IdentityACL) DeleteAllProxies() error
- func (i *IdentityACL) DeleteAllRemoteClusters() error
- func (i *IdentityACL) DeleteAllReverseTunnels() error
- func (i *IdentityACL) DeleteAllRoles() error
- func (i *IdentityACL) DeleteAllTunnelConnections() error
- func (i *IdentityACL) DeleteAllUsers() error
- func (i *IdentityACL) DeleteCertAuthority(id teleservices.CertAuthID) error
- func (i *IdentityACL) DeleteGithubConnector(connectorID string) error
- func (i *IdentityACL) DeleteNamespace(namespace string) error
- func (i *IdentityACL) DeleteOIDCConnector(connectorID string) error
- func (i *IdentityACL) DeleteRemoteCluster(clusterName string) error
- func (i *IdentityACL) DeleteReverseTunnel(domainName string) error
- func (i *IdentityACL) DeleteRole(roleName string) error
- func (i *IdentityACL) DeleteSAMLConnector(connectorID string) error
- func (i *IdentityACL) DeleteSignupToken(token string) error
- func (i *IdentityACL) DeleteToken(token string) error
- func (i *IdentityACL) DeleteTrustedCluster(name string) error
- func (i *IdentityACL) DeleteTunnelConnection(clusterName string, connName string) error
- func (i *IdentityACL) DeleteTunnelConnections(clusterName string) error
- func (i *IdentityACL) DeleteUsedTOTPToken(user string) error
- func (i *IdentityACL) DeleteUser(username string) error
- func (i *IdentityACL) DeleteUserInvite(accountID, email string) error
- func (i *IdentityACL) DeleteUserLoginAttempts(user string) error
- func (i *IdentityACL) DeleteWebSession(username, sid string) error
- func (i *IdentityACL) GetAPIKeyByToken(token string) (key *storage.APIKey, err error)
- func (i *IdentityACL) GetAPIKeys(username string) (keys []storage.APIKey, err error)
- func (i *IdentityACL) GetAccessChecker(user storage.User) (teleservices.AccessChecker, error)
- func (i *IdentityACL) GetAccount(accountID string) (*Account, error)
- func (i *IdentityACL) GetAccounts() ([]Account, error)
- func (i *IdentityACL) GetAllTunnelConnections(opts ...teleservices.MarshalOption) ([]teleservices.TunnelConnection, error)
- func (i *IdentityACL) GetAuthPreference() (teleservices.AuthPreference, error)
- func (i *IdentityACL) GetAuthServers() ([]teleservices.Server, error)
- func (i *IdentityACL) GetCertAuthorities(caType teleservices.CertAuthType, loadSigningKeys bool, ...) ([]teleservices.CertAuthority, error)
- func (i *IdentityACL) GetCertAuthority(id teleservices.CertAuthID, loadSigningKeys bool, ...) (teleservices.CertAuthority, error)
- func (i *IdentityACL) GetClusterConfig() (teleservices.ClusterConfig, error)
- func (i *IdentityACL) GetClusterName() (teleservices.ClusterName, error)
- func (i *IdentityACL) GetGithubAuthRequest(stateToken string) (*teleservices.GithubAuthRequest, error)
- func (i *IdentityACL) GetGithubConnector(id string, withSecrets bool) (teleservices.GithubConnector, error)
- func (i *IdentityACL) GetGithubConnectors(withSecrets bool) ([]teleservices.GithubConnector, error)
- func (i *IdentityACL) GetHOTP(username string) (*hotp.HOTP, error)
- func (i *IdentityACL) GetInstallToken(token string) (*storage.InstallToken, error)
- func (i *IdentityACL) GetInstallTokenByUser(username string) (*storage.InstallToken, error)
- func (i *IdentityACL) GetInstallTokenForCluster(name string) (*storage.InstallToken, error)
- func (i *IdentityACL) GetLocalClusterName() (string, error)
- func (i *IdentityACL) GetNamespace(name string) (*teleservices.Namespace, error)
- func (i *IdentityACL) GetNamespaces() ([]teleservices.Namespace, error)
- func (i *IdentityACL) GetNodes(namespace string, opts ...teleservices.MarshalOption) ([]teleservices.Server, error)
- func (i *IdentityACL) GetOIDCAuthRequest(stateToken string) (*teleservices.OIDCAuthRequest, error)
- func (i *IdentityACL) GetOIDCConnector(id string, withSecrets bool) (teleservices.OIDCConnector, error)
- func (i *IdentityACL) GetOIDCConnectors(withSecrets bool) ([]teleservices.OIDCConnector, error)
- func (i *IdentityACL) GetOperationProvisioningToken(clusterName, operationID string) (*storage.ProvisioningToken, error)
- func (i *IdentityACL) GetPasswordHash(username string) ([]byte, error)
- func (i *IdentityACL) GetProvisioningToken(token string) (*storage.ProvisioningToken, error)
- func (i *IdentityACL) GetProxies() ([]teleservices.Server, error)
- func (i *IdentityACL) GetRemoteCluster(clusterName string) (teleservices.RemoteCluster, error)
- func (i *IdentityACL) GetRemoteClusters(opts ...teleservices.MarshalOption) ([]teleservices.RemoteCluster, error)
- func (i *IdentityACL) GetReverseTunnel(name string) (teleservices.ReverseTunnel, error)
- func (i *IdentityACL) GetReverseTunnels() ([]teleservices.ReverseTunnel, error)
- func (i *IdentityACL) GetRole(name string) (teleservices.Role, error)
- func (i *IdentityACL) GetRoles() ([]teleservices.Role, error)
- func (i *IdentityACL) GetSAMLAuthRequest(stateToken string) (*teleservices.SAMLAuthRequest, error)
- func (i *IdentityACL) GetSAMLConnector(id string, withSecrets bool) (teleservices.SAMLConnector, error)
- func (i *IdentityACL) GetSAMLConnectors(withSecrets bool) ([]teleservices.SAMLConnector, error)
- func (i *IdentityACL) GetSignupToken(token string) (*teleservices.SignupToken, error)
- func (i *IdentityACL) GetSignupTokens() ([]teleservices.SignupToken, error)
- func (i *IdentityACL) GetSiteProvisioningTokens(siteDomain string) ([]storage.ProvisioningToken, error)
- func (i *IdentityACL) GetStaticTokens() (teleservices.StaticTokens, error)
- func (i *IdentityACL) GetTOTP(user string) (string, error)
- func (i *IdentityACL) GetTelekubeUser(username string) (storage.User, error)
- func (i *IdentityACL) GetToken(token string) (*teleservices.ProvisionToken, error)
- func (i *IdentityACL) GetTokens() ([]teleservices.ProvisionToken, error)
- func (i *IdentityACL) GetTrustedCluster(name string) (teleservices.TrustedCluster, error)
- func (i *IdentityACL) GetTrustedClusters() ([]teleservices.TrustedCluster, error)
- func (i *IdentityACL) GetTunnelConnections(clusterName string, opts ...teleservices.MarshalOption) ([]teleservices.TunnelConnection, error)
- func (i *IdentityACL) GetU2FRegisterChallenge(token string) (*u2f.Challenge, error)
- func (i *IdentityACL) GetU2FRegistration(user string) (*u2f.Registration, error)
- func (i *IdentityACL) GetU2FRegistrationCounter(user string) (counter uint32, e error)
- func (i *IdentityACL) GetU2FSignChallenge(user string) (*u2f.Challenge, error)
- func (i *IdentityACL) GetUsedTOTPToken(user string) (string, error)
- func (i *IdentityACL) GetUser(username string) (teleservices.User, error)
- func (i *IdentityACL) GetUserByGithubIdentity(id teleservices.ExternalIdentity) (teleservices.User, error)
- func (i *IdentityACL) GetUserByOIDCIdentity(id teleservices.ExternalIdentity) (teleservices.User, error)
- func (i *IdentityACL) GetUserBySAMLIdentity(id teleservices.ExternalIdentity) (teleservices.User, error)
- func (i *IdentityACL) GetUserInvites(accountID string) ([]storage.UserInvite, error)
- func (i *IdentityACL) GetUserLoginAttempts(user string) ([]teleservices.LoginAttempt, error)
- func (i *IdentityACL) GetUserToken(tokenID string) (*storage.UserToken, error)
- func (i *IdentityACL) GetUsers() ([]teleservices.User, error)
- func (i *IdentityACL) GetUsersByAccountID(accountID string) ([]storage.User, error)
- func (i *IdentityACL) GetWebSession(username, sid string) (teleservices.WebSession, error)
- func (i *IdentityACL) LoginWithInstallToken(token string) (*LoginResult, error)
- func (i *IdentityACL) Migrate() error
- func (i *IdentityACL) ReleaseLock(token string) error
- func (i *IdentityACL) ResetPassword(username string) (string, error)
- func (i *IdentityACL) ResetUserWithToken(req UserTokenCompleteRequest) (teleservices.WebSession, error)
- func (i *IdentityACL) SetAuth(auth teleauth.ClientI)
- func (i *IdentityACL) SetAuthPreference(authP teleservices.AuthPreference) error
- func (i *IdentityACL) SetClusterConfig(config teleservices.ClusterConfig) error
- func (i *IdentityACL) SetClusterName(clusterName teleservices.ClusterName) error
- func (i *IdentityACL) SetStaticTokens(tokens teleservices.StaticTokens) error
- func (i *IdentityACL) TryAcquireLock(token string, ttl time.Duration) error
- func (i *IdentityACL) UpdateInstallToken(req InstallTokenUpdateRequest) (*storage.InstallToken, teleservices.Role, error)
- func (i *IdentityACL) UpdatePassword(username string, oldPassword, newPassword Password) error
- func (i *IdentityACL) UpdateUser(username string, req storage.UpdateUserReq) error
- func (i *IdentityACL) UpsertAuthServer(server teleservices.Server) error
- func (i *IdentityACL) UpsertCertAuthority(ca teleservices.CertAuthority) error
- func (i *IdentityACL) UpsertGithubConnector(connector teleservices.GithubConnector) error
- func (i *IdentityACL) UpsertHOTP(username string, otp *hotp.HOTP) error
- func (i *IdentityACL) UpsertLocalClusterName(clusterName string) error
- func (i *IdentityACL) UpsertNamespace(n teleservices.Namespace) error
- func (i *IdentityACL) UpsertNode(server teleservices.Server) error
- func (i *IdentityACL) UpsertNodes(namespace string, servers []teleservices.Server) error
- func (i *IdentityACL) UpsertOIDCConnector(connector teleservices.OIDCConnector) error
- func (i *IdentityACL) UpsertPassword(username string, password []byte) error
- func (i *IdentityACL) UpsertPasswordHash(username string, hash []byte) error
- func (i *IdentityACL) UpsertProxy(server teleservices.Server) error
- func (i *IdentityACL) UpsertReverseTunnel(tunnel teleservices.ReverseTunnel) error
- func (i *IdentityACL) UpsertRole(role teleservices.Role, ttl time.Duration) error
- func (i *IdentityACL) UpsertSAMLConnector(connector teleservices.SAMLConnector) error
- func (i *IdentityACL) UpsertSignupToken(token string, tokenData teleservices.SignupToken, ttl time.Duration) error
- func (i *IdentityACL) UpsertTOTP(user string, secretKey string) error
- func (i *IdentityACL) UpsertToken(token string, roles teleport.Roles, ttl time.Duration) error
- func (i *IdentityACL) UpsertTrustedCluster(trustedCluster teleservices.TrustedCluster) (teleservices.TrustedCluster, error)
- func (i *IdentityACL) UpsertTunnelConnection(conn teleservices.TunnelConnection) error
- func (i *IdentityACL) UpsertU2FRegisterChallenge(token string, u2fChallenge *u2f.Challenge) error
- func (i *IdentityACL) UpsertU2FRegistration(user string, u2fReg *u2f.Registration) error
- func (i *IdentityACL) UpsertU2FRegistrationCounter(user string, counter uint32) error
- func (i *IdentityACL) UpsertU2FSignChallenge(user string, u2fChallenge *u2f.Challenge) error
- func (i *IdentityACL) UpsertUsedTOTPToken(user string, otpToken string) error
- func (i *IdentityACL) UpsertUser(teleuser teleservices.User) error
- func (i *IdentityACL) UpsertWebSession(username, sid string, session teleservices.WebSession) error
- type InstallTokenUpdateRequest
- type KeyStore
- func (c *KeyStore) DeleteLoginEntry(opsCenterURL string) error
- func (c *KeyStore) GetCurrentOpsCenter() string
- func (c *KeyStore) GetLoginEntries() ([]LoginEntry, error)
- func (c *KeyStore) GetLoginEntry(opsCenterURL string) (*LoginEntry, error)
- func (c *KeyStore) SetCurrentOpsCenter(o string) error
- func (c *KeyStore) UpsertLoginEntry(l LoginEntry) (*LoginEntry, error)
- type LoginEntry
- type LoginResult
- type Password
- type RemoteAccessUser
- type SignupResult
- type UserTokenCompleteRequest
- type Users
Constants ¶
const ( // UserIdentifier represents user registered identifier in the rules UserIdentifier = "user" // ResourceIdentifier represents resource registered identifier in the rules ResourceIdentifier = "resource" )
const ( // ActionRead defines the action verb for read permission ActionRead = "read" // ActionCreate defines the action verb for create permission ActionCreate = "create" // ActionUpdate defines the action verb for update permission ActionUpdate = "update" // ActionDelete defines the action verb for delete permission ActionDelete = "delete" )
Variables ¶
This section is empty.
Functions ¶
func CreateOpsCenterAgent ¶
func CreateOpsCenterAgent(opsCenter, clusterName string, users Users) (storage.User, *storage.APIKey, error)
CreateOpsCenterAgent creates a new agent user/API key pair. The user will be used to represent the cluster specified with clusterName on the Ops Center opsCenter once it has connected to it
func CryptoRandomToken ¶
CryptoRandomToken generates crypto-strong pseudo random token
func ExtractKubeGroups ¶
ExtractKubeGroups returns a list of Kubernetes groups extracted from the provided assignKubernetesGroups action string
func FindAllConnectors ¶
func FindAllConnectors(identity Identity) (resources []teleservices.Resource, err error)
FindAllConnectors returns all existing auth connectors
func FindConnector ¶
func FindConnector(identity Identity, name string) (teleservices.Resource, error)
FindConnector searches for a connector of any supported kind with the provided name
func FindPreferredConnector ¶
func FindPreferredConnector(identity Identity) (teleservices.Resource, error)
FindPreferredConnector returns a preferred auth connector to use
If cluster authentication preference specifies one, it is returned. If only 1 connector is registered, it is returned. Otherwise, an error is returned.
func GetAdminKubernetesGroups ¶
func GetAdminKubernetesGroups() []string
GetAdminKubernetesGroups returns list of K8s groups with admin privileges this function should go away once UI will be able to set this instead of hardcoding it
func GetBuiltinRoles ¶
func GetBuiltinRoles() ([]teleservices.Role, error)
GetBuiltinRoles returns some system roles available by default
func GetOpsCenterAgent ¶
func GetOpsCenterAgent(opsCenter, clusterName string, backend storage.Backend) (storage.User, *storage.APIKey, error)
GetOpsCenterAgent returns agent user authenticated to the OpsCenter
func GetSiteAgent ¶
GetSiteAgent returns API key for a registered site agent user
func NewAccessPoint ¶
func NewAccessPoint(identity Identity) auth.AccessPoint
NewAccessPoint returns Teleport's access point (which provides methods specific to certificate authority) from the provided identity service.
func NewActionsParser ¶
func NewActionsParser(ctx teleservices.RuleContext) (predicate.Parser, error)
NewActionsParser returns standard parser for 'actions' section in access rules
func NewAdminRole ¶
func NewAdminRole() (teleservices.Role, error)
NewAdminRole returns new admin type role
func NewAssignKubernetesGroupsActionFn ¶
func NewAssignKubernetesGroupsActionFn(ctx teleservices.RuleContext) interface{}
NewAssignKubernetesGroupsActionFn creates assgin functions
func NewClusterAgentRole ¶
func NewClusterAgentRole(name string, clusterName string) (teleservices.Role, error)
NewClusterAgentRole returns new agent role used to run update and install operations on the cluster
func NewGatekeeperRole ¶
func NewGatekeeperRole() (teleservices.Role, error)
NewGatekeeperRole returns new gatekeeper role
func NewInstallTokenRole ¶
func NewInstallTokenRole(name string, clusterName, repoName string) (teleservices.Role, error)
NewInstallTokenRole is granted after the cluster has been created and it allows modifications to one particular cluster
func NewObjectStorageRole ¶
func NewObjectStorageRole(name string) (teleservices.Role, error)
NewObjectStorageRole specifies role for the object storage
func NewOneTimeLinkRole ¶
func NewOneTimeLinkRole() (teleservices.Role, error)
NewOneTimeLinkRole returns a one-time install token role
func NewOneTimeLinkRoleForApp ¶
func NewOneTimeLinkRoleForApp(loc loc.Locator) (teleservices.Role, error)
NewOneTimeLinkRoleForApp returns a role that allows a one-time link user to log into Ops Center to install the specified application
func NewReaderRole ¶
func NewReaderRole() (teleservices.Role, error)
NewReaderRole returns new role that gives access to published applications
func NewSystemRole ¶
func NewSystemRole(name string, spec teleservices.RoleSpecV3) (teleservices.Role, error)
NewSystemRole creates a role with system label
func NewUpdateAgentRole ¶
func NewUpdateAgentRole(name string) (teleservices.Role, error)
NewUpdateAgentRole returns new agent role used for polling updates
Types ¶
type Accounts ¶
type Accounts interface { // GetAccount returns account by id GetAccount(accountID string) (*Account, error) // GetAccounts returns a list of accounts registered in the system GetAccounts() ([]Account, error) // CreateAccount creates a new account from scratch CreateAccount(Account) (*Account, error) // CreateInviteToken invites a user CreateInviteToken(advertiseURL string, invite storage.UserInvite) (*storage.UserToken, error) // GetUserInvites returns a list of active user invites for this account GetUserInvites(accountID string) ([]storage.UserInvite, error) // DeleteUserInvite deletes user invite DeleteUserInvite(accountID, id string) error // CreateUser adds user to existing account and sets up 2FA authentication for the user // after successful operation it generates web session for the newly created user CreateUserWithToken(req UserTokenCompleteRequest) (teleservices.WebSession, error) // CreateResetToken resets password and generates token that will allow to create // a user for existing account using special secret token (once user confirms email address via OIDC protocol) CreateResetToken(advertiseURL string, email string, ttl time.Duration) (*storage.UserToken, error) // ResetUserWithToken sets user password and hotp value based on password recovery token // and logs in user after that in case of successful operation ResetUserWithToken(req UserTokenCompleteRequest) (teleservices.WebSession, error) // UpdatePassword sets user password based on old password UpdatePassword(email string, oldPassword, newPassword Password) error // ResetPassword resets the user password and returns the new one ResetPassword(email string) (string, error) // GetUserToken returns a token GetUserToken(token string) (*storage.UserToken, error) // GetUsersByAccountID returns a list of users registered for given account ID GetUsersByAccountID(accountID string) ([]storage.User, error) }
Accounts represents a collection of accounts in the portal
type AssignKubernetesGroupsAction ¶
type AssignKubernetesGroupsAction struct {
// contains filtered or unexported fields
}
AssignKubernetesGroupsAction represents action that will assign kubernetes groups when called
func (*AssignKubernetesGroupsAction) Assign ¶
func (l *AssignKubernetesGroupsAction) Assign(groups ...interface{}) predicate.BoolPredicate
Assign assigns kubernetes groups to the context groups
type AuthenticateResponse ¶
type AuthenticateResponse struct { // User is the authenticated user. User storage.User // Checker is the access checker populated with auth user roles. Checker services.AccessChecker // Session is the authenticated web session. May be nil. Session *web.SessionContext }
AuthenticateResponse contains request authentication results.
type Authenticator ¶
type Authenticator interface { // Authenticate authenticates the provided http request. Authenticate(http.ResponseWriter, *http.Request) (*AuthenticateResponse, error) }
Authenticator defines the interface for authenticating requests.
func NewAuthenticator ¶
func NewAuthenticator(config AuthenticatorConfig) (Authenticator, error)
NewAuthenticator returns a new authenticator instance.
func NewAuthenticatorFromIdentity ¶
func NewAuthenticatorFromIdentity(identity Identity) Authenticator
NewAuthenticatorFromIdentity creates a new authenticator from the provided identity.
type AuthenticatorConfig ¶
type AuthenticatorConfig struct { // Identity is used for robot users authentication. Identity Identity // Authenticator is used for web sessions authentication. Authenticator httplib.Authenticator }
AuthenticatorConfig contains authenticator configuration parameters.
func (AuthenticatorConfig) Check ¶
func (c AuthenticatorConfig) Check() error
Check validates the authenticator configuration.
type Context ¶
type Context struct { teleservices.Context // KubernetesGroups is processed by action assignKubernetesGroups KubernetesGroups []string }
Context is a context used in access rules
type CredsConfig ¶
type CredsConfig struct { // Backend is a storage backend Backend storage.LoginEntries }
CredsConfig stores configuration for credentials config
type Identity ¶
type Identity interface { Users Accounts teleservices.Presence storage.Locks teleservices.ClusterConfiguration teleservices.Trust teleservices.Access teleservices.Identity teleservices.Provisioner }
Identity service manages users and account entries, permissions and authentication, signups
func IdentityWithACL ¶
func IdentityWithACL(backend storage.Backend, identity Identity, user storage.User, checker teleservices.AccessChecker) Identity
IdentityWithACL returns an instance of the Users interface with the specified security context
type IdentityACL ¶
IdentityACL defines a security aware wrapper around Users
func (*IdentityACL) AcquireLock ¶
func (i *IdentityACL) AcquireLock(token string, ttl time.Duration) error
AcquireLock grabs a lock that will be released automatically in ttl time
func (*IdentityACL) ActivateCertAuthority ¶
func (i *IdentityACL) ActivateCertAuthority(id teleservices.CertAuthID) error
func (*IdentityACL) AddUserLoginAttempt ¶
func (i *IdentityACL) AddUserLoginAttempt(username string, attempt teleservices.LoginAttempt, ttl time.Duration) error
AddUserLoginAttempt logs user login attempt
func (*IdentityACL) AuthenticateUser ¶
func (i *IdentityACL) AuthenticateUser(creds httplib.AuthCreds) (storage.User, teleservices.AccessChecker, error)
AuthenticateUser authenticates a user by given credentials, it supports basic auth only that is used by agents running on sites
func (*IdentityACL) CompareAndSwapCertAuthority ¶
func (i *IdentityACL) CompareAndSwapCertAuthority(new, existing teleservices.CertAuthority) error
CompareAndSwapCertAuthority updates existing cert authority if the existing cert authority value matches the value stored in the backend
func (*IdentityACL) CreateAPIKey ¶
func (*IdentityACL) CreateAccount ¶
func (i *IdentityACL) CreateAccount(a Account) (*Account, error)
func (*IdentityACL) CreateAdmin ¶
func (i *IdentityACL) CreateAdmin(email, password string) error
CreateAdmin creates a new admin user for the locally running site.
func (*IdentityACL) CreateAgent ¶
CreateAgent creates a new "robot" agent user used by various automation tools (e.g. release automation) with correct privileges
func (*IdentityACL) CreateAgentFromLoginEntry ¶
func (i *IdentityACL) CreateAgentFromLoginEntry(clusterName string, entry storage.LoginEntry, admin bool) (storage.User, error)
CreateAgentFromLoginEntry creates a new agent user from the provided login entry
func (*IdentityACL) CreateCertAuthority ¶
func (i *IdentityACL) CreateCertAuthority(ca teleservices.CertAuthority) error
CreateCertAuthority updates or inserts a new certificate authority
func (*IdentityACL) CreateClusterAdminAgent ¶
func (i *IdentityACL) CreateClusterAdminAgent(clusterName string, agent storage.User) (storage.User, error)
CreateClusterAdminAgent creates a new privileged cluster agent user used during operations like install/expand on master nodes, and has advanced administrative operations e.g. create and delete roles, set up OIDC connectors
func (*IdentityACL) CreateClusterAgent ¶
func (i *IdentityACL) CreateClusterAgent(clusterName string, agent storage.User) (storage.User, error)
CreateClusterAgent creates a new cluster agent user used during cluster operations like install/expand and does not have any administrative privileges
func (*IdentityACL) CreateGatekeeper ¶
func (i *IdentityACL) CreateGatekeeper(gatekeeper RemoteAccessUser) (*RemoteAccessUser, error)
CreateGatekeeper creates a new remote access agent user used to connect remote sites to Ops Centers.
func (*IdentityACL) CreateGithubAuthRequest ¶
func (i *IdentityACL) CreateGithubAuthRequest(req teleservices.GithubAuthRequest) error
CreateGithubAuthRequest creates a new Github auth request
func (*IdentityACL) CreateGithubConnector ¶
func (i *IdentityACL) CreateGithubConnector(connector teleservices.GithubConnector) error
CreateGithubConnector creates a Github connector
func (*IdentityACL) CreateInstallToken ¶
func (i *IdentityACL) CreateInstallToken(t storage.InstallToken) (*storage.InstallToken, error)
CreateInstallToken creates a new one-time installation token
func (*IdentityACL) CreateInviteToken ¶
func (i *IdentityACL) CreateInviteToken(advertiseURL string, invite storage.UserInvite) (*storage.UserToken, error)
CreateInviteToken creates user invite and returns a token
func (*IdentityACL) CreateOIDCAuthRequest ¶
func (i *IdentityACL) CreateOIDCAuthRequest(req teleservices.OIDCAuthRequest, ttl time.Duration) error
CreateOIDCAuthRequest creates new auth request
func (*IdentityACL) CreateProvisioningToken ¶
func (i *IdentityACL) CreateProvisioningToken(t storage.ProvisioningToken) (*storage.ProvisioningToken, error)
CreateProvisioningToken creates a provisioning token from the specified template
func (*IdentityACL) CreateRemoteAgent ¶
func (i *IdentityACL) CreateRemoteAgent(agent RemoteAccessUser) (storage.User, error)
CreateRemoteAgent creates a new site agent user that replicates the agent of a remote site. The user usually has a bound API key which is replicated locally.
func (*IdentityACL) CreateRemoteCluster ¶
func (i *IdentityACL) CreateRemoteCluster(conn teleservices.RemoteCluster) error
CreateRemoteCluster creates a remote cluster
func (*IdentityACL) CreateResetToken ¶
func (i *IdentityACL) CreateResetToken(advertiseURL string, email string, ttl time.Duration) (*storage.UserToken, error)
CreateResetToken resets user password and generates token that will allow existing user to recover a password
func (*IdentityACL) CreateRole ¶
func (i *IdentityACL) CreateRole(role teleservices.Role, ttl time.Duration) error
CreateRole creates role
func (*IdentityACL) CreateSAMLAuthRequest ¶
func (i *IdentityACL) CreateSAMLAuthRequest(req teleservices.SAMLAuthRequest, ttl time.Duration) error
CreateSAMLAuthRequest creates new auth request
func (*IdentityACL) CreateSAMLConnector ¶
func (i *IdentityACL) CreateSAMLConnector(connector teleservices.SAMLConnector) error
CreateSAMLConnector creates SAML Connector
func (*IdentityACL) CreateUser ¶
func (i *IdentityACL) CreateUser(user teleservices.User) error
CreateUser creates a new generic user without privileges
func (*IdentityACL) CreateUserWithToken ¶
func (i *IdentityACL) CreateUserWithToken(req UserTokenCompleteRequest) (teleservices.WebSession, error)
CreateUserWithToken creates a user by UserTokenCompleteRequest
func (*IdentityACL) DeactivateCertAuthority ¶
func (i *IdentityACL) DeactivateCertAuthority(id teleservices.CertAuthID) error
func (*IdentityACL) DeleteAPIKey ¶
func (i *IdentityACL) DeleteAPIKey(username, token string) error
func (*IdentityACL) DeleteAllCertAuthorities ¶
func (i *IdentityACL) DeleteAllCertAuthorities(certAuthType teleservices.CertAuthType) error
DeleteAllCertAuthorities deletes all cert authorities
func (*IdentityACL) DeleteAllNamespaces ¶
func (i *IdentityACL) DeleteAllNamespaces() error
DeleteAllNamespaces deletes all namespaces
func (*IdentityACL) DeleteAllNodes ¶
func (i *IdentityACL) DeleteAllNodes(namespace string) error
DeleteAllNodes deletes all nodes
func (*IdentityACL) DeleteAllProxies ¶
func (i *IdentityACL) DeleteAllProxies() error
DeleteAllProxies deletes all proxies
func (*IdentityACL) DeleteAllRemoteClusters ¶
func (i *IdentityACL) DeleteAllRemoteClusters() error
DeleteAllRemoteClusters deletes all remote clusters
func (*IdentityACL) DeleteAllReverseTunnels ¶
func (i *IdentityACL) DeleteAllReverseTunnels() error
DeleteAllReverseTunnels removes all reverse tunnel values
func (*IdentityACL) DeleteAllRoles ¶
func (i *IdentityACL) DeleteAllRoles() error
DeleteAllRoles deletes all roles
func (*IdentityACL) DeleteAllTunnelConnections ¶
func (i *IdentityACL) DeleteAllTunnelConnections() error
DeleteAllTunnelConnections deletes all tunnel connections for cluster
func (*IdentityACL) DeleteAllUsers ¶
func (i *IdentityACL) DeleteAllUsers() error
DeleteAllUsers deletes all users
func (*IdentityACL) DeleteCertAuthority ¶
func (i *IdentityACL) DeleteCertAuthority(id teleservices.CertAuthID) error
DeleteCertAuthority deletes particular certificate authority
func (*IdentityACL) DeleteGithubConnector ¶
func (i *IdentityACL) DeleteGithubConnector(connectorID string) error
DeleteGithubConnector deletes Github connector
func (*IdentityACL) DeleteNamespace ¶
func (i *IdentityACL) DeleteNamespace(namespace string) error
DeleteNamespace deletes a namespace with all the keys from the backend
func (*IdentityACL) DeleteOIDCConnector ¶
func (i *IdentityACL) DeleteOIDCConnector(connectorID string) error
DeleteOIDCConnector deletes OIDC Connector
func (*IdentityACL) DeleteRemoteCluster ¶
func (i *IdentityACL) DeleteRemoteCluster(clusterName string) error
DeleteRemoteCluster deletes remote cluster by name
func (*IdentityACL) DeleteReverseTunnel ¶
func (i *IdentityACL) DeleteReverseTunnel(domainName string) error
DeleteReverseTunnel deletes reverse tunnel by it's domain name
func (*IdentityACL) DeleteRole ¶
func (i *IdentityACL) DeleteRole(roleName string) error
DeleteRole deletes a role with all the keys from the backend
func (*IdentityACL) DeleteSAMLConnector ¶
func (i *IdentityACL) DeleteSAMLConnector(connectorID string) error
DeleteSAMLConnector deletes SAML Connector
func (*IdentityACL) DeleteSignupToken ¶
func (i *IdentityACL) DeleteSignupToken(token string) error
DeleteSignupToken deletes signup token from the storage
func (*IdentityACL) DeleteToken ¶
func (i *IdentityACL) DeleteToken(token string) error
DeleteToken deletes provisioning token
func (*IdentityACL) DeleteTrustedCluster ¶
func (i *IdentityACL) DeleteTrustedCluster(name string) error
DeleteTrustedCluster removes a TrustedCluster from the backend by name.
func (*IdentityACL) DeleteTunnelConnection ¶
func (i *IdentityACL) DeleteTunnelConnection(clusterName string, connName string) error
DeleteTunnelConnection deletes tunnel connection by name
func (*IdentityACL) DeleteTunnelConnections ¶
func (i *IdentityACL) DeleteTunnelConnections(clusterName string) error
DeleteTunnelConnections deletes all tunnel connections for cluster
func (*IdentityACL) DeleteUsedTOTPToken ¶
func (i *IdentityACL) DeleteUsedTOTPToken(user string) error
DeleteUsedTOTPToken removes the used token from the backend. This should only be used during tests.
func (*IdentityACL) DeleteUser ¶
func (i *IdentityACL) DeleteUser(username string) error
DeleteUser deletes a user by username
func (*IdentityACL) DeleteUserInvite ¶
func (i *IdentityACL) DeleteUserInvite(accountID, email string) error
DeleteUserInvite deletes user invite
func (*IdentityACL) DeleteUserLoginAttempts ¶
func (i *IdentityACL) DeleteUserLoginAttempts(user string) error
DeleteUserLoginAttempts removes all login attempts of a user. Should be called after successful login.
func (*IdentityACL) DeleteWebSession ¶
func (i *IdentityACL) DeleteWebSession(username, sid string) error
DeleteWebSession deletes web session from the storage
func (*IdentityACL) GetAPIKeyByToken ¶
func (i *IdentityACL) GetAPIKeyByToken(token string) (key *storage.APIKey, err error)
func (*IdentityACL) GetAPIKeys ¶
func (i *IdentityACL) GetAPIKeys(username string) (keys []storage.APIKey, err error)
func (*IdentityACL) GetAccessChecker ¶
func (i *IdentityACL) GetAccessChecker(user storage.User) (teleservices.AccessChecker, error)
GetAccessChecker returns access checker for user based on users roles
func (*IdentityACL) GetAccount ¶
func (i *IdentityACL) GetAccount(accountID string) (*Account, error)
GetAccount returns account
func (*IdentityACL) GetAccounts ¶
func (i *IdentityACL) GetAccounts() ([]Account, error)
func (*IdentityACL) GetAllTunnelConnections ¶
func (i *IdentityACL) GetAllTunnelConnections(opts ...teleservices.MarshalOption) ([]teleservices.TunnelConnection, error)
GetAllTunnelConnections returns all tunnel connections
func (*IdentityACL) GetAuthPreference ¶
func (i *IdentityACL) GetAuthPreference() (teleservices.AuthPreference, error)
GetAuthPreference returns cluster auth preference
func (*IdentityACL) GetAuthServers ¶
func (i *IdentityACL) GetAuthServers() ([]teleservices.Server, error)
GetAuthServers returns a list of registered servers
func (*IdentityACL) GetCertAuthorities ¶
func (i *IdentityACL) GetCertAuthorities(caType teleservices.CertAuthType, loadSigningKeys bool, opts ...teleservices.MarshalOption) ([]teleservices.CertAuthority, error)
GetCertAuthorities returns a list of authorities of a given type loadSigningKeys controls whether signing keys should be loaded or not
func (*IdentityACL) GetCertAuthority ¶
func (i *IdentityACL) GetCertAuthority(id teleservices.CertAuthID, loadSigningKeys bool, opts ...teleservices.MarshalOption) (teleservices.CertAuthority, error)
GetCertAuthority returns certificate authority by given id. Parameter loadSigningKeys controls if signing keys are loaded
func (*IdentityACL) GetClusterConfig ¶
func (i *IdentityACL) GetClusterConfig() (teleservices.ClusterConfig, error)
GetClusterConfig returns cluster configuration
func (*IdentityACL) GetClusterName ¶
func (i *IdentityACL) GetClusterName() (teleservices.ClusterName, error)
GetClusterName returns cluster name
func (*IdentityACL) GetGithubAuthRequest ¶
func (i *IdentityACL) GetGithubAuthRequest(stateToken string) (*teleservices.GithubAuthRequest, error)
GetGithubAuthRequest returns Github auth request
func (*IdentityACL) GetGithubConnector ¶
func (i *IdentityACL) GetGithubConnector(id string, withSecrets bool) (teleservices.GithubConnector, error)
GetGithubConnector returns Github connector
func (*IdentityACL) GetGithubConnectors ¶
func (i *IdentityACL) GetGithubConnectors(withSecrets bool) ([]teleservices.GithubConnector, error)
GetGithubConnectors returns Github connectors
func (*IdentityACL) GetHOTP ¶
func (i *IdentityACL) GetHOTP(username string) (*hotp.HOTP, error)
GetHOTP gets HOTP token state for a user
func (*IdentityACL) GetInstallToken ¶
func (i *IdentityACL) GetInstallToken(token string) (*storage.InstallToken, error)
GetInstallToken returns the token by ID
func (*IdentityACL) GetInstallTokenByUser ¶
func (i *IdentityACL) GetInstallTokenByUser(username string) (*storage.InstallToken, error)
GetInstallTokenByUser returns the token by user ID
func (*IdentityACL) GetInstallTokenForCluster ¶
func (i *IdentityACL) GetInstallTokenForCluster(name string) (*storage.InstallToken, error)
GetInstallTokenForCluster returns the token by cluster name
func (*IdentityACL) GetLocalClusterName ¶
func (i *IdentityACL) GetLocalClusterName() (string, error)
func (*IdentityACL) GetNamespace ¶
func (i *IdentityACL) GetNamespace(name string) (*teleservices.Namespace, error)
GetNamespace returns a namespace by name
func (*IdentityACL) GetNamespaces ¶
func (i *IdentityACL) GetNamespaces() ([]teleservices.Namespace, error)
GetNamespaces returns a list of namespaces
func (*IdentityACL) GetNodes ¶
func (i *IdentityACL) GetNodes(namespace string, opts ...teleservices.MarshalOption) ([]teleservices.Server, error)
GetNodes returns a list of registered servers
func (*IdentityACL) GetOIDCAuthRequest ¶
func (i *IdentityACL) GetOIDCAuthRequest(stateToken string) (*teleservices.OIDCAuthRequest, error)
GetOIDCAuthRequest returns OIDC auth request if found
func (*IdentityACL) GetOIDCConnector ¶
func (i *IdentityACL) GetOIDCConnector(id string, withSecrets bool) (teleservices.OIDCConnector, error)
GetOIDCConnector returns OIDC connector data, withSecrets adds or removes client secret from return results
func (*IdentityACL) GetOIDCConnectors ¶
func (i *IdentityACL) GetOIDCConnectors(withSecrets bool) ([]teleservices.OIDCConnector, error)
GetOIDCConnectors returns registered connectors, withSecrets adds or removes client secret from return results
func (*IdentityACL) GetOperationProvisioningToken ¶
func (i *IdentityACL) GetOperationProvisioningToken(clusterName, operationID string) (*storage.ProvisioningToken, error)
GetOperationProvisioningToken returns token created for the particular site operation
func (*IdentityACL) GetPasswordHash ¶
func (i *IdentityACL) GetPasswordHash(username string) ([]byte, error)
GetPasswordHash returns the password hash for a given user
func (*IdentityACL) GetProvisioningToken ¶
func (i *IdentityACL) GetProvisioningToken(token string) (*storage.ProvisioningToken, error)
GetProvisioningToken returns token by ID
func (*IdentityACL) GetProxies ¶
func (i *IdentityACL) GetProxies() ([]teleservices.Server, error)
GetProxies returns a list of registered proxies
func (*IdentityACL) GetRemoteCluster ¶
func (i *IdentityACL) GetRemoteCluster(clusterName string) (teleservices.RemoteCluster, error)
GetRemoteCluster returns a remote cluster by name
func (*IdentityACL) GetRemoteClusters ¶
func (i *IdentityACL) GetRemoteClusters(opts ...teleservices.MarshalOption) ([]teleservices.RemoteCluster, error)
GetRemoteClusters returns a list of remote clusters
func (*IdentityACL) GetReverseTunnel ¶
func (i *IdentityACL) GetReverseTunnel(name string) (teleservices.ReverseTunnel, error)
GetReverseTunnel returns reverse tunnel by name
func (*IdentityACL) GetReverseTunnels ¶
func (i *IdentityACL) GetReverseTunnels() ([]teleservices.ReverseTunnel, error)
GetReverseTunnels returns a list of registered servers
func (*IdentityACL) GetRole ¶
func (i *IdentityACL) GetRole(name string) (teleservices.Role, error)
GetRole returns a role by name
func (*IdentityACL) GetRoles ¶
func (i *IdentityACL) GetRoles() ([]teleservices.Role, error)
GetRoles returns a list of roles registered with the local auth server
func (*IdentityACL) GetSAMLAuthRequest ¶
func (i *IdentityACL) GetSAMLAuthRequest(stateToken string) (*teleservices.SAMLAuthRequest, error)
GetSAMLAuthRequest returns SAML auth request if found
func (*IdentityACL) GetSAMLConnector ¶
func (i *IdentityACL) GetSAMLConnector(id string, withSecrets bool) (teleservices.SAMLConnector, error)
GetSAMLConnector returns SAML connector data, withSecrets adds or removes client secret from return results
func (*IdentityACL) GetSAMLConnectors ¶
func (i *IdentityACL) GetSAMLConnectors(withSecrets bool) ([]teleservices.SAMLConnector, error)
GetSAMLConnectors returns registered connectors, withSecrets adds or removes client secret from return results
func (*IdentityACL) GetSignupToken ¶
func (i *IdentityACL) GetSignupToken(token string) (*teleservices.SignupToken, error)
GetSignupToken returns signup token data
func (*IdentityACL) GetSignupTokens ¶
func (i *IdentityACL) GetSignupTokens() ([]teleservices.SignupToken, error)
GetSignupTokens returns a list of signup tokens
func (*IdentityACL) GetSiteProvisioningTokens ¶
func (i *IdentityACL) GetSiteProvisioningTokens(siteDomain string) ([]storage.ProvisioningToken, error)
func (*IdentityACL) GetStaticTokens ¶
func (i *IdentityACL) GetStaticTokens() (teleservices.StaticTokens, error)
GetStaticTokens returns static tokens
func (*IdentityACL) GetTOTP ¶
func (i *IdentityACL) GetTOTP(user string) (string, error)
GetTOTP returns the secret key used by the TOTP algorithm to validate tokens
func (*IdentityACL) GetTelekubeUser ¶
func (i *IdentityACL) GetTelekubeUser(username string) (storage.User, error)
GetTelekubeUser finds user by name
func (*IdentityACL) GetToken ¶
func (i *IdentityACL) GetToken(token string) (*teleservices.ProvisionToken, error)
GetToken finds and returns token by id
func (*IdentityACL) GetTokens ¶
func (i *IdentityACL) GetTokens() ([]teleservices.ProvisionToken, error)
GetTokens returns all non-expired tokens
func (*IdentityACL) GetTrustedCluster ¶
func (i *IdentityACL) GetTrustedCluster(name string) (teleservices.TrustedCluster, error)
GetTrustedCluster returns a single TrustedCluster by name.
func (*IdentityACL) GetTrustedClusters ¶
func (i *IdentityACL) GetTrustedClusters() ([]teleservices.TrustedCluster, error)
GetTrustedClusters returns all TrustedClusters in the backend.
func (*IdentityACL) GetTunnelConnections ¶
func (i *IdentityACL) GetTunnelConnections(clusterName string, opts ...teleservices.MarshalOption) ([]teleservices.TunnelConnection, error)
GetTunnelConnections returns tunnel connections for a given cluster
func (*IdentityACL) GetU2FRegisterChallenge ¶
func (i *IdentityACL) GetU2FRegisterChallenge(token string) (*u2f.Challenge, error)
GetU2FRegisterChallenge returns a U2F challenge for a new user corresponding to the token
func (*IdentityACL) GetU2FRegistration ¶
func (i *IdentityACL) GetU2FRegistration(user string) (*u2f.Registration, error)
GetU2FRegistration returns a U2F registration from a valid register response
func (*IdentityACL) GetU2FRegistrationCounter ¶
func (i *IdentityACL) GetU2FRegistrationCounter(user string) (counter uint32, e error)
GetU2FRegistrationCounter upserts a counter associated with a U2F registration
func (*IdentityACL) GetU2FSignChallenge ¶
func (i *IdentityACL) GetU2FSignChallenge(user string) (*u2f.Challenge, error)
GetU2FSignChallenge returns a U2F sign (auth) challenge
func (*IdentityACL) GetUsedTOTPToken ¶
func (i *IdentityACL) GetUsedTOTPToken(user string) (string, error)
GetUsedTOTPToken returns the last successfully used TOTP token. If no token is found zero is returned.
func (*IdentityACL) GetUser ¶
func (i *IdentityACL) GetUser(username string) (teleservices.User, error)
GetUser finds user by email
func (*IdentityACL) GetUserByGithubIdentity ¶
func (i *IdentityACL) GetUserByGithubIdentity(id teleservices.ExternalIdentity) (teleservices.User, error)
GetUserByGithubIdentity returns a user by its specified Github Identity, returns first user specified with this identity
func (*IdentityACL) GetUserByOIDCIdentity ¶
func (i *IdentityACL) GetUserByOIDCIdentity(id teleservices.ExternalIdentity) (teleservices.User, error)
GetUserByOIDCIdentity returns a user by its specified SAML Identity, returns first user specified with this identity
func (*IdentityACL) GetUserBySAMLIdentity ¶
func (i *IdentityACL) GetUserBySAMLIdentity(id teleservices.ExternalIdentity) (teleservices.User, error)
GetUserBySAMLIdentity returns a user by its specified SAML Identity, returns first user specified with this identity
func (*IdentityACL) GetUserInvites ¶
func (i *IdentityACL) GetUserInvites(accountID string) ([]storage.UserInvite, error)
GetUserInvites returns user invites
func (*IdentityACL) GetUserLoginAttempts ¶
func (i *IdentityACL) GetUserLoginAttempts(user string) ([]teleservices.LoginAttempt, error)
GetUserLoginAttempts returns user login attempts
func (*IdentityACL) GetUserToken ¶
func (i *IdentityACL) GetUserToken(tokenID string) (*storage.UserToken, error)
GetUserToken returns information about this signup token based on its id
func (*IdentityACL) GetUsers ¶
func (i *IdentityACL) GetUsers() ([]teleservices.User, error)
func (*IdentityACL) GetUsersByAccountID ¶
func (i *IdentityACL) GetUsersByAccountID(accountID string) ([]storage.User, error)
GetUsersByAccountID returns a list of users for given accountID
func (*IdentityACL) GetWebSession ¶
func (i *IdentityACL) GetWebSession(username, sid string) (teleservices.WebSession, error)
GetWebSession returns a web session state for a given user and session id
func (*IdentityACL) LoginWithInstallToken ¶
func (i *IdentityACL) LoginWithInstallToken(token string) (*LoginResult, error)
func (*IdentityACL) ReleaseLock ¶
func (i *IdentityACL) ReleaseLock(token string) error
ReleaseLock releases lock by token name
func (*IdentityACL) ResetPassword ¶
func (i *IdentityACL) ResetPassword(username string) (string, error)
ResetPassword resets the user password and returns the new one
func (*IdentityACL) ResetUserWithToken ¶
func (i *IdentityACL) ResetUserWithToken(req UserTokenCompleteRequest) (teleservices.WebSession, error)
ResetUserWithToken sets user password based on user secret token and logs in user after that in case of successful operation
func (*IdentityACL) SetAuth ¶
func (i *IdentityACL) SetAuth(auth teleauth.ClientI)
func (*IdentityACL) SetAuthPreference ¶
func (i *IdentityACL) SetAuthPreference(authP teleservices.AuthPreference) error
SetAuthPreference updates cluster auth preference
func (*IdentityACL) SetClusterConfig ¶
func (i *IdentityACL) SetClusterConfig(config teleservices.ClusterConfig) error
SetClusterConfig updates cluster configuration
func (*IdentityACL) SetClusterName ¶
func (i *IdentityACL) SetClusterName(clusterName teleservices.ClusterName) error
SetClusterName updates cluster name
func (*IdentityACL) SetStaticTokens ¶
func (i *IdentityACL) SetStaticTokens(tokens teleservices.StaticTokens) error
SetStaticTokens updates static tokens
func (*IdentityACL) TryAcquireLock ¶
func (i *IdentityACL) TryAcquireLock(token string, ttl time.Duration) error
TryAcquireLock grabs a lock that will be released automatically in ttl time
func (*IdentityACL) UpdateInstallToken ¶
func (i *IdentityACL) UpdateInstallToken(req InstallTokenUpdateRequest) (*storage.InstallToken, teleservices.Role, error)
UpdateInstallToken updates an existing install token and changes role for the user associated with the install token to reduce it's scope to the just created cluster
func (*IdentityACL) UpdatePassword ¶
func (i *IdentityACL) UpdatePassword(username string, oldPassword, newPassword Password) error
UpdatePassword updates users password based on the old password
func (*IdentityACL) UpdateUser ¶
func (i *IdentityACL) UpdateUser(username string, req storage.UpdateUserReq) error
UpdateUser updates certain user fields
func (*IdentityACL) UpsertAuthServer ¶
func (i *IdentityACL) UpsertAuthServer(server teleservices.Server) error
UpsertAuthServer registers auth server presence, permanently if ttl is 0 or for the specified duration with second resolution if it's >= 1 second
func (*IdentityACL) UpsertCertAuthority ¶
func (i *IdentityACL) UpsertCertAuthority(ca teleservices.CertAuthority) error
UpsertCertAuthority updates or inserts a new certificate authority
func (*IdentityACL) UpsertGithubConnector ¶
func (i *IdentityACL) UpsertGithubConnector(connector teleservices.GithubConnector) error
UpsertGithubConnector upserts a Github connector
func (*IdentityACL) UpsertHOTP ¶
func (i *IdentityACL) UpsertHOTP(username string, otp *hotp.HOTP) error
UpsertHOTP upserts HOTP state for user
func (*IdentityACL) UpsertLocalClusterName ¶
func (i *IdentityACL) UpsertLocalClusterName(clusterName string) error
func (*IdentityACL) UpsertNamespace ¶
func (i *IdentityACL) UpsertNamespace(n teleservices.Namespace) error
UpsertNamespace upserts namespace
func (*IdentityACL) UpsertNode ¶
func (i *IdentityACL) UpsertNode(server teleservices.Server) error
UpsertNode registers node presence, permanently if ttl is 0 or for the specified duration with second resolution if it's >= 1 second
func (*IdentityACL) UpsertNodes ¶
func (i *IdentityACL) UpsertNodes(namespace string, servers []teleservices.Server) error
UpsertNodes upserts multiple nodes
func (*IdentityACL) UpsertOIDCConnector ¶
func (i *IdentityACL) UpsertOIDCConnector(connector teleservices.OIDCConnector) error
UpsertOIDCConnector upserts OIDC Connector
func (*IdentityACL) UpsertPassword ¶
func (i *IdentityACL) UpsertPassword(username string, password []byte) error
UpsertPassword upserts new password and HOTP token
func (*IdentityACL) UpsertPasswordHash ¶
func (i *IdentityACL) UpsertPasswordHash(username string, hash []byte) error
UpsertPasswordHash upserts user password hash
func (*IdentityACL) UpsertProxy ¶
func (i *IdentityACL) UpsertProxy(server teleservices.Server) error
UpsertProxy registers proxy server presence, permanently if ttl is 0 or for the specified duration with second resolution if it's >= 1 second
func (*IdentityACL) UpsertReverseTunnel ¶
func (i *IdentityACL) UpsertReverseTunnel(tunnel teleservices.ReverseTunnel) error
UpsertReverseTunnel upserts reverse tunnel entry temporarily or permanently
func (*IdentityACL) UpsertRole ¶
func (i *IdentityACL) UpsertRole(role teleservices.Role, ttl time.Duration) error
UpsertRole updates parameters about role
func (*IdentityACL) UpsertSAMLConnector ¶
func (i *IdentityACL) UpsertSAMLConnector(connector teleservices.SAMLConnector) error
UpsertSAMLConnector upserts SAML Connector
func (*IdentityACL) UpsertSignupToken ¶
func (i *IdentityACL) UpsertSignupToken(token string, tokenData teleservices.SignupToken, ttl time.Duration) error
UpsertSignupToken upserts signup token - one time token that lets user to create a user account
func (*IdentityACL) UpsertTOTP ¶
func (i *IdentityACL) UpsertTOTP(user string, secretKey string) error
UpsertTOTP upserts TOTP secret key for a user that can be used to generate and validate tokens.
func (*IdentityACL) UpsertToken ¶
UpsertToken adds provisioning tokens for the auth server
func (*IdentityACL) UpsertTrustedCluster ¶
func (i *IdentityACL) UpsertTrustedCluster(trustedCluster teleservices.TrustedCluster) (teleservices.TrustedCluster, error)
UpsertTrustedCluster creates or updates a TrustedCluster in the backend.
func (*IdentityACL) UpsertTunnelConnection ¶
func (i *IdentityACL) UpsertTunnelConnection(conn teleservices.TunnelConnection) error
UpsertTunnelConnection upserts tunnel connection
func (*IdentityACL) UpsertU2FRegisterChallenge ¶
func (i *IdentityACL) UpsertU2FRegisterChallenge(token string, u2fChallenge *u2f.Challenge) error
UpsertU2FRegisterChallenge upserts a U2F challenge for a new user corresponding to the token
func (*IdentityACL) UpsertU2FRegistration ¶
func (i *IdentityACL) UpsertU2FRegistration(user string, u2fReg *u2f.Registration) error
UpsertU2FRegistration upserts a U2F registration from a valid register response
func (*IdentityACL) UpsertU2FRegistrationCounter ¶
func (i *IdentityACL) UpsertU2FRegistrationCounter(user string, counter uint32) error
UpsertU2FRegistrationCounter upserts a counter associated with a U2F registration
func (*IdentityACL) UpsertU2FSignChallenge ¶
func (i *IdentityACL) UpsertU2FSignChallenge(user string, u2fChallenge *u2f.Challenge) error
UpsertU2FSignChallenge upserts a U2F sign (auth) challenge
func (*IdentityACL) UpsertUsedTOTPToken ¶
func (i *IdentityACL) UpsertUsedTOTPToken(user string, otpToken string) error
UpsertUsedTOTPToken upserts a TOTP token to the backend so it can't be used again during the 30 second window it's valid.
func (*IdentityACL) UpsertUser ¶
func (i *IdentityACL) UpsertUser(teleuser teleservices.User) error
UpsertUser creates a new user or updates existing user In case of AgentUser it will generate a random token - API key In case of AdminUser or Regular user it requires a password to be set and uses bcrypt to store password's hash
func (*IdentityACL) UpsertWebSession ¶
func (i *IdentityACL) UpsertWebSession(username, sid string, session teleservices.WebSession) error
UpsertWebSession updates or inserts a web session for a user and session id
type InstallTokenUpdateRequest ¶
type InstallTokenUpdateRequest struct { // Token identifies the install token Token string `json:"token"` // SiteDomain defines the domain to associate the install token with SiteDomain string `json:"site_domain"` // Repository is a repository with app packages Repository string `json:"repository"` }
InstallTokenUpdateRequest defines a request to update an install token
func (InstallTokenUpdateRequest) Check ¶
func (r InstallTokenUpdateRequest) Check() error
Check verifies validity of this request object
type KeyStore ¶
type KeyStore struct {
// contains filtered or unexported fields
}
KeyStore stores logins for remote portals on computers
func NewCredsService ¶
func NewCredsService(cfg CredsConfig) (*KeyStore, error)
func (*KeyStore) DeleteLoginEntry ¶
DeleteLoginEntry deletes the login entry for the specified opsCenterURL from the storage
func (*KeyStore) GetCurrentOpsCenter ¶
func (*KeyStore) GetLoginEntries ¶
func (c *KeyStore) GetLoginEntries() ([]LoginEntry, error)
GetLoginEntries lists all login entries
func (*KeyStore) GetLoginEntry ¶
func (c *KeyStore) GetLoginEntry(opsCenterURL string) (*LoginEntry, error)
GetLoginEntry returns the login entry for the specified opsCenterURL from the storage
func (*KeyStore) SetCurrentOpsCenter ¶
func (*KeyStore) UpsertLoginEntry ¶
func (c *KeyStore) UpsertLoginEntry(l LoginEntry) (*LoginEntry, error)
UpsertLoginEntry creates or updates login entry for remote OpsCenter
type LoginEntry ¶
type LoginEntry storage.LoginEntry
LoginEntry represents local login entry for local agents running on hosts TODO: We don't want users to refer to storage package, idea, may be make it internal go package?
func (LoginEntry) String ¶
func (l LoginEntry) String() string
type LoginResult ¶
type LoginResult struct { // Email identifies the user to log in Email string `json:"email"` // SessionID defines the ID of the web session created as a result of // logging in SessionID string `json:"session_id"` }
LoginResult defines the result of logging a user in
type Password ¶
type Password []byte
Password is a helper type that enforces some sanity constraints on the password entered by user
type RemoteAccessUser ¶
type RemoteAccessUser storage.RemoteAccessUser
type SignupResult ¶
type SignupResult struct { Account Account `json:"account"` User storage.User `json:"user"` WebSession teleservices.WebSession `json:"web_session"` }
SignupResult represents successful signup result: * Account that was created * User that was created * WebSession initiated for this user
type UserTokenCompleteRequest ¶
type UserTokenCompleteRequest struct { // SecondFactorToken is 2nd factor token value SecondFactorToken string `json:"second_factor_token"` // TokenID is this token ID TokenID string `json:"token"` // Password is user password Password Password `json:"password"` // U2FRegisterResponse is U2F register response U2FRegisterResponse u2f.RegisterResponse `json:"u2f_register_response"` }
UserTokenCompleteRequest defines a request to complete an action associated with the user token
type Users ¶
type Users interface { // AuthenticateUser authenticates a user by given credentials, it supports // Bearer tokens and baisc auth methods AuthenticateUser(httplib.AuthCreds) (storage.User, teleservices.AccessChecker, error) // GetTelekubeUser returns user by name GetTelekubeUser(name string) (storage.User, error) // GetAccessChecker returns access checker for user based on users roles GetAccessChecker(user storage.User) (teleservices.AccessChecker, error) // UpdateUser updates certain user fields UpdateUser(name string, req storage.UpdateUserReq) error // Migrate is called to migrate legacy data structures to the new format Migrate() error // SetAuth sets auth handler for users service // this is workaround to integrate users service and teleport's // auth service until we figure out a better interface/way to do it SetAuth(auth teleauth.ClientI) // GetSiteProvisioningTokens returns a list of tokens available for the site GetSiteProvisioningTokens(siteDomain string) ([]storage.ProvisioningToken, error) // GetProvisioningToken returns token by its ID GetProvisioningToken(token string) (*storage.ProvisioningToken, error) // GetOperationProvisioningToken returns token created for the particular site operation GetOperationProvisioningToken(clusterName, operationID string) (*storage.ProvisioningToken, error) // CreateProvisioningToken creates a provisioning token from the specified template CreateProvisioningToken(storage.ProvisioningToken) (*storage.ProvisioningToken, error) // CreateInstallToken creates a new one-time installation token CreateInstallToken(storage.InstallToken) (*storage.InstallToken, error) // GetInstallToken returns token by its ID GetInstallToken(token string) (*storage.InstallToken, error) // GetInstallTokenByUser returns token by user ID GetInstallTokenByUser(email string) (*storage.InstallToken, error) // GetInstallTokenForCluster returns token by cluster name GetInstallTokenForCluster(name string) (*storage.InstallToken, error) // UpdateInstallToken updates an existing install token and changes role // for the user associated with the install token to reduce it's scope // to the just created cluster UpdateInstallToken(req InstallTokenUpdateRequest) (*storage.InstallToken, teleservices.Role, error) // LoginWithInstallToken logs a user using a one-time install token LoginWithInstallToken(token string) (*LoginResult, error) // CreateAgent creates a new "robot" agent user used by various automation tools // (e.g. release automation) with correct privileges CreateAgent(user storage.User) (storage.User, error) // CreateRemoteAgent creates a new site agent user that replicates the agent of a remote site. // The user usually has a bound API key which is replicated locally CreateRemoteAgent(user RemoteAccessUser) (storage.User, error) // CreateAgentFromLoginEntry creates a new agent user from the provided // login entry CreateAgentFromLoginEntry(cluster string, entry storage.LoginEntry, admin bool) (storage.User, error) // CreateGatekeeoer creates a new remote access agent user used to connect remote sites // to Ops Centers CreateGatekeeper(user RemoteAccessUser) (*RemoteAccessUser, error) // CreateClusterAgent creates a new cluster agent user used during cluster operations // like install/expand and does not have any administrative privileges CreateClusterAgent(cluster string, agent storage.User) (storage.User, error) // CreateClusterAdminAgent creates a new privileged cluster agent user used during operations // like install/expand on master nodes, and has advanced administrative operations // e.g. create and delete roles, set up OIDC connectors CreateClusterAdminAgent(cluster string, agent storage.User) (storage.User, error) // CreateLocalAdmin creates a new admin user for the locally running site CreateAdmin(email, password string) error // GetAPIKeys returns a list of API keys for the specified user GetAPIKeys(userEmail string) ([]storage.APIKey, error) // GetAPIKeyByToken returns an API key for the specified token GetAPIKeyByToken(token string) (*storage.APIKey, error) // CreateAPIKey creates API key for agent user CreateAPIKey(key storage.APIKey, upsert bool) (*storage.APIKey, error) // DeleteAPIKey creates API Key for agent user DeleteAPIKey(userEmail, token string) error }
Users represents operations on users and permssions, it takes care of authentication and authorization
Directories ¶
Path | Synopsis |
---|---|
package credssuite contains a storage acceptance test suite that is service implementation independent
|
package credssuite contains a storage acceptance test suite that is service implementation independent |