Devolutions / Devolutions/ironPosh
Auth: CredSSP support
- 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