Commit Graph
12109 Commits
Author SHA1 Message Date
Noah Stride acb255cd88 GitLab Delegated Joining (#22705)
* Add type for GitLab ProvisionToken

* Add default behaviour for domain

* Add IDTokenClaims for GitLab

* Add gitlab token source and token validator

* Thread GitLab support through auth and tbot packages

* Adjust cluster name fetching in token validator

* Initialize GitLab token validator in auth

* Improve comment on `sub`

* Working GitLab CI delegated joining

* Add additional token rule fields

* Add checking for new configuration fields

* add additional test cases for validation of gitlab config struct

* Add TestAuth_RegisterUsingToken_GitLab

* Add tests for IDTokenSource

* Fix imports

* Add tests for GitLab Token Validator

* Fix some comments that were incomplete

* Add license headers
2023-03-16 16:19:11 +00:00
Rafał Cieślak 81f319d3e3 build.assets Dockerfiles: Remove unnecessary ENV NODE_URL, pass fsSL to curl (#23182)
* build.assets Dockerfiles: Remove unnecessary ENV NODE_URL

NODE_URL is being redefined within the RUN instruction anyway. We suspect
it might be causing problems because sometimes the logs from build failures
suggest that the NODE_URL export was either ignored or ${NODE_URL} passed
to curl reads ENV NODE_URL and not the env var set within the shell.

* Pass fsSl flags to curl
2023-03-16 15:40:55 +00:00
2d387e179f Add docs for Connect config (#22898)
* Rename old "quick input" to the current "command bar" feature name

* Remove 'Droid Sans Fallback' from Linux fonts

* Add docs for config

* Link to the proper documentation section

* Apply suggestions from @ravicious and @ibeckermayer

Co-authored-by: Rafał Cieślak <rafal.cieslak@goteleport.com>
Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>

* Adjust property descriptions with the names used in User Interface

* Drop `Courier New`

* Simplify `$schema` description

* Fix lint issues

* Add a break line after each heading

Co-authored-by: Paul Gottschling <paul.gottschling@goteleport.com>

* Schema should not be modified

* Config file is created on first launch

---------

Co-authored-by: Rafał Cieślak <rafal.cieslak@goteleport.com>
Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>
Co-authored-by: Paul Gottschling <paul.gottschling@goteleport.com>
2023-03-16 15:26:54 +00:00
Edoardo Spadolini 4cbbc0c583 Use UpsertWindowsDesktop for heartbeats (#23072) 2023-03-16 15:26:00 +00:00
Andrew LeFevre 3064f7e44d Add agentless connection integration test (#23120)
* add agentless connection integration test

* address feedback
2023-03-16 15:20:31 +00:00
rosstimothy b0dc78610e Migrate upserting CAs to gRPC (#23140)
Adds `UpsertCertAuthority` to the `teleport.v1.trust.TrustService`
and deprecates the HTTP api. The `services.Trust` interface was
also updated to include a `context.Context` in both
`CreateCertAuthority` and `UpsertCertAuthority.

To ensure backwards compatibility the `auth.Client` will first
attempt to use the gRPC client and if that fails with a not
implemented error it will fallback to using HTTP.

Part of #6394
2023-03-16 14:46:43 +00:00
Paul Gottschlingandalexfornuto e926417c11 Use Helm DynamoDB policy in Backends reference (#21775)
* Use Helm DynamoDB policy in Backends reference

- Extract the DynamoDB IAM policy in the Helm AWS guide into a partial
- Use this partial in the Backends refernece.

See this discussion for context:

https://github.com/gravitational/teleport/pull/20964#discussion_r1099051127

* format table

---------

Co-authored-by: alexfornuto <alex.fornuto@goteleport.com>
2023-03-16 14:23:01 +00:00
Łukasz Kozłowski 3998512321 Make Desktop Acess setup script idempotent (#23040)
* Make Desktop Acess setup script idempotent

* Remove unnecessary comment

* Remove unnecessary calls to Get-GPO
2023-03-16 14:06:20 +00:00
Michael Wilson e732b8a755 Establish the Okta service role. (#23075)
This commit introduces the Okta service role, which will be necessary for
the Okta service to have appropriate access to the auth server endpoints.
2023-03-16 13:43:04 +00:00
Mike Jensen 7ee72cd194 Build API on root go.mod changes (#23170)
Without this build step when the root go.mod is changed it's possible to merge a change that will result in api dependencies being out of sync.
2023-03-16 13:40:48 +00:00
Travis Rodgers 7ce1816acb adding video to k8s doc (#23116) 2023-03-16 13:34:48 +00:00
Forrest 76bc4cad38 fix heartbeatv2 test (#23149) 2023-03-16 03:15:02 +00:00
Hugo Shaka b2d5ea586c kube-updater: Implement UnhealthyWorkloadTrigger (#22737)
This trigger allows a maintenance to start if the teleport-kube-agent is
unhealthy. A workload is unhealthy if at least one if its managed pods
is unhealthy. A pod is unhealthy if it has not been ready for 10 minutes
or more.
2023-03-16 02:09:26 +00:00
Michael 3f0c74b845 Allow webauthn to be passed when issuing certs for web-based scp (#22864)
* Allow webauthn to be passed when issuing certs for web-based scp

* Remove extra line
2023-03-16 02:03:37 +00:00
Alan Parra 7ec7c76cb6 chore: Bump google.golang.org/protobuf to v1.29.1 (#23133)
* chore: Bump google.golang.org/protobuf to v1.29.1

* Update generated protos

* Tidy modules
2023-03-15 22:29:16 +00:00
Gavin Frazar 15fcc68677 Update database AWS metadata proto (#23099)
* add AssumeRoleARN for cross-account AWS
  https://github.com/gravitational/teleport/issues/15024
2023-03-15 22:28:31 +00:00
Michael eeb1596c98 Use serverUID for web scp target (#23124)
* Use serverUID for scp target

Revert unneeded hostname change

Remove comment

Get name

* Change name to serverId

* Fix lint errors

* Add comment

* Fix comment and signature format
2023-03-15 22:00:25 +00:00
Mike JensenandJakub Nyckowski 4cf1efcd25 Update crypto to 0.6.0 and remove our replacement in api (#23131)
* Update `crypto` in api

It was missed that cyrpto is being replaced in our `api` as well.
This commit updates the version to match the one in the repo root.

* Remove replacement for crypto in `api`

Replacement directives only function when defined at the main project level, they are not inherited.  For that reason I believe here we need to only depend on the updated crypto package, rather than update our replacement.

---------

Co-authored-by: Jakub Nyckowski <jakub.nyckowski@goteleport.com>
2023-03-15 21:13:26 +00:00
Russell Jones 2cd7aa26cf Updated config to include HA guide (#23139) 2023-03-15 20:41:19 +00:00
rosstimothy ec016c7fc8 Add audit event section to RFD template (#23142)
Attempts to prevent the audit log from being an after thought by
incorporating them into the RFD template.
2023-03-15 20:10:53 +00:00
Tobiasz HellerandZac Bergquist cb1b57a155 tsh: Silent webauthnwin warning on app init (#23110)
* Silent webauthnwin warning on app init

* Update lib/auth/webauthnwin/api.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* imports

---------

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
2023-03-15 19:40:29 +00:00
Brian Joerger 475388280d Headless Login: tsh implementation (#22751)
* * Implement tsh --headless

 * Implement tsh headless approve

* Add better headless authn state handling.

* Add godoc for new tsh field.
2023-03-15 18:05:02 +00:00
Philippe M. ChiassonandEvan Freed 11eaf9657d Bump Cloud to 12.1.1 (#23011)
* Bump Cloud to 12.1.1

See gravitational/cloud#3763

* Update config.json for tyop

---------

Co-authored-by: Evan Freed <2314084+evanfreed@users.noreply.github.com>
2023-03-15 17:38:53 +00:00
Tiago Silva ea5edcab67 Add app_server support to tctl get/rm commands (#23119)
This PR adds support for `app_server` get and remove commands through
`tctl`.
2023-03-15 17:26:17 +00:00
Yael Jay PerezandHugo Shaka 54951cfc26 Allow for resource limits and requests for pre-deployment jobs (#23077)
* Update predeploy_job.yaml

Adding the ability to allow for requests and limits to be added to the predeploy_job like already done for deployments.

* Update predeploy_job.yaml

Add the ability for the proxy predeploy_job to have limits and requests like the deployment. Using same values from Values file.

* Update predeploy_test.yaml

Adding tests for resource limits on predeploy job for auth and proxy.

* Update examples/chart/teleport-cluster/tests/predeploy_test.yaml

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

* Update examples/chart/teleport-cluster/tests/predeploy_test.yaml

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

* Update examples/chart/teleport-cluster/tests/predeploy_test.yaml

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

* Update examples/chart/teleport-cluster/tests/predeploy_test.yaml

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

---------

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>
2023-03-15 17:08:07 +00:00
Michael Wilson 523e61f856 Update e reference. (#23123)
Update the e reference to fix the build error resulting from the Authorizer
refactor.
2023-03-15 17:01:17 +00:00
Gus Luxton 973cb74493 docs: Add instructions on uninstalling Teleport (#22989)
* docs: Add instructions on uninstalling Teleport

* Add standalone RPM/DEB instructions and clarification for different OSes

* Language

* Suggestions from code review

* Add more specifics for Teleport Connect

* Address PR feedback
2023-03-15 16:51:22 +00:00
Mike Jensen eafa23404e Update crypto fork to v0.6.0-1 tag (#22564)
This tag includes the most recent updates from the upstream in order to address recently fixed CVE's.
Changes included: https://github.com/gravitational/crypto/compare/903e65687e59...c3f983bc73dcf711908e49d91bda9cffbecb13cd

In addition this adds `utils/bcrypto.go` to restore the prior crypto behavior of truncating input > 72 chars.
This commit in Crypto breaks functionality with long passwords or more commonly our reset tokens which are > 72 characters: https://github.com/gravitational/crypto/commit/bc7d1d1eb54b3530da4f5ec31625c95d7df40231
As described in the commit message, the prior behavior was to ignore the extra data.  Since 72 bytes are plenty of data to prevent brute force attacks, there is not a significant need to report this error to the user.
2023-03-15 16:05:13 +00:00
rosstimothy 1c3188a38a Add a dedicated client to communicate with the Proxy SSH server (#22629)
A new `api/client/proxy/Client` has been added to interact with
the SSH and gRPC servers that the Proxy serves on its SSH port.
The client will first try connecting to the gRPC server and if
that fails it will fall back to the SSH server.

Much of the SSH functionality mimics the existing behavior of the
`ProxyClient` in `lib/client`. This is the first part of phasing
out that client in favor of the new client. There will be a follow
up PR that migrates `lib/client` to make use of the new client instead.

Part of #19812
2023-03-15 13:41:56 +00:00
rosstimothy f02468e9fb Migrate the delete ca api to gRPC (#23070)
Adds `DeleteCertAuthority` to the trust grpc service and deprecates
the legacy HTTP api. Additionally the `DeleteCertAuthority` method
in the `services.Trust` interface now takes a `context.Context` as
the first parameter. In order to plumb the context through from all
the call sites `DeleteRemoteCluster` from `services.Presence` was
also modified to take a `context.Context` as the first parameter.
2023-03-15 13:11:37 +00:00
Noah Stride e49f534b61 Fix GetCertAuthorities gRPC error wrapping (#23105) 2023-03-15 12:14:55 +00:00
Łukasz Kozłowski 394b307efa Update Rust to 1.68.0 (#23033) 2023-03-15 08:59:51 +00:00
Cam Hutchison 8dcab3f887 notarize: Accept parameters for dev and bundle ID (#23092)
Add a couple of parameters for the developer key ID and bundle ID for
signing/notarizing binaries. Keep the hard-coded values as defaults for
now, but we will remove these soon when all the call sites of the tool
have been updated to pass these values.

We want to parameterize these values so we can use different signing
keys in GitHub Actions and to make the tool agnostic to which binaries
it is signing.
2023-03-15 06:21:18 +00:00
Mike Jensen f0987b5198 Remove ossfuzz from CI (#23089)
This removal is primarily cost motivated.  We will continue to have scheduled scans executed by ossfuzz, but for now we are disabling this job from our PR / merge queue workflows.
2023-03-15 00:43:20 +00:00
Brian Joerger 5a3a374203 Decouple SkipLocalAuth, UseKeyPrincipal, and static auth methods. (#21182)
* Fix TestDiagnoseSSHConnection to be less strict on the exact unknown user error message, which may vary between OS's.

* Decouple/refactor SkipLocalAuth, UseKeyPrincipal, and static auth methods.

* Resolve comments.

* * Add tests for new methods

* Update proxy ssh principal test to catch regression

* Bump predicate error in switch case priority
2023-03-14 23:22:08 +00:00
Russell Jones 49ce5eb770 Fixed header level in FAQ. (#23079) 2023-03-14 21:59:06 +00:00
Paul Gottschling addb839509 Remove extraneous subheading in DB guides page (#22207)
Closes #15385
2023-03-14 19:36:08 +00:00
Steven Martin 1f01bc3a4b add bypasses for lint go and lint docs (#22299)
* Adds bypass for lint go for RFD and Docs changes.

* spacing

* Update docs test to only check for docs, examples changes or bypass

* include merge groups

* test docs change

* remove change

* Test go change

* remove go test change

* test doc changes

* remove docs test change

* fix indentation

* fix indentation
2023-03-14 19:22:13 +00:00
Steven Martin 417e340a86 spell fixes plugin api docs (#23068) 2023-03-14 19:11:56 +00:00
42c472af4a (Buddy) Removed node from multiarch buildbox, added i386 and amd64 targets (#22979)
* Removed node from multiarch buildbox, added i386, amd64

* Bump github.com/aws/aws-sdk-go-v2/service/sts from 1.18.3 to 1.18.5 (#22292)

Bumps [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2) from 1.18.3 to 1.18.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.3...config/v1.18.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sts
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added Dockerfile-multiarch Dockerfiles

Signed-off-by: Jakub Nyckowski <jakub.nyckowski@goteleport.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Jakub Nyckowski <jakub.nyckowski@goteleport.com>
Co-authored-by: Victor Sokolov <gzigzigzeo@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-14 18:00:20 +00:00
Paul Gottschling c553fa7d66 Add a guide to writing an Access Request plugin (#22441)
* Add a guide to writing an Access Request plugin

Closes #22227

This guide uses a minimal working example of an Access Request plugin to
demonstrate some of the key libraries that Teleport makes available to
plugin developers. The guide is based on a 270-line plugin that manages
Access Requests using Google Sheets.

* Respond to hugoShaka feedback

* Respond to zmb3 feedback

* Add some minor tweaks

- Update the line of code count in the demo program
- Mention Machine ID

* Respond to alexfornuto PR feedback
2023-03-14 17:35:05 +00:00
Russell Jones 3d60c64067 Added Application Access HA Guide (#23024) 2023-03-14 17:34:11 +00:00
Grzegorz Zdunek e479fe605a Update RFD 0097 (#23052) 2023-03-14 17:12:11 +00:00
35a28fc978 Document that GitHub username is added to internal.logins (#22782)
* Details that GitHub username is added to internal.logins

* Phrasing update

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Apply suggestions from code review

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Update trait description

* Apply suggestions from code review

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Apply suggestions from code review

Co-authored-by: Paul Gottschling <paul.gottschling@goteleport.com>

---------

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>
Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
Co-authored-by: Paul Gottschling <paul.gottschling@goteleport.com>
2023-03-14 17:04:26 +00:00
Andrew LeFevre de2e55bb69 connect to registered OpenSSH nodes with certs signed by OpenSSH CA (#21953)
To prevent users from being able to directly connect to registered
OpenSSH (Agentless) nodes, the OpenSSH CA was introduced. When
connecting to Agentless nodes, the Proxy will forward the connection
so the session can be recorded. The forwarding SSH server is configured
to authenticate to the target node with a certificate signed by OpenSSH
CA, which users do not have access to.
2023-03-14 16:58:16 +00:00
Noah Stride 9449f4122b Update RFD0106 status (#23050) 2023-03-14 16:32:24 +00:00
Michael Wilson 8f628084d5 Introduce the Okta service. (#22899)
The Okta service and client have been introduced. This will allow for the
maintenance of Okta objects via our gRPC server and auth client. Some
additional improvements have been made so that the local okta service now
better reflects the gRPC definition.

Additionally, the gRPC authorization mechanism has been lifted out of
`lib/auth/grpcserver.go` and moved into a common authorizer. Finally, the
ability to check access to verbs has been lifted out of the `pluginsv1`
service into that same authorizer. This will hopefully provide a good base
for separate gRPC services in the future.
2023-03-14 16:25:22 +00:00
Zac Bergquist 2519f40d8d Add anonymized device ID to tp.user.login event (#22994)
Updates gravitational/teleport.e#829
2023-03-14 16:06:15 +00:00
Grzegorz Zdunek 513f874fab Update Electron to 22.3.2 (#23031) 2023-03-14 15:15:31 +00:00
rosstimothy 9d066364a8 Migrate GetCertAuthorities to gRPC (#22985)
Adds a new `GetCertAuthorities` unary RPC to
`teleport.v1.trust.TrustService` and deprecates the equivalent
HTTP endpoint. All associated interfaces have been updated to remove
the marshal options as well.
2023-03-14 14:45:01 +00:00