82 Commits
Author SHA1 Message Date
Przemko Robakowski 1283425b60 Linux desktop access documentation (#490)
Export-Source-Commit: 64bc963663f614d8c1ff7fe5c4105774c23b76fe
2026-08-25 11:35:10 -05:00
Przemko Robakowski 700bdada2a Make Linux desktop requestable (#397)
Export-Source-Commit: 696335b5bef921b09d1790256dac2f0fbff34fd0
2026-08-25 11:35:10 -05:00
Przemko Robakowski 4393bc313b Disable directory sharing icon for Linux desktop (#69384) 2026-08-10 17:36:56 +00:00
Przemko Robakowski 02e35b560b Add support for Linux desktop labels and logins in role editor (#68048)
* Add support for Linux desktop labels and logins in role editor

* test fix
2026-08-03 12:16:59 +00:00
Przemko Robakowski c58eb87e24 Linux desktop improvements (#69186)
* Add desktop name to active session

* Fix ListLinuxDesktops

* Add xauth entry before starting Xvfb

* Fix labels handling

* fix-imports
2026-07-31 20:44:19 +00:00
Przemko Robakowski 1d7740af22 Fix Windows webassets build (#69029)
* Fix Windows webassets build

* Remove qoiz related features
2026-07-27 17:01:08 +00:00
Przemko Robakowski 25a0422854 Add support for internal.linux_desktop_logins trait (#67777)
* Add support for internal.linux_desktop_logins trait

* Fix xsession test
2026-07-09 10:27:17 +00:00
cf91ada533 Add Linux desktop support (#65841)
* Implement support for TDPB in Desktop Agent.

* Add LinuxDesktop gRPC and backend

* Add LinuxDesktop resource to unified resources

* Add Linux desktop service

* Remove CloneResource

* Review comments

* Unifide fix

* routing

* Fix logins

* Fix logins

* Fix CA cache and write basic loop

* Review comment

* Fix components and handleConnection

* Review comment

* Add ClonableResourceWithLabels

* Fix missing CloneResource

* Add Xvfb handlers

* Add Xephyr

* Add Xvfb controller

* Add QOI encoder

* encoder + xsession

* reexec

* ChildLogConfig

* session

* add forceloginshell

* update frontend + fix session

* Review comments

* Fix code, update docs

* Fix TARGETS format, reuse waiting

* Remove direct mode

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <[email protected]>

* Add MFA and cert usage support

* Add RemoteAddr

* Revert Uacc setup

* Add session selector

* Refactor code

* Add session recording, tracking and events

* Add session recording, tracking and events

* Refactor command reexecution

* Review comments

* Use reexec.ConfigureCommand

* Proto changes for Linux Desktop

* Proto changes for Linux Desktop

* Add locks support for Linux desktop

* Add guard around m.ScreenSpec

* Cleanup

* Add activity monitor

* Cleanup

* Fix compilation

* Cleanup unified view

* Refactor linux session

* Add logging

* Add logging

* go mod tidy

* Adjust logging

* go mod tidy

* Grab stderr from reexec

* Fix UACC

* pass remote addr to uacc

* TMP: debug images

* Fix panic

* TMP: debug images

* limit change size

* Monitor resolution and restore it

* TMP: debug images

* TMP: debug images

* TMP: debug images

* Modify screen resize

* TMP: debug images

* TMP: debug images

* Add XDG env variable

* Use dbus-run-session

* pam

* variables fix

* variables fix

# Conflicts:
#	lib/srv/desktop/x11/xsession.go

* revert uacc

* cleanup

* EncodeQOIZ noop

* EncodeQOIZ noop

* Fix auditing

* Cleanup

* Fix type check

* Fix formatting

* Fix licenses

* Fix lint

* go mod tidy

* Fix audit reference

* Fix log

* Fix tests

* Fix tests

* Remove testing from xgb

* go mod tidy

* Fix tests

* xgb 1.3.1

* Handle multiple SessionSelection messages

* Add filters for sessions

* fix events

* Fix compilation + events

* Fix test

* Fix test

* Fix UI

* cleanup

* review comments

* Rework poll eq

* Fix bounds clipping

* fix imports

* lint

* lint

* err

* Fix locking in resize

* Fix ReadChildError

* remove dependabot exclusion

* Fix session end

* Cleanup metedata

* Fix session events

* Ignore multiple ClientHello

* Use slices.IndexFunc in setScreenSize

* Cleanup unused code

* Update lib/service/linux_desktop.go

Co-authored-by: Zac Bergquist <[email protected]>

* Use slices.Clone

* Update lib/srv/desktop/x11/xsession.go

Co-authored-by: Zac Bergquist <[email protected]>

* Fix import

* Use filepath.Glob

* Simplify testdata path calculation

* Cleanup comment

* Cleanup endpoints

* Update lib/web/apiserver.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update lib/web/desktop.go

Co-authored-by: Zac Bergquist <[email protected]>

* Cleanup createDesktopConnection signature

* Cleanup createDesktopConnection signature

* Use server capabilities

* Remove dep override

* Add bounds check

* Cleanup

* Add EndTime to reconstructed event

* use cleanupCtx

* cleanup

* Add configuration test

* Add horizontal scroll

* Review comments

* Fix scrolling

* Fix scrolling

* Sort available sessions

* Fix build

* Add bounds check

* Fix tests

* Move expiry

* lint

* Add back metadata nil check

* lint

* Add usage reporting

* Fix error handling

* Fix resizing, add lock prevention

* Move backend creation after authorization

* Fix possible panic in handleSessionSelection

* Check if clipboard is allowed

* Cleanup errors during normal session ending

* use errgroup for all backround tasks

* Review comments

* fix heartbeat

* add guard for root

* fix tests

* add negative check in changes

* cleanup

* cleanup

* add guard

* Review comments

* Review comments

* Review comments

* Review comments

* Review comments

* Read only access for RoleLinuxDesktop

* use dbus-launch

* Add Linux Desktops to inventory UI

* Use X11 launcher script to start sessions

Use a launch script instead of executing the Exec= line from the
Xsession file directly. This handles the "default" case on Debian
systems where the Xsession file reads `Exec=default`.

The launcher can be explicitly configured at the agent level or
left blank, in which case we probe a set of well-known launchers.

* Compositing support

* Fix dbus launcher

Support both `dbus-run-session` and the older `dbus-launch`.

* Fix error messages when Xvfb is not installed

* Add non-root warning

* Use forceFullDamage for resize

* Fix Open API usage

* invalid user test fix

* remove commented code

* Complete TLS handshake

* Improve error message

* Logged wrapped command

* Add dbus-daemon as dependency for dbus-launch

* Update dbus warning and add llvm check to macos build

* Add LinuxDesktop to role list in new token dialog

* Fix teleport start role validation

* Run messageLoop in separate goroutine

* Add LinuxDesktop labels to Admin role

* Add handling for extended keys and ID reuse

* Cleanup shut down logs

* Xsession cleanup

* Rework llvm requirement in Makefile

---------

Co-authored-by: Ryan Hammonds <[email protected]>
Co-authored-by: Zac Bergquist <[email protected]>
2026-07-09 07:41:47 +00:00
Przemko Robakowski cdb05b0565 Bump e ref (#66321) 2026-04-30 13:02:30 +00:00
Przemko RobakowskiandZac Bergquist d3fe70b2c2 Add locks support for Linux desktop (#65761)
* Add LinuxDesktop gRPC and backend

* Add LinuxDesktop resource to unified resources

* Remove CloneResource

* Review comments

* Fix logins

* Review comment

* Add ClonableResourceWithLabels

* Fix missing CloneResource

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <[email protected]>

* Proto changes for Linux Desktop

* Add locks support for Linux desktop

* Fix role

* Update lib/auth/auth_with_roles.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update lib/web/ui/server.go

Co-authored-by: Zac Bergquist <[email protected]>

* Fix compilation

* Review comments

* Review comments

* fix e

---------

Co-authored-by: Zac Bergquist <[email protected]>
2026-04-29 08:50:19 +00:00
Przemko RobakowskiandZac Bergquist 0065833422 Proto changes for Linux Desktop (#65692)
* Add LinuxDesktop gRPC and backend

* Add LinuxDesktop resource to unified resources

* Remove CloneResource

* Review comments

* Fix logins

* Review comment

* Add ClonableResourceWithLabels

* Fix missing CloneResource

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <[email protected]>

* Proto changes for Linux Desktop

* Fix role

* Update lib/auth/auth_with_roles.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update lib/web/ui/server.go

Co-authored-by: Zac Bergquist <[email protected]>

* Fix compilation

* Review comments

* Review comments

* e

* skip gogoproto

* e

* fix test

---------

Co-authored-by: Zac Bergquist <[email protected]>
2026-04-29 07:20:46 +00:00
Przemko RobakowskiandZac Bergquist 1c0a636206 Add LinuxDesktop resource to unified resources (#63101)
* Add LinuxDesktop gRPC and backend

* Add LinuxDesktop resource to unified resources

* Remove CloneResource

* Review comments

* Fix logins

* Review comment

* Add ClonableResourceWithLabels

* Fix missing CloneResource

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <[email protected]>

* Fix role

* Update lib/auth/auth_with_roles.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update lib/web/ui/server.go

Co-authored-by: Zac Bergquist <[email protected]>

* Fix compilation

* e

* skip gogoproto

* e

* fix test

* Update api/client/proto/linuxdesktop.go

Co-authored-by: Zac Bergquist <[email protected]>

---------

Co-authored-by: Zac Bergquist <[email protected]>
2026-04-28 20:57:34 +00:00
Przemko RobakowskiandEdoardo Spadolini a13ff87916 Refactor command reexecution (#65562)
* Refactor command reexecution

* Review comments

* Review comments

* Document context

* Update lib/srv/bpf_test.go

Co-authored-by: Edoardo Spadolini <[email protected]>

* Update lib/srv/ctx.go

Co-authored-by: Edoardo Spadolini <[email protected]>

* Update session/reexec/reexec.go

Co-authored-by: Edoardo Spadolini <[email protected]>

* Encode json before starting goroutine

* Update session/reexec/reexec.go

Co-authored-by: Edoardo Spadolini <[email protected]>

* Fix ConfigureCommand cleanup

* Use map for extra files

* check nil

* e

---------

Co-authored-by: Edoardo Spadolini <[email protected]>
2026-04-28 20:38:46 +00:00
Przemko RobakowskiandZac Bergquist d62d4aec25 Add tctl support for Linux desktop (#63273)
* Add LinuxDesktop gRPC and backend

* Add tctl support for Linux desktop

* Add LinuxDesktop gRPC and backend

* Remove CloneResource

* Review comments

* Fix logins

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <[email protected]>

* Fix role

* Remove duplicate code

* Cleanup

* Fix test

---------

Co-authored-by: Zac Bergquist <[email protected]>
2026-04-22 09:37:12 +00:00
Przemko RobakowskiandZac Bergquist 48e80466c9 Add LinuxDesktop gRPC and backend (#62974)
* Add LinuxDesktop gRPC and backend

* Remove CloneResource

* Review comments

* Fix logins

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <[email protected]>

* Fix role

---------

Co-authored-by: Zac Bergquist <[email protected]>
2026-04-21 20:51:35 +00:00
Przemko Robakowski e857525099 Fix mouse move when using fixed screen size Windows desktop (#64926)
* Fix mouse move when using fixed screen size Windows desktop

* Add upper bound and clean up formating

* Remove bound check for mouse up
2026-03-25 11:38:27 +00:00
Przemko Robakowski 1d16fbac8a Add LinuxDesktop protos and generated code (#62971) 2026-01-21 07:56:10 +00:00
Przemko Robakowski 084bc92450 Don't modify source slice in RemoveFromSlice (#61531) 2025-11-19 18:33:25 +00:00
Przemko RobakowskiandZac Bergquist be5d00c67b Ensure screen width is always even (#60242)
* Ensure screen width is always even

* Update lib/srv/desktop/rdp/rdpclient/src/client.rs

Co-authored-by: Zac Bergquist <[email protected]>

---------

Co-authored-by: Zac Bergquist <[email protected]>
2025-10-15 18:58:19 +00:00
Przemko Robakowski dc7d173a85 Install wasm32 target in MacOS workflow (#57525) 2025-08-05 08:00:01 +00:00
Przemko RobakowskiandZac Bergquist 988e7b7d9d Fix CRL backfill (#57318)
* Fix CRL backfill

* Update lib/auth/init.go

Co-authored-by: Zac Bergquist <[email protected]>

---------

Co-authored-by: Zac Bergquist <[email protected]>
2025-07-30 16:03:44 +00:00
Przemko Robakowski 392a834663 Update docs for NLA in FIPS mode (#57310) 2025-07-30 14:32:55 +00:00
Przemko Robakowski c16ee3cd6a Disable NLA in FIPS mode (#54048)
* Disable NLA in FIPS mode

* Disable NLA in FIPS mode

* lint
2025-07-30 10:08:09 +00:00
Przemko Robakowski 457b3f49aa Fix LDAP CRL publication (#57261) 2025-07-29 14:39:48 +00:00
Przemko RobakowskiandZac Bergquist be9bafcfed Support out parameter for tctl auth crl command (#55430)
* Support HMS for Windows Desktop and database AD access

* go mod tidy

* review comment

* make go-mod-tidy-all

* Rework tests

* Cleanup

* go mod tidy

* Cleanup

* Fix tests

* lint

* Use cluster name in CRL url

* Make db cert generation backward compatible

* Review comments

* go mod tidy

* test change

* Support out parameter for tctl crl command

* Use base32 for consistency

* Review comments

* Review comments

* Get authority for current cluster

* CHange out file patterns to simplify DB CRL import

* Print certutil commands at the end

* Print certutil commands at the end

* Update tests

* Update DB AD docs to mention HSM changes

* Update tool/tctl/common/auth_command.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update tool/tctl/common/auth_command.go

Co-authored-by: Zac Bergquist <[email protected]>

* review comment

* Update tool/tctl/common/auth_command.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update tool/tctl/common/auth_command.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update docs/pages/enroll-resources/database-access/enroll-self-hosted-databases/sql-server-ad-pkinit.mdx

Co-authored-by: Zac Bergquist <[email protected]>

* review comment

* review comment

---------

Co-authored-by: Zac Bergquist <[email protected]>
2025-07-17 20:24:52 +00:00
Przemko Robakowski 68cd267988 Support HSM for Windows Desktop and database AD access (#55429)
* Support HMS for Windows Desktop and database AD access

* go mod tidy

* review comment

* make go-mod-tidy-all

* Rework tests

* Cleanup

* go mod tidy

* Cleanup

* Fix tests

* lint

* Use cluster name in CRL url

* Make db cert generation backward compatible

* Review comments

* go mod tidy

* test change
2025-07-17 19:41:30 +00:00
Przemko Robakowski 22ce46d00e Add LatencyStats decoder (#56483) 2025-07-09 18:25:26 +00:00
Przemko Robakowski 6dc9d18eac Add RDP client to flaky test detector (#55873) 2025-06-18 19:41:17 +00:00
Przemko RobakowskiandZac Bergquist 81d266689a Don't consume messages in readClientKeyboardLayout (#55427)
* Don't consume messages in readClientKeyboardLayout

* Update lib/srv/desktop/tdp/conn.go

Co-authored-by: Zac Bergquist <[email protected]>

* tests

* gci

* add rdp client to unit test

---------

Co-authored-by: Zac Bergquist <[email protected]>
2025-06-18 07:52:56 +00:00
Przemko Robakowski 6cbbf2b07b Fix dynamic windows registration (#55616)
* Fix dynamic windows registration

* lint

* review comment

* maps.deltefunc

* bump expiry time
2025-06-18 07:30:20 +00:00
Przemko Robakowski 97c90e7a52 Add additional checks for dynamic desktops test plan (#55617) 2025-06-17 20:11:16 +00:00
Przemko RobakowskiandZac Bergquist 9704b99315 Proto changes for supporting HSM in Windows Desktop and Database access w/AD (#55428)
* Proto changes for HSM support in AD

* Database CRLDomain

* Update api/proto/teleport/legacy/types/events/events.proto

Co-authored-by: Zac Bergquist <[email protected]>

* Split ID to domain and type

---------

Co-authored-by: Zac Bergquist <[email protected]>
2025-06-10 21:01:12 +00:00
Przemko Robakowski 28f78c3d09 Simplify code around latency detection for desktop (#54795)
* Simplify code around latency detection for desktop

* cleanup

* Use tdp.Conn for client and server

* Add check for context cancellation

* Cleanup

* remove context check

* remove context check

* remove unused field

* use sync.OnceFunc, error on unexpected ping

* err message
2025-05-19 10:34:03 +00:00
1aba870fe2 Add latency detector for desktop sessions (#52827)
* wip

* add ping message and latency from desktop side

* version

* Fix backward compatibility

* godocs

* formatting

* fix imports

* formatting

* formatting

* log and gci

* lint

* Apply tooltip on the icon directly, instead of on the Menu component

This fixes a problem where onMouseLeave in HoverTooltip wasn't called and the tooltip didn't disappear.

* Use consistent spacing between top bar elements

* updates from origin

* e

* e

* lint

* rework UI after merge

* Rename fields in backend

* prettier

* Update web/packages/shared/components/DesktopSession/TopBar.tsx

Co-authored-by: Grzegorz Zdunek <[email protected]>

* review comments

* fix ui

* add env var to disable windows desktop "ping"

* review comment

* review comment

* Update lib/web/desktop.go

Co-authored-by: Zac Bergquist <[email protected]>

* Refactor latency monitoring

* fix spelling

* remove monitorSessionLatency

* gci

* review comment

* review comment

* Update RFD and version

* fix gaps

---------

Co-authored-by: Zac Bergquist <[email protected]>
Co-authored-by: Grzegorz Zdunek <[email protected]>
Co-authored-by: Grzegorz Zdunek <[email protected]>
2025-05-07 08:26:04 +00:00
e793e1eb9b Include AD/non-AD status in certificate (#44549)
* ad/non-ad

* use separate OID for AD status

* Update lib/auth/windows/windows.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update lib/srv/desktop/windows_server.go

Co-authored-by: Edward Dowling <[email protected]>

---------

Co-authored-by: Zac Bergquist <[email protected]>
Co-authored-by: Edward Dowling <[email protected]>
2025-03-07 18:44:51 +00:00
Przemko RobakowskiandAlan Parra dc118f93c6 Add support for storing RDP licenses from Windows Desktops (#51250)
* Licensing

* Licensing

* formatting

* dependency review

* review comments

* review comments

* review comments

* review comments

* test

* gci

* introduce RDPLicenseKey

* Update lib/auth/storage/storage_test.go

Co-authored-by: Alan Parra <[email protected]>

* review comments

* fix test

* review comments

* review comments

* fix tests

* gci

* gci

---------

Co-authored-by: Alan Parra <[email protected]>
2025-01-23 22:41:39 +00:00
Przemko Robakowski a5f93646f8 Update IronRDP (#49483)
* Fix most compilation errors

* Fix all compilation errors

* Fix all compilation errors in webassmbly

* lint

* dependency review

* update picky deps

* update deps

* dependency review

* lint
2024-12-09 21:04:36 +00:00
Przemko Robakowski 7dda1d6fda Switch rustls to aws-lc-rs (#49717) 2024-12-04 08:26:41 +00:00
Przemko RobakowskiandZac Bergquist f3336d3166 Add dynamic registration for Windows desktops docs (#48968)
* Add dynamic Windows desktops registration docs

* lint

* lint

* review

* mentione dynamic desktops in reference docs

* Update docs/pages/enroll-resources/desktop-access/dynamic-registration.mdx

Co-authored-by: Zac Bergquist <[email protected]>

* Update docs/pages/enroll-resources/desktop-access/dynamic-registration.mdx

Co-authored-by: Zac Bergquist <[email protected]>

* comment

* Additional updates

---------

Co-authored-by: Zac Bergquist <[email protected]>
2024-11-18 16:13:00 +00:00
Przemko Robakowski 94dc1a9027 Add dynamic Windows desktops to terraform provider (#48160)
* yaml

* make tfschema

* make tfschema again

* make tfschema again + tests

* tests + docs

* lint

* rename resource

* example fix and labels
2024-11-15 16:25:30 +00:00
Przemko Robakowski 1ebf8a3409 Respect windows_desktop_labels for dynamic desktops (#48941)
* Respect windows_desktop_labels for dynamic desktops

* fix imports

* Fix test

* add access check test
2024-11-15 16:02:53 +00:00
Przemko Robakowski ddb0623211 Cap maximum response length from KDC (#48572) 2024-11-12 12:16:36 +00:00
Przemko RobakowskiandZac Bergquist dddd9ea5a2 Fix update and list for DynamicWindowsDesktops (#48046)
* proto

* Fix update for DynamicWindowsDesktops

* fix test server

* fix test

* fix test

* fix test

* Update api/proto/teleport/dynamicwindows/v1/dynamicwindows_service.proto

Co-authored-by: Zac Bergquist <[email protected]>

* update proto

* fix tests

---------

Co-authored-by: Zac Bergquist <[email protected]>
2024-10-29 22:18:27 +00:00
Przemko Robakowski e208b2f482 Add dynamic Windows desktops registration to test plan (#47908)
* Add dynamic Windows desktops registration to test plan

* cleanup
2024-10-24 18:43:03 +00:00
Przemko Robakowskiandrosstimothy f651ab19cd Create WindowsDesktops for matching DynamicWindowsDesktops (#46991)
* Add DynamicWindowsDesktop to proto

* Add resource matchers to Windows desktop service config

* Implement API and backend for DynamicWindowsDesktop

* Cache and watcher support for DynamicWindowsDesktop

* Create WindowsDesktops for matching DynamicWindowsDesktops

* Fix imports

* fix test

* lint

* review comments

* move rpc to separate server

* rework api and grpc more towards 153-style

* e

* remove dynamic windows from paginated resource

* add tests

* add tests

* Update api/proto/teleport/legacy/types/types.proto

Co-authored-by: rosstimothy <[email protected]>

* lint

* gci

* cleanup

* cleanup

* use generic service

* cleanup

* cleanup

* cleanup

* cleanup

* cleanup

* gci

* rework cache

* rework cache

* add admin action checks

* move service

* add service test

* gci

* update discovery

* add discovery test

* review comments

* review comments

* review comments

* update interfaces

* gci

* gci

* review comments

* review comments

* fix loggers

* fix tctl

---------

Co-authored-by: rosstimothy <[email protected]>
2024-10-23 20:33:58 +00:00
Przemko Robakowskiandrosstimothy d391ccc792 tctl support for DynamicWindowsDesktop (#46988)
* Add DynamicWindowsDesktop to proto

* Add resource matchers to Windows desktop service config

* Implement API and backend for DynamicWindowsDesktop

* tctl support for DynamicWindowsDesktop

* Fix imports

* Remove unused methods

* move rpc to separate server

* rework api and grpc more towards 153-style

* e

* remove dynamic windows from paginated resource

* add tests

* add tests

* update client

* Update api/proto/teleport/legacy/types/types.proto

Co-authored-by: rosstimothy <[email protected]>

* lint

* gci

* cleanup

* cleanup

* use generic service

* cleanup

* cleanup

* cleanup

* cleanup

* cleanup

* gci

* add admin action checks

* move service

* add service test

* add tests

* gci

* review comments

* review comments

* review comments

* review comments

* review comments

* review comments

---------

Co-authored-by: rosstimothy <[email protected]>
2024-10-23 18:19:44 +00:00
Przemko Robakowskiandrosstimothy ee09328cc4 Cache and watcher support for DynamicWindowsDesktop (#46989)
* Add DynamicWindowsDesktop to proto

* Add resource matchers to Windows desktop service config

* Implement API and backend for DynamicWindowsDesktop

* Cache and watcher support for DynamicWindowsDesktop

* Fix imports

* fix test

* move rpc to separate server

* rework api and grpc more towards 153-style

* e

* remove dynamic windows from paginated resource

* add tests

* add tests

* Update api/proto/teleport/legacy/types/types.proto

Co-authored-by: rosstimothy <[email protected]>

* lint

* gci

* cleanup

* cleanup

* use generic service

* cleanup

* cleanup

* cleanup

* cleanup

* cleanup

* gci

* rework cache

* rework cache

* add admin action checks

* move service

* add service test

* gci

* review comments

* review comments

* review comments

* update interfaces

* gci

* review comments

* review comments

* fix loggers

---------

Co-authored-by: rosstimothy <[email protected]>
2024-10-22 21:22:03 +00:00
Przemko Robakowskiandrosstimothy 0f487f6bbc Implement API and backend for DynamicWindowsDesktop (#46987)
* Add DynamicWindowsDesktop to proto

* Add resource matchers to Windows desktop service config

* Implement API and backend for DynamicWindowsDesktop

* Fix imports

* move rpc to separate server

* rework api and grpc more towards 153-style

* e

* remove dynamic windows from paginated resource

* add tests

* add tests

* Update api/proto/teleport/legacy/types/types.proto

Co-authored-by: rosstimothy <[email protected]>

* lint

* gci

* cleanup

* cleanup

* use generic service

* cleanup

* cleanup

* cleanup

* cleanup

* cleanup

* gci

* add admin action checks

* move service

* add service test

* gci

* review comments

* review comments

* review comments

* review comments

* review comments

---------

Co-authored-by: rosstimothy <[email protected]>
2024-10-22 20:12:34 +00:00
Przemko Robakowski c345ee610c Enable lto in RDP Rust code (#47714) 2024-10-21 15:54:35 +00:00
Przemko Robakowskiandrosstimothy af3ac37bc0 Add resource matchers to Windows desktop service config (#46985)
* Add DynamicWindowsDesktop to proto

* Add resource matchers to Windows desktop service config

* move rpc to separate server

* e

* remove dynamic windows from paginated resource

* Update api/proto/teleport/legacy/types/types.proto

Co-authored-by: rosstimothy <[email protected]>

* gci

---------

Co-authored-by: rosstimothy <[email protected]>
2024-10-14 21:20:25 +00:00
Przemko Robakowskiandrosstimothy 4c7fa50e82 Add DynamicWindowsDesktop to proto (#46984)
* Add DynamicWindowsDesktop to proto

* move rpc to separate server

* e

* remove dynamic windows from paginated resource

* Update api/proto/teleport/legacy/types/types.proto

Co-authored-by: rosstimothy <[email protected]>

---------

Co-authored-by: rosstimothy <[email protected]>
2024-10-14 18:21:57 +00:00
Przemko RobakowskiandZac Bergquist b8ae595b89 Allow NLA for AD desktops (#43773)
* initial

* full flow

* e

* cleanup

* cleanup, deps

* fix non-ad

* update IronRDP/sspi, remove domain

* rework url parsing

* lint

* cleanup

* Update lib/srv/desktop/rdp/rdpclient/client_common.go

Co-authored-by: Zac Bergquist <[email protected]>

* cleanup

* cleanup

* cleanup

* cleanup

* update sspi to 0.13

* disable credssp in FIPS builds

* update IronRDP

* propagate KDCAddr from config file

* Allow tokio-rustls license

* clippy

* Fix public key data in FIPS mode, enable CredSSP in FIPS

* Update lib/srv/desktop/rdp/rdpclient/src/ssl.rs

Co-authored-by: Zac Bergquist <[email protected]>

* simplify network client

* Minor improvements

- Better error display for IronRDP errors with poor Display impls
- Check key length before truncating to avoid a panic
- Improve godocs

* Make NLA opt in via TELEPORT_ENABLE_RDP_NLA=yes

* Suppress sspi-rs logs

sspi-rs currently logs everything at info level, which clutters
the Teleport logs. Set its log level to warn until upstream's
logging is less chatty.

* try disabling credssp first

* use missing computer name in case of IP address

* always enable credssp when opted-in

* fmt

* Update lib/srv/desktop/rdp/rdpclient/src/client.rs

Co-authored-by: Zac Bergquist <[email protected]>

* review comments

* review comments

* use teleport.dev/computer_name

* e

---------

Co-authored-by: Zac Bergquist <[email protected]>
2024-08-26 18:30:25 +00:00
932fe56706 Separate section for desktop user creation docs (#41375)
* Move docs

* Mention stored credentials

* add cmdkey to spellcheck

* review comments

* Update docs/pages/desktop-access/reference/user-creation.mdx

Co-authored-by: Isaiah Becker-Mayer <[email protected]>

* Remove empty section

* Update reference

* Update docs/pages/server-access/guides/host-user-creation.mdx

Co-authored-by: Paul Gottschling <[email protected]>

---------

Co-authored-by: Isaiah Becker-Mayer <[email protected]>
Co-authored-by: Paul Gottschling <[email protected]>
2024-05-21 20:02:43 +00:00
Przemko Robakowski bb1a287817 Fix "The source data has been detached" error (#41492) 2024-05-13 21:14:27 +00:00
Przemko Robakowski 59664c8b4c Fix Windows pointer (#40639)
* Fix Windows pointer

* Use default flags

* comment

* update IronRDP, enable shadow

* Revert "update IronRDP, enable shadow"

This reverts commit 0d7acf353a.

* Update IronRDP
2024-04-24 21:34:22 +00:00
Przemko RobakowskiandIsaiah Becker-Mayer 4ded67e88d Support changing the mouse pointer (#37882)
* Support changing the mouse pointer

* Update web/packages/teleport/src/components/TdpClientCanvas/TdpClientCanvas.tsx

Co-authored-by: Isaiah Becker-Mayer <[email protected]>

* Update web/packages/teleport/src/lib/tdp/client.ts

Co-authored-by: Isaiah Becker-Mayer <[email protected]>

* Update web/packages/teleport/src/components/TdpClientCanvas/TdpClientCanvas.tsx

Co-authored-by: Isaiah Becker-Mayer <[email protected]>

* Review comments

* prettier

* use template string

* useRef

* don't update pointer during replay

* don't update pointer during replay

* Review comments

---------

Co-authored-by: Isaiah Becker-Mayer <[email protected]>
2024-02-25 23:47:08 +00:00
Przemko Robakowski 5b368e4876 desktop: fix websocket reads from browser (#38064)
This fixes a bug introduced in #37393 where large TDP messages coming
from the browser can be truncated.

Fixes #37894
Fixes #37940
2024-02-12 21:25:21 +00:00
Przemko RobakowskiandZac Bergquist 068c22da9b Fail if RemoteFX is not enabled (#37194)
* Fail if RemoteFX is not enabled

* Update error message

* Typo fix

* Remove debug log

---------

Co-authored-by: Zac Bergquist <[email protected]>
2024-01-25 20:12:27 +00:00
Przemko RobakowskiandIsaiah Becker-Mayer a27a558c8a Show clear error when session can't be exported (#35880)
* adds ironrdp client and has it connect, alongside rdp-rs

* Integrates IronRDP client into the TDP png-response system. Instead of sending back chunks of the screen, its sends the full screen every time, and this is my running hypothesis for the current sticking point: a "Maximum call stack size exceeded" from the tdp client in the react app

* Changes arrayBufferToBase64 to use reduce, which fixes the "Maximum call stack size exceeded" bug

* removes convert_bgra_to_rgba which isn't needed with the bitmaps being produced by IronRDP

* Adds support for updating only a specific image region

* removes mistaken read_rdp_output_inner call from connect_rdp_inner

* Adds support for mouse input. I believe this code has race conditions for client.write_frame though this requires more research.

* Patches things up with the new IronRDP structure

Requires some modifications to IronRDP, see the corresponding commit hash
for IronRDP in lib/srv/desktop/rdp/rdpclient/Cargo.toml.

Started getting call stack overflows when manual testing again, but I'm
going to ignore those for now and focus on the version of this architecture
that passes the remoteFX encoded messages over TDP.

* Adds RemoteFX Frame to the backend

* Proof of concept for integrating a wasm module into the frontend

Building the wasm module still needs to be done manually, this was
just to get to a point where tools are configured and it can be successfully
called in both dev and prod modes.

Required that I comment out "default-src 'self'" in the CSP, this will
need to be figured out later.

We're also using a package called vite-plugin-wasm-pack whereas ironrdp
uses vite-plugin-wasm. I'm not sure why, I'm going to look into this and
swap out to vite-plugin-wasm if possible.

* Swaps out vite-plugin-wasm-pack for vite-plugin-wasm and adds build-wasm script to the teleport package.json.

vite-plugin-wasm-pack looks relatively unmaintained in comparison
to vite-plugin-wasm-pack.

build-wasm script is needed to build the wasm binary before calling vite [build]

* Adds backend structure for RPC PoC

Untested as of yet and it isn't pretty, but this more or less imitates the
RPC approach we have for directory sharing.

* hack solution which calls everything 'static. THIS IS VERY UNSAFE, WE SHOULD DO SOMETHING ELSE

* Gets the full display working end to end
with a particular commit of IronRDP. Unfortunately this commit is now
well out of date, and IronRDP had some bugs that were preventing RemoteFX
frames from being sent back.

* Full display working end to end with the updated IronRDP

* updates init_wasm_log to enable logging in the console

* updates hardcoded io_channel_id and user_channel_id

* Uses specific IronRDP sub-crates (i.e. ironrdp-session, ironrdp-tokio, etc.) rather than relying on whatever is re-exported from the ironrdp sub-crate itself

* Gets FastPathFrameResponse up to speed and the PoC is now working

* deletes all the rpc stuff which it turns out we don't need

* more cleanup including consolidating the FastPathFrame message between wasm and js, adding some comments

* Updates the documentation string for top level Client in lib.rs

* Removes hardcoded rdp server address, screen size, and username

* Swaps to online IronRDP repo

* Updates the TDP RFD with new messages
renaming them to be precise.

* remove hardcoded ip

* creates asRustBackedSlice

* removing some old todos

* Add cleanup for wasm-pack build artifacts to make clean

* Fix wasm in production builds (#27428)

* Converts the default Content-Security-Policy representation to a map
which makes it easier to programmatically add-to/overwrite the defaults
for special cases.

Also adds tests for the various custom CSPs.

* Alphabetize CSP directives for ease of testing/debugging in the future

* makes maps more easily composable

* removes commented code, and topLevelAwait() which was causing production builds to break

* Adds 'wasm-unsafe-eval' to the script-src section of the Content-Security-Policy
when a desktop session's url is detected.

The app already enforces no caching via the Cache-Control, Pragma, and
Expires headers (SetNoCacheHeaders), which means that any time the app
is requested in a new tab, the browser will always request a new index.html
which can be sent back with a new Content-Security-Policy header.

Since the only way to get to a desktop session is to either
click a link in the app which opens a new tab, or to open a new tab and
navigate to the url manually (this differs from most components, which can
be navigated to without a page reload using React Router), we can reliably
check each index.html request for a characteristic desktop session url path,
and only include the 'wasm-unsafe-eval' directive when strictly necessary
(in the spirit of the principle of least privilege).

* Removes vite-plugin-top-level-await from package.json

* moves regex to global so that it only need be compiled once

* CR fixes
updates Cargo.lock
removes commented feature flag
removes -framework SystemConfiguration
fixes makefile comment

* unsafe.SliceData

* fixes phrasing

* changes to docstring

* changes handle_tdp_fast_path_response to handle_tdp_rdp_response_pdu
so that its name is in line with its definition in RFD 0037 and
adds a more descriptive docstring.

* small fixes to comments

* preallocate RDPFastPathPDU Encode buffer

* updating comments

* Adds a detailed discussion of the Go/Rust Interface to the README (#29762)

* Aligns the codebase with the Go/Rust interface principles in the README (#29764)

* Move client functionality into Client (#29765)

* Adds the RDP Channel IDs TDP message (#27514)

* Refactoring `rdpclient` (#29766)

* Ironrdp recording playback (#28228)

* httplib.SetIndexContentSecurityPolicyWithWasm for recordings as well as desktop sessions so that the ironrdp wasm client can be used for recording playback

* Adds desktopplayback path to websocket proxy definitions so that it can be used with the dev server

* adds tdp.TypeRDPFastPathPDU as a tdp message to be recorded

* With this commit, recordings can be played back with the FastPathProcessor

Refactors tdp Client and subclass PlayerClient
such that now the classes are always constructed the same way,
and the internal representation of the screen size (the FastPathProcessor)
is either:

1. Created upon the call to Client.connect(spec) when spec is !undefined.
This is the case when the Client is being used for a desktop session.

2. Created when a client screen spec is received from the server. This is
the case when PlayerClient is being used for playback.

* Switches from sending the width/height via ur parameter string
to sending it via the client screen spec tdp message.

* changes tdpCli* to client* and adds a canvas* to the canvas related functions

* Static tokio (#30066)

* Beginnings of RdpdrBackend integration (#32814)

* Adds handling for the EstablishContextCall (#32971)

* Adds support for `ListReadersCall` and `ListReadersReturn` (#33004)

* Adds support for `GetStatusChangeCall`/`GetStatusChangeReturn` (#33056)

* Adds support for ConnectCall and ConnectReturn (#33136)

* Better error handling (#32925)

This change removes couple of unwrap that could cause panics on the Rust side and prevents panics from invalid cgo handle on the Go side.
It also sends error message from IronRDP to UI and cleans up a little final sequence of closing various goroutines in case of error or sessions end.

* Adds support for `HCardAndDispositionCall` with `ScardIoCtlCode::BeginTransaction` (#33192)

* `TransmitCall` and `TransmitReturn` (#33282)

* `StatusCall` and `StatusReturn` (#33284)

* `ReleaseContext` and refactor `handle_scard_call` (#33434)

* IronRDP clipboard sharing (#33335)

This change adds clipboard sharing to our IronRDP migration using ironrdp_cliprdr crate with out TDP-based backend (reused from rdp-rs times)

* Adds EndTransaction, Disconnect, Cancel, and IsValidContext (#33612)

* Adds support for `GetDeviceTypeId` (#33613)

* Adds support for `ReadCacheW` (#33618)

* `WriteCacheW` (#33620)

* Smartcard Login (#33712)

* `GetReaderIcon` (#33779)

* Update to IronRDP latest commit

* Removes a bunch of old deprecated code (including `rdp-rs`) (#33786)

* Pipes in `SharedDirectoryAnnounce` (#33911)

* Use tokio-boring for TLS upgrade (#33900)

This change switches TLS upgrade in our new RDP approach to tokio-boring in FIPS-compliant builds.
It also adds runtime check for FIPS mode.

Tested locally in custom Docker image.

* Update sspi (#34558)

* Break up rdpdr.rs, add support for the first directory sharing pdus (#34009)

* Adds support for `SharedDirectoryCreateRequest` and `SharedDirectoryCreateResponse`. (#34011)

* `SharedDirectoryDeleteRequest` and `SharedDirectoryDeleteResponse` (#34051)

* remove leftover code

* Server drive query information request (#34082)

* Rdp client refactor (#34122)

* Add handling for `DeviceCloseRequest` (#34139)

* Updates to `IronRDP` latest (#34744)

* Updates to IronRDP latest with a slightly different API

* remove defunct comment

* `ServerDriveQueryDirectoryRequest` and `SharedDirectoryListRequest/Response` (#34746)

* `ServerDriveQueryVolumeInformationRequest` and `ClientDriveQueryVolumeInformationResponse` (#34871)

* `DeviceControlRequest` (#34898)

* `Read` (#34914)

* `Write` (#34919)

* `SetInformation` (#35092)

* `LockControl` (#35146)

* Stack pr feedback and other cleanup (#35306)

* Adds desktop access websocket pattern to vite config

* Updates IronRDP to latest, removes manual context strings in favor of automatically generated (by this latest IronRDP commit) (#35392)

* Small line fixes, comment removal, changing license to AGPL

* Update Go/Rust interface section of README (#35590)

* Ironrdp manual docs (#35455)

* Remove unnecessary whitespace

* Refactor navigation paths in Active Directory documentation for clarity

Replaced textual descriptions with formatted paths using `>` symbols for better readability.

Having been subject to going through many such tutorials myself, I find this to be a more
user-friendly way of presenting the information. It's very common to need to go back and
forth between the documentation and the group policy manager, and having these paths in a
format that can catch the eye quickly is a big help. This also appears to be common practice
e.g.

- https://softwarekeep.com/help-center/how-to-enable-remote-desktop-on-windows
- https://www.helpwire.app/blog/remote-desktop-group-policy/

* Add instructions for enabling RemoteFX

* Add an optional step to the end of each GPO update subsection

This lets us point users to subsections individually without worrying
about reminding them that they need to run a `gpupdate /force` each
time (because its already right there in the subsection).

* lowercase "open"

* Updates configuration script to enable RemoteFX (#35461)

* Restructure Cargo workspace (#35591)

* Update `IronRDP` to latest, fix key log leak (#35707)

Updates IronRDP to latest with the changes necessary to keep up with the changes in https://github.com/Devolutions/IronRDP/pull/328. We select the `"rustls"` feature explicitly now, this is in line with our implicit choice of it as [the default](https://github.com/Devolutions/IronRDP/pull/325/files#diff-1f64036f3e460819b2b1e954803b7f266feca0e2787ca0614ae1253323944f59L19) before these latest changes.

Also creates a custom debug for `ScardBackend` so as to not leak `key_der` in the logs.

* Don't leak pin in the logs

* Show clear error when export can't be done

* Show url of recording in webui

* patching up merge mistake

* use EndTime and StartTime to calculate duration

---------

Co-authored-by: Isaiah Becker-Mayer <[email protected]>
2023-12-21 20:52:22 +00:00
Przemko RobakowskiandZac Bergquist 6259164732 Update docs for static_hosts in Windows Desktop configuration (#35805)
* Update docs for static hosts in Desktop

* Update docs/pages/desktop-access/getting-started.mdx

Co-authored-by: Zac Bergquist <[email protected]>

* Update docs/pages/desktop-access/getting-started.mdx

Co-authored-by: Zac Bergquist <[email protected]>

* review comment

* e

* review comment

* review comment

---------

Co-authored-by: Zac Bergquist <[email protected]>
2023-12-18 22:21:22 +00:00
Przemko RobakowskiandZac Bergquist 07a9b111e8 Improve Windows hosts registration (#35336)
* New way of defining static hosts in config

* comments

* modify check to include static_hosts

* short-circuit check

* comments

* fix imports

* fix test

* review comments

* Update lib/config/configuration.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update lib/config/fileconf.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update lib/config/fileconf.go

Co-authored-by: Zac Bergquist <[email protected]>

* Update lib/srv/desktop/windows_server.go

Co-authored-by: Zac Bergquist <[email protected]>

* rename hosts->adhosts

* add docs

* remove old hearbeat code for static desktops

* rename hosts->adhosts

* refactor adhosts and hosts

---------

Co-authored-by: Zac Bergquist <[email protected]>
2023-12-13 23:18:02 +00:00
Przemko RobakowskiandIsaiah Becker-Mayer aa25bfb97a Add non-AD desktops to Enroll New Resource (#35231)
* Add non-AD to Enroll new resource

* add discoverresource to proto

* reword desktops labels

* Update UI test snapshot

* Update UI test snapshot

* Update web/packages/teleport/src/Discover/SelectResource/resources.tsx

Co-authored-by: Isaiah Becker-Mayer <[email protected]>

* Update web/packages/teleport/src/Discover/SelectResource/resources.tsx

Co-authored-by: Isaiah Becker-Mayer <[email protected]>

* Update UI test snapshot

---------

Co-authored-by: Isaiah Becker-Mayer <[email protected]>
2023-12-11 23:48:25 +00:00
Przemko RobakowskiandZac Bergquist 1e23f70e29 Add docs for non-AD desktop access for OSS users (#31915)
* Add docs for non-AD desktop access for OSS users

* Add docs for non-AD desktop access for OSS users

* Update docs/pages/desktop-access/getting-started.mdx

Co-authored-by: Zac Bergquist <[email protected]>

* Update docs/pages/desktop-access/getting-started.mdx

Co-authored-by: Zac Bergquist <[email protected]>

* Update docs/pages/desktop-access/getting-started.mdx

Co-authored-by: Zac Bergquist <[email protected]>

* Update getting-started.mdx

* Move docs to top

---------

Co-authored-by: Zac Bergquist <[email protected]>
2023-09-19 23:05:55 +00:00
Przemko Robakowski 7b4c9f43d1 Enable Rust in Authentication Package build (#31094) 2023-08-28 21:06:18 +00:00
Przemko RobakowskiandNoah Stride 9d57eb4642 Add Rust to dronegen (#30822)
* Add Rust to dronegen

* Update build.assets/windows/build.ps1

Co-authored-by: Noah Stride <[email protected]>

---------

Co-authored-by: Noah Stride <[email protected]>
2023-08-26 18:00:46 +00:00
Przemko Robakowski ce06b9c81c Add non-AD for OSS to test plan (#30820) 2023-08-22 19:17:49 +00:00
Przemko Robakowski ef42fbecb7 Limited access to non-AD desktop for OSS users (#28977) 2023-08-11 18:02:23 +00:00
Przemko RobakowskiandIsaiah Becker-Mayer f775f9658c Windows user creation (#24780)
* Windows auto user creation

* changes in role

* fix roles

* make grpc

* fix imports

* fix test

* fix test

* fix test

* fix test

* fix test

* windows labels

* rename OID, add json tags

* params to struct

* grpc

* Update lib/services/role.go

Co-authored-by: Isaiah Becker-Mayer <[email protected]>

* Update lib/services/access_checker.go

Co-authored-by: Isaiah Becker-Mayer <[email protected]>

* grpc

* bump e

* only add extension when we create user

---------

Co-authored-by: Isaiah Becker-Mayer <[email protected]>
2023-04-28 18:11:44 +00:00
Przemko Robakowski 75df7682e5 Add non-AD tests to test plan (#25266) 2023-04-27 18:49:22 +00:00
Przemko Robakowski 417ced7df4 Add building Windows Authentication Package to Drone (#23811)
* Add building Windows Authentication Package to Drone

* Add building Windows Authentication Package to Drone

* Set test build version

* Test trigger

* Trigger + version update

* fix path

* path + version

* trigger?

* fix windres

* fix windres

* fix windres

* fix windres

* fix windres

* handle windows windres

* handle windows windres

* update e

* gocache

* gocache

* gocache

* update e

* go version

* go version

* go version

* tes

* tes

* test

* bump e

* bump e

* dronegen

* concurrent

* tag trigger

* bump version

* trigger

* trigger

* trigger

* bump e

* bump e, cleanup build

* fix signing

* fix signing

* rename

* fix signing

* restore trigger

* restore trigger

* bump version

* relcli update

* bump version

* bump version

* restore version

* restore e

* dronegen

* dronegen

* bump e

* dronegen

* dronegen

* dronegen
2023-04-14 21:09:17 +00:00
Przemko Robakowski cf8e6ac7c2 Add enterprise license indicator in Windows Desktop certificate (#21053)
This change adds enterprise license indicator in certificates generated for Windows Desktop access.
2023-02-01 21:35:49 +00:00
9ecfca3c73 Add non_ad_hosts to windows desktop service config (#19806)
Co-authored-by: Zac Bergquist <[email protected]>
Co-authored-by: Isaiah Becker-Mayer <[email protected]>
2023-01-11 20:44:19 +00:00
Przemko Robakowski b2e1807d03 Make bitmaps opaque in Desktop Access (#18985)
This change brings back setting alpha to 100% (fully opaque) before sending bitmap data to TDP in Desktop Access.
This fixes problem with using Desktop Access with Windows 10.
2022-12-07 13:00:24 +00:00
Przemko Robakowski 951aff47ed IP-based validation for SSH (#13243)
This change adds IP-based validation for SSH certificates.
There's new option in role definition:

kind: role
metadata:
  name: dev
spec:
  options:
    pin_source_ip: true
When that is set to true client IP must be the same when generating certificates and using them. It uses source_address critical option that should be supported by both teleport and sshd and only applies to certificates we send to user (like in tsh login), we don't pin IP in certificates issued for web UI as they can't leak.
This change also omits machine ID (it uses different code path) - it will be added in separate PR.

Most of the lines changed are from regenerating types.proto, change itself is not that big

Relates #11719
2022-06-08 22:49:37 +00:00
Przemko Robakowski 8b601f9cde Read all PROXYv2 header bytes (#12861)
In PROXYv2 protocol there can be more bytes after IP/ports data that can be ignored but need to be consumed. This change handles that.
2022-05-25 01:34:35 +00:00
Przemko Robakowski 17fc073379 Support proxy protocol v2 in MySQL (#12424)
#11684 added support for proxy protocol v2 for SSH and Postgres but MySQL uses different code path and it was missing. This change fixes that.
It also adds tests for v2 protocol support for MySQL, Postgres, Mongo and Redis
2022-05-18 16:04:10 +00:00
Przemko Robakowski b110b0ba7f RFD 66: IP-based validation (#11719)
Relates #7081
2022-05-17 00:16:22 +02:00
Przemko Robakowski 3ff19cf7c4 Support proxy protocol v2 (#11684)
This change add multiplexer support for proxy protocol v2 (binary).

Closes #4904
2022-04-05 00:48:16 +00:00
Przemko Robakowski 029691f473 Fix build (#11326)
#11272 removed some required dependencies, this change brings them back
2022-03-21 22:10:41 +00:00
Przemko Robakowski 01b8aeb568 Update gosaml2 so it supports AES256GCM (#11272)
This change updates gosaml2 to our fork with added support for AES256GCM and AES192GCM for encrypted assertions.
I also run go mod tidy to cleanup go.mod file

Closes #10909
2022-03-21 20:18:15 +00:00
Przemko Robakowski 35a9bbc887 Use first available auth server (#11229)
Currently we use random auth server from the list but if it's unavailable (for example it was restarted but there's still entry in cache, dynamodb backend etc) we return error.
This change tries all servers (in random order) and uses first that is available.

Closes #10019
2022-03-18 22:15:54 +00:00
Przemko Robakowski 18e8e985ad Disable OTP code echoing in terminal (#10953)
This hides OTP input in CLI the same way we do for passwords
2022-03-09 19:54:22 +00:00