Skip to content

Add RDP support - #63

Draft
guimard wants to merge 6 commits into
mainfrom
rdp
Draft

guimard wants to merge 6 commits into
mainfrom
rdp

Conversation

@guimard

@guimard guimard commented Jan 13, 2026

Copy link
Copy Markdown
Member

No description provided.

@guimard
guimard requested a review from Copilot January 13, 2026 11:27
@guimard guimard self-assigned this Jan 13, 2026
@guimard
guimard force-pushed the rdp branch 2 times, most recently from ba12740 to cff2f76 Compare January 13, 2026 11:29

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.

Pull request overview

This pull request adds comprehensive RDP (Remote Desktop Protocol) support to the LLNG-PAM-MODULE project by integrating WALLIX Redemption as an RDP proxy with LemonLDAP::NG authentication. The implementation provides session recording, unified SSH/RDP authorization, and native RDP client support.

Changes:

  • Adds WALLIX Redemption RDP proxy with Python-based authentication hook integrated with LemonLDAP::NG
  • Creates Docker-based proof-of-concept environment with SSO and RDP proxy services
  • Provides comprehensive documentation including feasibility study, setup guides, and competitor analysis

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 24 comments.

Show a summary per file
File Description
docker-rdp-poc/README.md Main documentation for RDP PoC setup and usage
docker-rdp-poc/windows-target/README.md Windows Server configuration guide for RDP targets
docker-rdp-poc/docker-compose.yml Docker Compose orchestration for SSO and RDP proxy services
docker-rdp-poc/lmConf-1.json LemonLDAP::NG portal configuration with PAM Access settings
docker-rdp-poc/sso/Dockerfile Minimal Dockerfile extending LLNG portal image
docker-rdp-poc/redemption/Dockerfile Multi-stage build for WALLIX Redemption from source
docker-rdp-poc/redemption/config/rdpproxy.ini Redemption proxy configuration with LLNG integration
docker-rdp-poc/redemption/config/passthrough.py Python authentication hook calling LLNG API
doc/rdp-feasibility.md Technical feasibility study evaluating RDP solutions
doc/competitors.md Competitor analysis including RDP capabilities

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread doc/rdp-feasibility.md Outdated
Comment thread docker-rdp-poc/lmConf-1.json
Comment thread docker-rdp-poc/redemption/config/passthrough.py Outdated
Comment thread docker-rdp-poc/redemption/config/passthrough.py Outdated
Comment thread docker-rdp-poc/redemption/Dockerfile
Comment thread docker-rdp-poc/redemption/config/passthrough.py Outdated
Comment thread docker-rdp-poc/redemption/config/passthrough.py Outdated
Comment thread docker-rdp-poc/redemption/config/passthrough.py Outdated
Comment thread docker-rdp-poc/sso/Dockerfile
Comment thread docker-rdp-poc/redemption/Dockerfile
guimard and others added 6 commits April 13, 2026 12:42
- Add libboost-build-dev to Dockerfile for bjam build tool
- Add try/except for requests import with graceful error handling
- Add robust logging configuration with fallback to stderr
Security fixes:
- Remove password logging from passthrough.py (was in debug logs)
- Add ensure_ascii=True to JSON output

Functional fixes:
- Add chmod for passthrough.py script
- Remove invalid health check endpoint
- Fix LLNG_SERVER_TOKEN in docker-compose.yml
- Remove unused imports (datetime, Optional)
- Update README enrollment instructions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Fix "15-21 months" → "15-21 days" in rdp-feasibility.md
- Add ensure_ascii=True to error case in passthrough.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Fix $hGroup -> $hGroups variable name in rdp-feasibility.md
- Generate self-signed certificates for PoC in Dockerfile

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
guimard added a commit that referenced this pull request Sep 6, 2026
The plugin-boundary study was written against the published plugin code. The
upstream repository has moved since: of the nine tickets the R-P sheets cite,
six are now fixed on linagora/lemonldap-ng-plugins main (#58, #59, #60, #69,
#72, #74) and three are in review (#50 -> PR #92; #54/#66/#68 -> PRs #87 and
#88; #63 -> PR #90). Leaving "no fix exists" in the sheets would have made the
study wrong within a week of being written.

None of it is released, so no residual score moves and no matrix cell changes:
the matrices describe what an operator can deploy today, and that is the
property the checker enforces. What changes is what the acceptance of R-P3 and
R-P7 actually commits to. "A fix that does not exist" and "a fix that is merged
but unpublished" are different decisions, and the homologation authority should
be signing the second one.

Two upstream changes are recorded because they invalidate text rather than
scores:

- #56 makes the source-address pin fail closed. R-P1 listed the pin as a
  mitigating factor without saying that it was silently omitted whenever the
  observed address was unusable -- which is the case the operator never sees.
- #55 caps a voucher that no fingerprint binds at 900 s instead of 12 h. That
  narrows the window R-P1 describes for a self-declared bastion, but only for a
  caller that presents no fingerprint.

R-P6's mitigating factor "ob-bastion-id shows a missing device-id" stops
holding the day the portal is upgraded: #86 removes /pam/bastion-token, which
is the endpoint ob-bastion-id calls. MT51 and open-bastion#246 carry the
migration to POST /pam/whoami (upstream PR #94).

The upgrade note is stated in the sheets rather than left for the upgrade
night: it removes an endpoint open-bastion still calls, shortens unbound
vouchers by a factor of 48, and makes the ssh-ca admin routes deny until
sshCaAdminRule is set.

Verified: tests/test_ob_ebios_matrices.sh passes (47 sheets, no divergence),
prettier is clean on the three files touched, and the link/anchor sweep reports
only the pre-existing forward reference to the llng-configuration.md section
that PR #238 adds.

Refs #218, #246

Claude-Session: https://claude.ai/code/session_011q88Fs4nFuUs7JMvmgbBTN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants