Skip to main content

No project description provided

Project description

WSGI authentication middleware

This app is just one piece in our bigger authorization scheme for microservices. Its purpose is make migrating to session cookies simpler by ensuring that backend microservices only need to deal with JWTs that contain all the needed claims.

Architecture decisions

  • The session UUIDs are stored in a redis database that can be reached by the wrapped Flask app.
  • The session UUIDs are passed as cookie values.
  • The redis database contains a JWT for each valid session UUID. The middleware doesn’t care about the actual contents of the JWT it just needs to be there.
  • The session UUIDs in the cookie are signed using itsdangerous. The middleware only handles session UUIDs with a valid signature.

Usage

from impact_stack.auth_wsgi_middleware import AuthMiddleware

app = Flask(__name__)
AuthMiddleware.init_app(app)

Configuration variables

The middleware reads its configuration from the Flask app.config dictionary. All variables are prefixed with AUTH_….

variable description
AUTH_SECRET_KEY The secret key used to verify the cookie value’s signature. It defaults to SECRET_KEY.
AUTH_SIGNATURE_ALGORITHM A hash function to use as digest method for signing the session IDs. Defaults to hashlib.sha256
AUTH_COOKIE_NAME Name of the cookie from which the the session UUID is read. Defaults to session_uuid.
AUTH_REDIS_URL URL to a redis database (see the redis-py documentation for more information)).
AUTH_REDIS_CLIENT_CLASS The redis client class used by the middleware. Mostly needed for testing. Defaults to redis.Redis
AUTH_HEADER_TYPE Prefix used when adding the JWT to the HTTP Authorization header. Defaults to the value of JWT_HEADER_TYPE which in turn defaults to 'Bearer'.

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

impact_stack_auth_wsgi_middleware-0.8.0.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file impact_stack_auth_wsgi_middleware-0.8.0.tar.gz.

File metadata

File hashes

Hashes for impact_stack_auth_wsgi_middleware-0.8.0.tar.gz
Algorithm Hash digest
SHA256 a10ab431b24a6326b5c46e2b0175d92833ca6de6763ba41d007ae9558fd6157b
MD5 e55f6de25049706ee01dacdc9a88b160
BLAKE2b-256 b2f53484adb3014164d2f9c1db0ad7baab6256c738955e5edd652c8f00de46ac

See more details on using hashes here.

File details

Details for the file impact_stack_auth_wsgi_middleware-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for impact_stack_auth_wsgi_middleware-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36a0b47039e59318b7938ec7aec03a90bb1d9042c5104e86d780e4e8d4188925
MD5 32e2dd9d125756ad64f888df4ea0c6d9
BLAKE2b-256 4a9f2c28b621b4e9007944346859079c56bde8f6d0a07b3d9aa1a994961ca997

See more details on using hashes here.

Supported by

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