Proxy
Project description
directory-proxy
Proxy for rejecting non-whitelisted IP addresses.
Proxy sets a Hawk signature header that the upstream service can check, rejecting requests that do not have a valid signature.
Installation
pip install directory-proxy
Usage
Proxy can be ran as a standalone service or as a WSGI worker running alongside the upstream service.
WSGI worker
The proxy can be run on the same box as the upstream service. Install proxy on the same box as the upstream service then run the WSGI worker:
DJANGO_SETTINGS_MODULE=directory_proxy.conf.settings \
gunicorn directory_proxy.conf.wsgi --bind 0.0.0.0:$UPSTREAM_PORT
Standalone service
If you're unable to run the WSGI worker on the same box as the upstream service then the proxy can be ran as a standlone service.
Configuration
Set the following environment variables to configure the proxy:
Environment variable | Details |
---|---|
IP_RESTRICTOR_ALLOWED_ADMIN_IPS | Allow IP addresses. Command delimited |
IP_RESTRICTOR_ALLOWED_ADMIN_IP_RANGES | Allow IP ranges. Command delimited |
IP_RESTRICTOR_SKIP_CHECK_ENABLED | Skip IP check. Check cookie instead |
IP_RESTRICTOR_SKIP_CHECK_SECRET | Shared secret for checking cookie |
UPSTREAM_DOMAIN | Domain of upstream service |
UPSTREAM_SIGNATURE_SECRET | Hawk shared secret for upstream request |
UPSTREAM_SIGNATURE_SENDER_ID | Hawk sender ID for upstream request |
Local installation
$ git clone https://github.com/uktrade/directory-proxy
$ cd directory-proxy
Debugging
Setup debug environment
$ make debug
Run debug webserver
$ make debug_webserver
Run debug tests
$ make debug_test
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file directory_proxy-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: directory_proxy-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/38.7.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ac96030ac9c2bac48c03f1e82249de318de939e2ac5d74ae8241595014c19f8 |
|
MD5 | a2e6654b2bda8ff2bf146938ba7688d5 |
|
BLAKE2b-256 | 0bb0aa374ddb2d6ab25a9ac11b1edcfed68ffd3011a4523e0215c4844953f3c3 |