Skip to content

feat(credssp): use the KdcResolution enum instead of KDC url - #1987

Open
Rostyslav-Romanets wants to merge 1 commit into
Devolutions:masterfrom
Rostyslav-Romanets:add-iakerb-support
Open

Rostyslav-Romanets wants to merge 1 commit into
Devolutions:masterfrom
Rostyslav-Romanets:add-iakerb-support

Conversation

@Rostyslav-Romanets

Copy link
Copy Markdown

This PR adds the KdcResolution enum, which specifies how Kerberos should resolve the KDC, either by using IAKERB proxy or by connecting directly to an external KDC specified by URL.

THis PR is part of integration of the IAKERB extension in sspi-rs and updates the codebase to use the updated public API of sspi-rs.

Related PRs

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Local path overrides break clean checkouts, and the testsuite imports an incompatible KdcResolution type.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 1 High severity · 1 Medium severity · 1 Low severity

Open (3)
What changed in this PR

Updates CredSSP Kerberos configuration for sspi 0.22 and IAKERB-based KDC resolution.

Changes:

  • Adds KdcResolution and Kerberos configuration constructors.
  • Migrates client, web, and test code to the new API.
  • Updates sspi, picky, and related dependencies.
File Description
Cargo.toml Adds local dependency overrides.
Cargo.lock Updates the resolved dependency graph.
ffi/​Cargo.toml Upgrades sspi.
crates/​ironrdp/​Cargo.toml Upgrades example dependency on sspi.
crates/​ironrdp-web/​src/​session.rs Uses URL-based KDC resolution.
crates/​ironrdp-testsuite-extra/​tests/​client/​config.rs Updates the KDC URL assertion.
crates/​ironrdp-mstsgu/​Cargo.toml Upgrades sspi and picky.
crates/​ironrdp-connector/​src/​credssp.rs Adds KDC strategies and conversion to sspi.
crates/​ironrdp-connector/​Cargo.toml Upgrades authentication dependencies.
crates/​ironrdp-client/​src/​config.rs Maps configuration properties to KDC resolution.
crates/​ironrdp-acceptor/​src/​credssp.rs Propagates request length errors.

Comment thread Cargo.toml
# In the meantime, we use this forked version which fixes an undefined behavior in the code expanded by the bridge macro.
diplomat = { git = "https://github.com/CBenoit/diplomat", rev = "6dc806e80162b6b39509a04a2835744236cd2396" }

sspi = { path = "../sspi-rs" }
ironrdp-error = { path = "../ironrdp-error", version = "0.2" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9", features = ["std"] } # public
sspi = { version = "0.21", features = ["scard"] }
sspi = { version = "0.22", features = ["scard"] }

use std::sync::Arc;

use ironrdp::connector::sspi::KdcResolution;
@github-actions github-actions Bot added maintainer-required Maintainer review or intervention is required risk/unknown Risk could not be determined automatically; needs maintainer-level scrutiny scope/core Touches the core architectural tier scope/ffi Affects native or .NET bindings scope/web Affects the web/WASM ecosystem size/L Size: up to 899 counted lines and 20 files; exceeds M in either measure labels Sep 24, 2026

This branch was successfully deployed

1 active deployment
llm-providers — f81c3c6f Deployed Sep 24, 2026 by Rostyslav-Romanets via Classify pull request #604
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer-required Maintainer review or intervention is required risk/unknown Risk could not be determined automatically; needs maintainer-level scrutiny scope/core Touches the core architectural tier scope/ffi Affects native or .NET bindings scope/web Affects the web/WASM ecosystem size/L Size: up to 899 counted lines and 20 files; exceeds M in either measure

Development

Successfully merging this pull request may close these issues.

2 participants