mirror of
https://github.com/bolkedebruin/rdpgw.git
synced 2025-07-21 01:55:57 +02:00
Add more documentation
This commit is contained in:
parent
c68ec69b92
commit
cbb4c29b4d
4 changed files with 57 additions and 9 deletions
3
.github/workflows/go.yml
vendored
3
.github/workflows/go.yml
vendored
|
@ -22,6 +22,9 @@ jobs:
|
||||||
- name: Check out code into the Go module directory
|
- name: Check out code into the Go module directory
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install golint
|
||||||
|
run: go get -u golang.org/x/lint/golint
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: go build -v .
|
run: go build -v .
|
||||||
|
|
||||||
|
|
61
README.md
61
README.md
|
@ -1,6 +1,8 @@
|
||||||
GO Remote Desktop Gateway
|
GO Remote Desktop Gateway
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
:star: Star us on GitHub — it helps!
|
:star: Star us on GitHub — it helps!
|
||||||
|
|
||||||
RDPGW is an implementation of the [Remote Desktop Gateway protocol](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tsgu/0007d661-a86d-4e8f-89f7-7f77f8824188).
|
RDPGW is an implementation of the [Remote Desktop Gateway protocol](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tsgu/0007d661-a86d-4e8f-89f7-7f77f8824188).
|
||||||
|
@ -12,19 +14,62 @@ on Kubernetes.
|
||||||
RDPGW aims to provide a full open source replacement for MS Remote Desktop Gateway,
|
RDPGW aims to provide a full open source replacement for MS Remote Desktop Gateway,
|
||||||
including access policies.
|
including access policies.
|
||||||
|
|
||||||
|
## How to build
|
||||||
|
```bash
|
||||||
|
cd rdpgw
|
||||||
|
go build -o rdpgw .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
By default the configuration is read from `rdpgw.yaml`. Below is a
|
||||||
|
template.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# web server configuration.
|
||||||
|
server:
|
||||||
|
# TLS certificate files (required)
|
||||||
|
certFile: server.pem
|
||||||
|
keyFile: key.pem
|
||||||
|
# gateway address advertised in the rdp files
|
||||||
|
gatewayAddress: localhost
|
||||||
|
# port to listen on
|
||||||
|
port: 443
|
||||||
|
# list of acceptable desktop hosts to connect to
|
||||||
|
farmHosts:
|
||||||
|
- localhost:3389
|
||||||
|
# Allow the user to connect to any host (insecure)
|
||||||
|
enableOverride: false
|
||||||
|
# Set the desktop host to connect to filled in by the claims from oidc
|
||||||
|
hostTemplate: my-{{ preferred_username }}-host:3389
|
||||||
|
|
||||||
|
# Open ID Connect specific settings (required)
|
||||||
|
openId:
|
||||||
|
providerUrl: http://keycloak/auth/realms/test
|
||||||
|
clientId: rdpgw
|
||||||
|
clientSecret: your-secret
|
||||||
|
|
||||||
|
# enabled / disabled capabilities
|
||||||
|
caps:
|
||||||
|
SmartCardAuth: false
|
||||||
|
tokenAuth: true
|
||||||
|
idleTimeout: 10
|
||||||
|
DisablePrinter: true
|
||||||
|
DisablePort: true
|
||||||
|
DisablePnp: true
|
||||||
|
DisableDrive: true
|
||||||
|
```
|
||||||
|
|
||||||
|
## Use
|
||||||
|
Point your browser to `https://your-gateway/connect`. After authentication
|
||||||
|
and RDP file will download to your desktop. This file can be opened by one
|
||||||
|
of the remote desktop clients and it will try to connect to the gateway and
|
||||||
|
desktop host behind it.
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
* Integrate VIPER
|
|
||||||
* Integrate Open Policy Agent
|
* Integrate Open Policy Agent
|
||||||
* Integrate GOKRB5
|
* Integrate GOKRB5
|
||||||
* Integrate uber-go/zap
|
* Integrate uber-go/zap
|
||||||
* Integrate prometheus
|
* Integrate prometheus
|
||||||
* Research: TLS defragmentation
|
* Research: TLS defragmentation
|
||||||
|
|
||||||
## How to build
|
|
||||||
go build rdg.go main.go http.go errors.go
|
|
||||||
|
|
||||||
## How to run
|
|
||||||
Make sure you have a certificate and key file available. You can call those server.pem and key.pem and
|
|
||||||
put them in the same directory as your executable.
|
|
||||||
|
|
||||||
./rdg
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ type OpenIDConfig struct {
|
||||||
ProviderUrl string
|
ProviderUrl string
|
||||||
ClientId string
|
ClientId string
|
||||||
ClientSecret string
|
ClientSecret string
|
||||||
CallbackHost string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type RDGCapsConfig struct {
|
type RDGCapsConfig struct {
|
||||||
|
|
1
go.mod
1
go.mod
|
@ -9,4 +9,5 @@ require (
|
||||||
github.com/prometheus/client_golang v1.7.1
|
github.com/prometheus/client_golang v1.7.1
|
||||||
github.com/spf13/cobra v1.0.0
|
github.com/spf13/cobra v1.0.0
|
||||||
github.com/spf13/viper v1.7.0
|
github.com/spf13/viper v1.7.0
|
||||||
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue