bolkedebruin / rdpgw

Remote Desktop Gateway in Go for deploying on Linux/BSD/Kubernetes
Apache License 2.0
698 stars 115 forks source link

Question: one rdpgw to many users #70

Open gabstopper opened 1 year ago

gabstopper commented 1 year ago

I may be missing something but is it possible to have a single rdpgw instance with multiple clients connecting, each to a specific RDP destination?

For example, user1 -> 172.18.1.1 user2 -> 172.18.1.2 user3 -> 172.18.1.3 ...

In addition, the users and destination IPs will be dynamically added when virtual machines become available. So there would be a requirement to effectively add/remove these mappings dynamically.

I have gotten this to work with a single rdpgw and single ubuntu instance but i'm having a hard time understanding if this use case is addressed and how to get started.

Great project btw!

Thanks!

bolkedebruin commented 1 year ago

The gateway can serve many clients and is bounded by CPU and network on the host. What you would like to accomplish is possible by specifying the "host" parameter (e.g. https://rdpgw/connect?host=172.18.1.1) when downloading the RDP file. The specified host then needs to be in the list of allowed hosts to connect to, which is static. This does not yet tie a session of a certain user to a particular host.

To accomplish that, per your example, you could list all possible hosts to connect to in the config file and jwt encrypt the host parameter per querytokensigningkey and same issuer. This last bit requires some work on your side by creating a web page or something that creates the link with the encrypted host query parameter.

gabstopper commented 1 year ago

Thanks for the info! I'll give it a try; this should work for me.

bigbenz8 commented 6 months ago

I have a similar feature request, how do I set the querytokensigningkey parameter (when I put it in the rdpgw.yml file, I get an error and can't start the container ). Is there a successful example of this?