Crates.io | ooproxy |
lib.rs | ooproxy |
version | 1.0.3 |
source | src |
created_at | 2018-12-10 11:40:29.094595 |
updated_at | 2019-02-04 12:37:08.602973 |
description | A reverse OpenID Connect and OAuth 2 proxy, implementing the client-credentials flow. |
homepage | https://github.com/HAL24K/ooproxy |
repository | https://github.com/HAL24K/ooproxy |
max_upload_size | |
id | 101103 |
size | 159,561 |
A reverse OpenID Connect and OAuth 2 proxy, implementing the client-credentials flow (machine-to-machine authentication/authorization). It can be used to protect http-based APIs with an authentication mechanism. Because it only supports the client-credentials flow, there are no redirects when the authentication fails, and only bearer tokens are supported in the authorization header.
The proxy has the following advantages:
The proxy supports the following algorithms:
The proxy can be configured through environment variables:
It also supports loading a configuration from a settings.toml file in $PATH:
listen_url = "0.0.0.0:8080'
listen_ssl_url = '0.0.0.0:4443'
cert_file = 'cert.pfx'
cert_password = 'hunter2'
upstream_url = 'http://upstream.com'
provider_url = 'https://my-identity.com'
client_secret = 'secret'
key_expiry_secs = 3600
upstream_timeout_secs = 120
audience = '"my-api"'
subject = 'my-user'
leeway = 3
num_workers = 8
Run from docker:
docker run -e LISTEN_URL=0.0.0.0:80 -e PROVIDER_URL=https://identity -e CLIENT_SECRET=secret -e UPSTREAM_URL=https://upstream/ -e RUST_LOG=info -e KEY_EXPIRY_SECS=3600 -e UPSTREAM_TIMEOUT_SECS=60 -e NUM_WORKERS=4 -e AUDIENCE='\"myproxy\"' -e SUBJECT=myuser -e LEEWAY=2 -e CERT_FILE=cert.pfx -e CERT_PASSWORD=hunter2 hal24000/ooproxy:lastest
Run outside docker (after building, use a settings.toml file):
ooproxy
If you want to run the proxy inside docker:
docker build . -t ooproxy
For a docker image with TLS use:
docker build . -t ooproxy --build-arg features=tls
Or, if you want to run the proxy outside of docker:
cargo install ooproxy
With TLS:
cargo install ooproxy --all-features
HAL 24000 B.V. 2018