Skip to main content

Hide your Django site behind basic authentication mechanism with IP whitelisting support.

Project description

This simple package ships middleware that lets you to set basic auth and IP whitelisting via settings.

Use case

This package has been created in mind for staging and demo sites that need to be completely hidden from the Internet behind a password or IP range.

Requirements

  • Django 1.11 or 2.0

  • Python 3.4, 3.5, 3.6

Installation

The package is on PyPI.

pip install django-basic-auth-ip-whitelist

Configuration

In your Django settings you can configure the following settings.

BASIC_AUTH_LOGIN and BASIC_AUTH_PASSWORD

Credentials that you want to use with your basic authentication.

BASIC_AUTH_WHITELISTED_IP_NETWORKS

Set a list of network ranges (strings) compatible with Python’s ipaddress.ip_network that you want to be able to access the website without authentication from. It must be either a string with networks separated by comma or Python iterable.

Example settings

MIDDLEWARE += [
    'baipw.middleware.BasicAuthIPWhitelistMiddleware'
]
BASIC_AUTH_LOGIN = 'somelogin'
BASIC_AUTH_PASSWORD = 'greatpassword'
BASIC_AUTH_WHITELISTED_IP_NETWORKS = [
    '192.168.0.0/28',
    '2001:db00::0/24',
]

Advanced customisation

Getting IP

If you want to have a custom behaviour when getting IP, you can create a custom function that takes request as a parameter and specify path to it in the BASIC_AUTH_GET_CLIENT_IP_FUNCTION settings, e.g.

BASIC_AUTH_GET_CLIENT_IP_FUNCTION = 'utils.ip.get_client_ip'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

File details

Details for the file django-basic-auth-ip-whitelist-0.1.post3.tar.gz.

File metadata

File hashes

Hashes for django-basic-auth-ip-whitelist-0.1.post3.tar.gz
Algorithm Hash digest
SHA256 df46f1d1f5730a3f07dd0411d91b515f5b369a080b2d816f2e303d48eb1e109b
MD5 02141d974b039a48b0611d63bb87c4b0
BLAKE2b-256 2b0591141b79ecd371a496d25c555f7b3d536c162ee0d67c4db5b93225398f6b

See more details on using hashes here.

Provenance

File details

Details for the file django_basic_auth_ip_whitelist-0.1.post3-py3-none-any.whl.

File metadata

File hashes

Hashes for django_basic_auth_ip_whitelist-0.1.post3-py3-none-any.whl
Algorithm Hash digest
SHA256 096ccc073ee9f6de67e4e48a11d488c8041d86d05824ccbaffbc72454c8908ee
MD5 0ca736bf5e52fce91f84f0797af3cd46
BLAKE2b-256 ea8291cb439a0cda654dc8fe749c7f90f066c8c04090e1ac6b467a136f82c2ae

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page