Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -822,6 +822,8 @@ only supported when connecting to hosts that are part of an Active Directory
domain. Teleport will not perform NLA when connecting to hosts as a local
Windows user.

NLA is not supported when Teleport runs in FIPS mode.

### Computer Name

In order to complete a successful authentication flow, Teleport needs to know
Expand Down
7 changes: 7 additions & 0 deletions lib/service/desktop.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"log/slog"
"net"
"net/http"
"os"
"strconv"

"github.com/gravitational/trace"
Expand Down Expand Up @@ -238,6 +239,12 @@ func (process *TeleportProcess) initWindowsDesktopServiceRegistered(logger *slog
Hostname: cfg.Hostname,
ConnectedProxyGetter: proxyGetter,
ResourceMatchers: cfg.WindowsDesktop.ResourceMatchers,

// For now, NLA is opt-in via an environment variable.
// We'll make it the default behavior in a future release.
// NLA code is also not FIPS-compliant so we will disable it
// in FIPS mode
NLA: !process.Config.FIPS && os.Getenv("TELEPORT_ENABLE_RDP_NLA") == "yes",
})
if err != nil {
return trace.Wrap(err)
Expand Down
9 changes: 4 additions & 5 deletions lib/srv/desktop/windows_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import (
"fmt"
"log/slog"
"net"
"os"
"strconv"
"strings"
"sync"
Expand Down Expand Up @@ -220,6 +219,9 @@ type WindowsServiceConfig struct {
Labels map[string]string
// ResourceMatchers match dynamic Windows desktop resources.
ResourceMatchers []services.ResourceMatcher
// NLA indicates whether the client should perform Network Level Authentication
// (NLA) when initiating the RDP session.
NLA bool
}

// HeartbeatConfig contains the configuration for service heartbeats.
Expand Down Expand Up @@ -369,10 +371,7 @@ func NewWindowsService(cfg WindowsServiceConfig) (*WindowsService, error) {
closeCtx: ctx,
close: close,
auditCache: newSharedDirectoryAuditCache(),

// For now, NLA is opt-in via an environment variable.
// We'll make it the default behavior in a future release.
enableNLA: os.Getenv("TELEPORT_ENABLE_RDP_NLA") == "yes",
enableNLA: cfg.NLA,
}

s.ca = windows.NewCertificateStoreClient(windows.CertificateStoreConfig{
Expand Down
Loading