Devolutions / Devolutions/ironPosh

Auth: CredSSP support

Open
#46 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
10
Forks
2
PR merge metrics
No merged PRs in 30d

Description

## Gap
CredSSP is not supported. Some locked-down environments mandate it (and it enables credential delegation / second-hop). We currently support Negotiate/Kerberos/NTLM/Basic.

## Current state
- Auth methods in `crates/ironposh-client-core/src/connector/auth_sequence.rs` / `authenticator.rs` (via `sspi`). No CredSSP path.

## Required
- Add a CredSSP auth method (the `sspi` crate provides a CredSSP implementation — wire it into the auth sequence).
- WinRM message encryption with CredSSP uses its own MIME boundary and 16 KB chunking — implement the CredSSP wrap/unwrap path (distinct from SPNEGO sealing) in `connector/encryption.rs`.
- Expose `--auth-method credssp` in the tokio client.

## Acceptance
- e2e: connect + run a command over HTTP with CredSSP (sealed) and over HTTPS, mirroring the existing transport/auth matrix cells.

## References
- pypsrp `encryption.py` (CredSSP 16 KB chunking) + `wsman.py` credssp path.
- `sspi` crate CredSSP.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading crates/ironposh-client-core/src/connector/auth_sequence.rs, authenticator.rs, and encryption.rs, then inspect the existing tokio client auth options. Use the sspi crate and the pypsrp encryption.py and wsman.py references to understand CredSSP wrapping. Done means CredSSP is exposed, HTTP sealed and HTTPS connections work, and the matching e2e transport/auth matrix cells pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
authentication, cli, networking, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.