https://github.com/greenstatic/opensdp
A proof of concept Software Defined Perimeter (SDP) implementation using OpenSPA for service hiding
https://github.com/greenstatic/opensdp
Last synced: 5 months ago
JSON representation
A proof of concept Software Defined Perimeter (SDP) implementation using OpenSPA for service hiding
- Host: GitHub
- URL: https://github.com/greenstatic/opensdp
- Owner: greenstatic
- License: gpl-3.0
- Created: 2018-08-15T13:28:01.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-02-13T16:45:10.000Z (over 4 years ago)
- Last Synced: 2024-11-13T19:42:02.204Z (over 1 year ago)
- Language: Go
- Size: 290 KB
- Stars: 51
- Watchers: 6
- Forks: 20
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenSDP
A proof of concept [Software Defined Perimeter (SDP)](https://en.wikipedia.org/wiki/Software_Defined_Perimeter) implementation using OpenSPA for service hiding.

## How It Works
Currently being a PoC, OpenSDP supports only service discovery for [OpenSPA](https://github.com/greenstatic/openspa) protected services.
* Each service is protected by an OpenSPA server
* Clients not knowing where OpenSPA hidden services are contact the OpenSDP server for service discovery over mutual TLS
* Clients are then free to perform the OpenSPA handshake with all services that they are authorized

Currently it's only possible to define services and the clients ACL using a series of YAML files.
This is planned to change in the coming releases.
## Client Usage
Currently there are two commands: services and access.
### Services
Returns a list of authorized services.
### Access
This command is used to acquire access to a service.
You can use it by specifying the service name, eg. `./openspa-client access example-www`.
It is also possible to acquire access to all authorized services (returned using the `services` command) using the command line flag `-a`.
## Setup
A tutorial how to setup OpenSDP with a working OpenSPA installation is available [here](docs/OpenSDP%20Setup%20Tutorial.md).
## TODO
- [ ] Add logging to server
- [ ] Add timeout if HTTP request is taking too long
## License
This software is licensed under: [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).