111 Commits
Author SHA1 Message Date
Tiago Silva 4d3765c02d Use split Identity Security entitlements (#68944)
Gate Access Graph, Activity Center, and Session Summaries consumers on
their dedicated entitlements.

Treat legacy Policy as a fallback for missing split entitlements across
module, proto, web config, tctl, and UI config paths so newer clients
remain compatible with older clusters and proxies.

Continues
- https://github.com/gravitational/teleport/pull/66571
- https://github.com/gravitational/teleport/pull/64340
- https://github.com/gravitational/teleport.e/pull/8722
- https://github.com/gravitational/teleport.e/pull/8725
- https://github.com/gravitational/teleport.e/pull/8791
- https://github.com/gravitational/teleport.e/pull/8792

Signed-off-by: Tiago Silva <tiago.silva@goteleport.com>
2026-07-31 09:02:59 +00:00
Cam Hutchison 54273f91fe fips: Switch to Go-native FIPS140 builds from boring crypto (#66690)
* fips: Switch to Go-native FIPS140 builds from boring crypto

Switch to using Go-native FIPS140 builds, using the GOFIPS140 build
environment variable, from the old boringcrypto FIPS140 build. The
latter is no longer supported now that Go supports FIPS140 builds
natively.

FIPS140 is enabled across the build when FIPS=1 is passed to `make` when
building. The main package of the binaries import the `lib/fipscheck`
package to ensure that a binary is not switched into or out of FIPS140
mode at launch time using the GODEBUG environment variable.

FIPS140 builds of OSS Teleport are not a supported configuration,
however the base of the Enterprise edition is the OSS repository, so
most of the changes are in this repository. Building OSS Teleport in
FIPS140 mode may not be complete.

* fips: Stop using fips buildbox

Stop using the fips buildbox for fips release builds, and just use the
normal centos7 buildbox. The fips buildbox sets
`GOEXPERIMENT=boringcrypto` which should no longer be set when building
with Go-native FIPS140. The fips buildbox is otherwise identical to the
non-fips buildbox.
2026-05-20 00:42:41 +00:00
Tiago Silva 9a87bba0ef Add OSS entitlement definitions for ActivityCenter and SessionSummaries (#66571)
Add ActivityCenter and SessionSummaries to the shared entitlement list and Web UI default entitlement map.

Signed-off-by: Tiago Silva <tiago.silva@goteleport.com>
2026-05-18 09:54:52 +00:00
Cam HutchisonandCam Hutchison 432428fc57 fips: Rename IsBoringBinary to IsFIPSBuild throughout (#66346)
* fips: Rename IsBoringBinary to IsFIPSBuild throughout

Rename the function and method `IsBoringBinary` to `IsFIPSBuild`
throughout the code base and change references to boringcrypto to
fips140 or similar. This is part of removing boringcrypto from the
build, replacing it with Go-native FIPS140.

There are still some references to "boring":
* The PingResponse message has a field IsBoring in authservice.proto.
  This cannot be changed without breaking source compatibility in api/
* The example in examples/teleport-usage has an explicit check for the
  boring package to set an AWS FIPS option. This will be changed when
  the actual change to Go-native FIPS is done.
* Rust references to boringsys - this is still used in Rust and will not
  be changed when using Go-native FIPS.
* The actual import of boring to use it. This will be changed when using
  Go-Native FIPS.

This rename is separate from the Go-native FIPS implementation so it can
be backported to keep the branches close, to avoid unnecessary
conflicts.

* fips: Add "crypto/tls/fipsonly" import for boring builds

Import the "crypto/tls/fipsonly" package when building in fips mode.
This import is also done in the Enterprise repo with some rename magic
so that the file the import is in only exists for fips builds. This was
necessary when boringcrypto was only available in a special branch of
the Go toolchain, but has not been necessary since Go 1.19 when
boringcrypto was brought into the proper toolchain.

Moving this here makes the enterprise makefile and fips build simpler.
There is no need to split this now.

The import causes TLS negotiation to reject non-FIPS140 ciphers.

---------

Co-authored-by: Cam Hutchison <camh@xdna.net>
2026-05-02 10:58:23 +00:00
Nick Marais 194536acb1 feat(beams): Entitlement and BeamsUI mode (#65083)
* Register beams entitlement and UI mode

# Conflicts:
#	api/client/proto/authservice.pb.go

* Register in web UI

* Revert moving t.Cleanup

* Prevent BeamsUI being enabled without the Beams entitlement

* Add string length safety

* Reuse cluster for tests
2026-04-09 15:45:53 +00:00
Erik Margetis c75ea42d36 Add access graph entitlement (#64340)
* adding access graph entitlement

* removing logic change
2026-03-12 21:25:12 +00:00
nixpigandMarek Smoliński 4726a384c0 Update suggested reviewers to include owners of JIT access lists (#64046)
* Update suggested reviewers to include owners of JIT access lists

* Replace undefined with empty array so data serialises without error

* Use consistent proto naming

Co-authored-by: Marek Smoliński <marek@goteleport.com>

* Remove unused req return value from reviewer list function

* Remove suggested reviewers logic from OSS API

* Tests and tidy up

* Refactoring

* wip

* Remove changes addresses in a separate PR

* Remove proto for reviewers

* Add godoc

---------

Co-authored-by: Marek Smoliński <marek@goteleport.com>
2026-03-06 10:44:35 +00:00
Michelle Bergquist 534c011ae0 Remove deprecated features and entitlement backfills (#59618) 2026-03-02 19:08:42 +00:00
Dustin Specker f43b20d5ce feat(entitlements): support WorkloadClusters (#62868) 2026-02-03 17:09:56 +00:00
rosstimothy 21df97f5e1 Inject modules into the AccessListService (#62804)
Contributes to https://github.com/gravitational/teleport/issues/62799.
2026-01-16 16:53:41 +00:00
Zac Bergquist c46cf7bef8 Close auth servers in tests (#62051) 2025-12-14 20:48:53 +00:00
Luke Okraszewski 8634aa21e3 [api] Add ListLocks (#60344)
This commits deperecates GetLocks, which should be replaced by a paginated counterpart:
ListLocks.

This commit also migrates call sites in OSS which are potentially unbounded.

Towards: gravitational/teleport.e/issues/6759
Changelog: Add paginated API ListLocks, deprecate GetLocks
2025-11-06 10:17:44 +00:00
Forrest 55add2433e scoped access resource verbs (#60066) 2025-10-28 19:10:58 +00:00
Bartosz Leper f3ad993adc Add support for Bedrock models to the session summarizer (#60030)
* Add support for Bedrock models to the session summarizer

- Add protocol buffers
- Add validation
- Add dependency on Bedrock SDK
- Move GenerateTestSession to the OSS code

* Tidy up the go.mod file

* Enable/disable Bedrock on the auth server level

* Add bedrockruntime to e_imports, rerun mod-tidy-all

* Add a comment to GetModules()

* Revert e/ change
2025-10-22 05:12:45 +00:00
matheus 8c85965afd Add ClientIPRestrictions entitlement (#60053)
* Add Client IP Restriction entitlement

* Add Client IP Restriction entitlement

* Add new entitlement to pb Features

* Fix tests

* Fix entitlements.ts using `CloudIPRestrictions`
2025-10-17 16:30:10 +00:00
Maxim 5f272ed468 Add RequestKind field to Access Requests (#54978)
* feat: Add `RequestKind` field to Access Requests

* fix: Move long-term resource grouping validation to auth

* fix: Preserve short-term fields for backwards compat
2025-08-19 19:10:20 +00:00
rosstimothy 8f56697f76 Migrate all tests to use lib/auth/authtest helpers (#57030)
Removes the auth test helpers in lib/auth/helpers.go and
lib/auth/helpers_mfa.go and converts all tests to use the
equivalent helpers from the authtest package.

The e reference was also updated to include https://github.com/gravitational/teleport.e/pull/6932.

Updates https://github.com/gravitational/teleport/issues/51023.
2025-07-24 18:27:14 +00:00
rosstimothy 981fbf5ad1 Remove legacy modules test helpers (#57040)
All tests now use lib/modules/modulestest allowing the legacy
helpers to be removed. Includes an update of teleport.e to
include https://github.com/gravitational/teleport.e/pull/6890.
2025-07-23 11:07:26 +00:00
rosstimothy 07f75207e5 Extend modulestest.SetTestModules to support benchmark tests (#56781) 2025-07-15 14:03:19 +00:00
rosstimothy 2afdce29c5 Introduce modulestest package (#56721)
The new package is meant to house a test friendly implementation
of modules.Modules. Due to the pervasive and global nature of
modules, this package also contains a copy of of
modules.SetTestModules. In a perfect world this function wouldn't
be needed and modules would be injected where required, however,
that would take considerable effort. The existing test modules
are temporarily left in place until the enterprise tests can be
updated to use modulestest.
2025-07-14 21:55:07 +00:00
Zac Bergquist a12def583a Apply remaining modernize changes. (#56037)
This is the last of this series of updates.
2025-06-25 21:25:29 +00:00
Stephen Levine 32929a13a2 [teleport-update] Add entitlement for unlimited managed updates (#53603)
* Add UnlimitedManagedUpdates entitlement

* tests

* more tests

* rename
2025-05-21 21:19:12 +00:00
rosstimothy 8e99727c36 Move auth preference module validation to RPC layer (#54687)
The module validation rejects auth preferences that have second
factor disabled without the environment variable override. Doing
this in the storage layer means that in order to disable second
factor the environment variable needs to be set on _all_ teleport
processes not just Auth. This can result in caches of downstream
agents from becoming healthy until the manual override is applied.
The intent is to prevent modifying an the auth preference to disable
second factor, which when moved to the RPC layer, has the same
affect without the possibility of caches performing extra validation.
2025-05-13 15:03:53 +00:00
Michael f85a0be6b7 Add AccessGraphDemoMode entitlement (#54112) 2025-04-22 15:43:59 +00:00
Michelle Bergquist d4434bb379 Drop cloud anon key from auth proto (#53970) 2025-04-15 21:39:09 +00:00
Brian Joerger 58f71101d8 feat: Hardware Key Agent - Add api/utils/keys/hardwarekey package (#53671)
* Move hardware key files into new hardwarekey package.

* Tidy up PIVSlot logic and remove its piv-go dependency.

* Add godoc comments to cliPrompt methods; Update cliprompt.go license year.

* Add godocs.
2025-04-07 19:31:11 +00:00
Zac Bergquist 7c92500164 Fix TELEPORT_ALLOW_NO_SECOND_FACTOR (#51676)
Some parts of Teleport required this env var to be set to "true"
while other parts required a value of "yes" - this made it
impossible to pass all of the checks.

Use ParseBool instead to be more generous in what values are allowed.
2025-01-31 22:36:29 +00:00
rosstimothy 02864066ae Revert "Remove 2FA bypass (#47288)" (#49671)
This reverts commit 1952dd8d24.
2024-12-03 13:53:10 +00:00
rosstimothy 56d85facba Restore S3 FIPS and custom endpoint capabilities (#48684)
When migrating the S3 events handler to use aws-sdk-go-v2 applying
the FIPS settings and custom endpoint were inadvertently dropped.
This restores the functionality, while also adding tests to ensure
that they are always respected going forward.

A similar test was added to the dynamodb events handler as well to
prevent any regressions with FIPS settings there.
2024-11-12 16:45:53 +00:00
Alex McGrathandMaxim Dietz fa97b8f90d feat: Allow including Access Lists as nested members and owners (#38738)
- Recursively check for accesslist membership

- Allow adding/removing/listing included access lists in acl commands

- Add a recursive test

- Use dynamic access lists structure from RFD

- Resolve proto changes

- Exclude 'list' members from Access List memberCount

- Calc Access List member count with members of type 'list' excluded,
  return seperately to front end

- Update examples/integrations

- Update crd docs

- Update tf docs

- Perform calculation of inherited roles/traits to AccessList service in
  order to utilize cache and minimize number of requests.

- Grant Okta integration RO for Access Lists

- Update AccessListMember-* events

- Include count for inherited grants

- Include MembershipKind of affected member(s)

- Emit inherited grants / members' MembershipKind for AccessListMember-*
  events

- Update notified owners for Access Requests

- Ensure dynamic owners are notified for Access Requests

- Ensure dynamic owners are notified via Slack integration

- Optionally pass an AbortSignal to `fetchAccessLists` in Web UI

- Replace usages of `services.IsAccessListOwner/IsAccessListMember` with
  equivelant funcs from `Hierarchy`

- Remove final references to AccessListMembershipChecker

- Don't allow ACL deletion when member/owner in other lists

- Guard Access List deletion behind membership/ownership checks for List

- Expose Hierarchy func to recursively get all members

- Tidy UserLoginStateGenerator logic involving ACL Membership/Ownership

Co-authored-by: Maxim Dietz <maxim.dietz@goteleport.com>
2024-11-01 22:07:36 +00:00
Michelle Bergquist 6e1189da89 Use cloud anonymization key (#46819)
- When present, is used to anonymize events
2024-10-30 03:11:23 +00:00
Nic Klaassen 0a0d4137db eliminate rsa.GenerateKey and lib/auth/native (#47768) 2024-10-21 20:55:22 +00:00
Brian Joerger dbe08e0430 Add second_factors (#47233)
* Add proto.

* Add decoding logic for SecondFactorType.

* Update auth preference methods to use and prefer SecondFactors.

* Add fileconf and warning logs.

* Fix tests.

* Address comments.

* Address comments.

* Validate SecondFactor; Disallow SecondFactor and SecondFactors to both be set.

* Address comments.

* Treat second factor SSO as SecondFactor=on; Prevent local user lockout when SSO is the only enabled MFA method; Ensure SecondFactors=[] is disallowed.

* Upate terraform schema, docs, crds.

* Address comments.

* Address comments.

* Fix lint, fix test.
2024-10-11 00:02:39 +00:00
rosstimothy 1952dd8d24 Remove 2FA bypass (#47288)
v16 removed the ability to disable second factor authentication,
however, a bypass was left around to allow users to transition.
Starting in v17, the bypass will no longer work and all clusters
_must_ be configured with 2FA.
2024-10-08 15:15:21 +00:00
Yassine Bounekhla b30e1ace06 update support page (#46911) 2024-10-03 18:45:08 +00:00
matheus 6204578b68 Add LicenseAutoUpdate entitlement (#46959)
* Add LicenseAutoUpdate entitlement

* Update tests
2024-10-01 11:42:31 +00:00
Trent Clarke 736c86f88f Update AccessList Entitlement Enforcement to handle infinite limit (#44318)
* Update AccessList Entitlement Enforcement to handle infinite limit

The AccessList service was not correctly handling a zero-value limit
(i.e. an infinite limit) when checking to see if creating an
AccessList would breach the cluster Access List entitlement.

This patch:
 * Adds a centralized implementation of a limit check, so that we
   only have to get the calculation right once.
 * Tests for same
 * Updates the AccessList limit check to use the new limit check
 * Adds table-driven tests to exercise the limit check in various
   scenarios, replacing several almost identical tests.

* Review feedback
2024-07-18 06:40:46 +00:00
Michelle Bergquist c97533ed22 Surface entitlements to auth (#42932) 2024-07-09 16:04:48 +00:00
Michelle Bergquist 70b95e385d Surface Cloud Entitlements (#42394)
- Cloud entitlements are now available on Features
- Legacy logic applies if entitlements are not present
2024-06-28 00:22:13 +00:00
Jakub Nyckowski bfaa3340e8 Remove Assist (#42657)
* Remove assist feature

* Fix some tests

* Remove unused functions

* Fix ut

Remove more stuff
2024-06-10 20:57:05 +00:00
Alex McGrath 72f4a10366 Log information about second_factors removal at startup (#41416)
* Log information on second_factors removal at startup

* include upgrade instructions as a usermessage

* resolve comments
2024-06-05 20:56:07 +00:00
Michael b85d1a6e0e Include BuildCommunity in built type checks (#42391)
* Include BuildCommunity in built type checks

This commit will add two new methods to the modules interface,
IsEnterprise and IsOSS. This is to help alieviate any pain around the
code base that used to look specifically for BuildOSS. Now that we have
two "oss types" (oss and community), we can use these methods to do
enterprise/oss checks, rather than specifically looking at the build
type. This also will allow any future build types to not affect these
checks again in the future.

* Update e
2024-06-04 20:10:38 +00:00
Michael 265b58cb7e Apply new logos based on license (#41294) 2024-05-15 19:09:33 +00:00
Alex McGrath 65459e872e Remove support for disabling second factor authentication (#40956)
* dont allow disabling second factor

* update docs for 2fa change

* add environmental variable to work around disabled 2fa

* check if its cloud

* update todos

* add a test

* introduce insecure test mode

* fixes for tests
2024-05-10 11:57:34 +00:00
ddbd9eefed Replace isTeam with new flags (#39794)
* Add new flags to modules

* Add deprecated comments to isTeam

* Make support flag an enum

* Add a TODO instead of deprecating flag right away

Co-authored-by: Alan Parra <alan.parra@goteleport.com>

* Add gogoproto.jsontag to new fields

* remove meaning from enum zero value

* Reuse proto.SupportType instead of suping

* Replace isTeam for new flags in web app

* Update proto file: rename enum 0 value to unspecified;fix json tag casing

* Reuse proto file instead of aliasing it

* undo removing method by accident

* Add MobileDeviceManagement field to web config struct

* Improve comments

* Fix tests

* Simplify lockedFeatures object

* Include JoinActiveSessions in the web config object

* Remove more instances of isTeam

* Apply suggestions from code review - improve comments

Co-authored-by: Michelle Bergquist <11967646+michellescripts@users.noreply.github.com>

* Use consistent comments to remove isTeam

* Update godocs comments

* Revert removign `isTeam` from stories it still should

* Fix godoc typo

Co-authored-by: Michelle Bergquist <11967646+michellescripts@users.noreply.github.com>

---------

Co-authored-by: Alan Parra <alan.parra@goteleport.com>
Co-authored-by: Michelle Bergquist <11967646+michellescripts@users.noreply.github.com>
2024-04-30 11:54:17 +00:00
matheusandAlan Parra fad473a236 Add new flags to modules to replace isTeam (#39695)
* Add new flags to modules

* Add deprecated comments to isTeam

* Make support flag an enum

* Add a TODO instead of deprecating flag right away

Co-authored-by: Alan Parra <alan.parra@goteleport.com>

* Add gogoproto.jsontag to new fields

* remove meaning from enum zero value

* Reuse proto.SupportType instead of suping

* Update proto file: rename enum 0 value to unspecified;fix json tag casing

* Reuse proto file instead of aliasing it

---------

Co-authored-by: Alan Parra <alan.parra@goteleport.com>
2024-03-22 17:27:59 +00:00
rosstimothy 9734fcbdbd Convert SetSessionRecordingConfig usages to new Create/Update/Upsert API (#39249)
Migrates callers off the deprecated API and onto the new API so
that SessionRecordingConfig can be protected via optimistic locking
when appropriate.
2024-03-15 19:55:57 +00:00
rosstimothy 20888bf130 Convert SetAuthPreferences usages to new Create/Update/Upsert API (#38895)
Migrates callers off the deprecated API and onto the new API so that
AuthPreferences can be protected via optimistic locking when appropriate.
2024-03-14 22:05:20 +00:00
Brian Joerger 5577bdad45 Add e2e tests for Hardware Key support (#38994)
* Add fake yubikey private key implementation for tests.

* Add TestHardwareKeyLogin.

* Simplify Hardware Key support test plan.

* Enable piv test package in tests.

* Add TestMarshalAndParsePrivateKey.

* Address simple comments.

* Remove *testing.T from mockSSOLogin in; Add and use better helper methods for mocking sso login.

* Refactor test to dynamically set mock attestation data; revert related changes.
2024-03-07 21:37:21 +00:00
Brian Joerger 328986789e Hardware key serial number attestation (#37728)
* Add support for hardware key serial number attestation through user
trait.

* Modify AttestHardwareKey interface to return full attestation data

* Add serial number to attestation data and verify it

* Add unit test.

* Address comments.

* Don't accept partial matches.

* Fix build and test errors.
2024-02-10 01:07:58 +00:00