Teleport Workload Identity with SPIFFE: Achieving Zero Trust in Modern Infrastructure
May 23
Virtual
Register Today
Teleport logoTry For Free
Fork me on GitHub

Teleport

User Types

This guide explains the different kinds of users in Teleport, how they are created, and their properties.

Local users

Local users are created in Teleport. They are not coming from an external system like an identity provider.

Local users can be created via the CLI (tctl users add), by applying a user resource manifest (tctl create -f user.yaml) or via the web UI. Their roles and traits can be modified directly in Teleport.

Those users can connect to Teleport directly via username/password and/or additional authentication factors such as WebAuthn physical tokens, passkeys, or one-time passwords.

Local user login can be disabled via cluster_auth_preference or teleport.yaml. Disabling local authentication is required for FIPS/FedRAMP compliance .

Special case: Bots

Machine ID provides machines with an identity that can authenticate to the Teleport cluster. This identity is known as a bot. Bots are represented in Teleport by a user and a role resource and can be created via the tctl bots add command.

Unlike human users, who use a password, MFA, or SSO, bot users join the cluster as Teleport services using a join method. They can still join even if local auth is disabled.

See the Machine ID introduction for more information.

SSO users

Single Sign-On (SSO) users are imported in Teleport from an external identity provider. Teleport contains a user resource representing those users, but it's only a representation of a user of a remote system.

Remote users don't perform their login challenge in Teleport. They are redirected to their identity provider (IdP) to enter their password, MFA, or any authentication method required by the upstream SSO provider. Teleport is not aware of the authentication method not the user credentials, it trusts the IdP response.

If teleport.auth_service.authentication.second_factor is webauthn, Teleport might ask for an additional MFA for administrative actions. This protects against IdP compromise.

SSO users cannot be edited via tctl, or via any other IaC tooling like Terraform or the Teleport Kubernetes Operator. They are managed by Teleport.

Temporary users

Users logging in via GitHub, SAML, or OIDC connectors are created in Teleport after a successful login. At that time, their roles and traits are computed according to the connector mappings.

Those users are short-lived: they are created when a Teleport session is opened and automatically expire. The expiry is dynamically computed based on the IdP answer validity, the max session duration allowed by the user roles, and cannot exceed 30 hours. Those users cannot be edited via tctl, only deleted.

See the SSO setup guides to learn how to setup an authentication connector and allow user to log in via an IdP.

Synced users

Since version 15, Teleport supports fetching users from external identity providers like Okta.

Synchronizing users from the external IdP allows all users to be represented in Teleport, whether they logged in Teleport or not. The benefits of such integration are:

  • Automatic user locking and deletion if the user is suspended or removed in the IdP.
  • Ability to see all users within Teleport regardless of the last login date.
  • All IdP users are displayed in Teleport Access Graph.

The Okta synchronization service is in charge of creating new users when they are created in Okta, and locking/deleting users if they get deactivated/removed in Okta.

Those users can be identified by the label teleport.dev/origin: okta and cannot be edited via tctl, only deleted.