fix(mstsgu): use native SSPI for gateway auth - #1840
Draft
Marc-André Moreau (mamoreau-devolutions) wants to merge 2 commits into
Draft
fix(mstsgu): use native SSPI for gateway auth#1840Marc-André Moreau (mamoreau-devolutions) wants to merge 2 commits into
Marc-André Moreau (mamoreau-devolutions) wants to merge 2 commits into
Conversation
Use native Windows SSPI with TLS endpoint binding for regular RD\nGateway HTTP Negotiate and NTLM authentication.\n\nFall back to portable authentication when native TLS binding is unavailable.
Contributor
Author
|
Validated against the authorized gateway with strict TLS: the native SSPI WebSocket-upgrade flow completed with A subsequent MS-TSGU handshake requested unsupported SmartCard extended authentication; no SmartCard credentials are configured, so full session establishment remains blocked. This is outside the HTTP-authentication scope. Note LLM-assisted content (no human feedback). |
Marc-André Moreau (mamoreau-devolutions)
deployed
to
llm-providers
August 30, 2026 00:13 — with
GitHub Actions
Active
Copilot started reviewing on behalf of
Marc-André Moreau (mamoreau-devolutions)
August 30, 2026 00:14
View session
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Windows-native SSPI authentication with TLS endpoint binding for RD Gateway, retaining portable authentication as fallback.
Changes:
- Adds TLS channel-binding extraction and native SSPI authentication.
- Preserves WebSocket keys across authentication retries.
- Updates tests, documentation, dependencies, and changelog.
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
crates/ironrdp-tls/tests/native_tls.rs |
Tests channel-binding encoding. |
crates/ironrdp-tls/src/native_tls.rs |
Builds SSPI endpoint bindings. |
crates/ironrdp-tls/src/lib.rs |
Exports the binding helper. |
crates/ironrdp-mstsgu/tests/packet_io.rs |
Tests authenticated WebSocket retries. |
crates/ironrdp-mstsgu/src/packet_io.rs |
Propagates bindings into authentication. |
crates/ironrdp-mstsgu/src/http_auth/native_http_auth.rs |
Implements native Windows SSPI. |
crates/ironrdp-mstsgu/src/http_auth/mod.rs |
Selects native or portable authentication. |
crates/ironrdp-mstsgu/README.md |
Documents native authentication. |
crates/ironrdp-mstsgu/CHANGELOG.md |
Records the feature. |
crates/ironrdp-mstsgu/Cargo.toml |
Adds Windows bindings. |
Cargo.lock |
Records the dependency edge. |
Exercise the Windows SSPI continuation path with channel binding and run gateway transport tests through the repository check command.\n\nKeep Windows bindings out of Rustls-only builds.
Marc-André Moreau (mamoreau-devolutions)
deployed
to
llm-providers
August 30, 2026 00:58 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
marked this pull request as draft
August 30, 2026 11:02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Use native Windows SSPI with TLS endpoint binding for regular RD Gateway HTTP Negotiate and NTLM authentication.
Fall back to portable authentication when native TLS binding is unavailable.