Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (testpypi.python.org).
Help us improve Python packaging - Donate today!

Ticket authentication system similar to mod_auth_tkt used by Apache

Project Description

Simple library that provides a mod_auth_tkt like hashed tickets that can be used for storing user authentication details.

The library is not interchangable with the mod_auth_tkt format, as the mod_auth_tkt does not provide support for ipv6 addresses and different hash algorithms, whereas ticket_auth provides both.

Usage

The general format for using the library is to instantiate the ticket factory used to generate the tickets, and then create new tickets or validate existing tickets using that factory. For example:

# The ticket factory takes a bytes argument specifying the secret
# identifier, and a optional algorithm (defaults to sha512). Possible
# algorithms are those specified by the python hashlib library
factory = TicketFactory(b'secret', hashalg='md5')

# The new function returns a new ticket (as a string). It takes a user
# identifier as a argument, along with several optional arguments. The
# valid_until argument is the time at which the ticket expires.
valid_until = time.time() + 60
ticket = factory.new('test_id', valid_until=valid_until)

# A ticket can be validated with the validate function. It returns a
# TicketInfo value on success, or raises an error on failure
info = factory.validate(ticket)

Tickets can also be bound to a particular client ip address by passing a ip address like object (either string, or from module ip_address) as the client_ip argument when creating and validating the string. For example:

valid_until = time.time() + 60
ticket = factory.new('test_id', valid_until=valid_until,
                     client_ip='192.168.0.1')

info = factory.validate(ticket, client_ip='192.168.0.1')

A sequence of tokens can also be passed, which will be added to the ticket. Note that these tokens (like the user id and user data) are stored in plain text format:

ticket = factory.new('test_id', valid_until=valid_until, tokens=('a', 'b'),
                     user_data='some data')

The TicketInfo object returned by the validate function is a named tuple with the following parameters: digest (hash function output), user_id, tokens, user_data, valid_until.

License

The library is licensed under a MIT license.

Release History

Release History

This version
History Node

0.1.3

History Node

0.1.2

History Node

0.1.2a4

History Node

0.1.2a2

History Node

0.1.2a1

History Node

0.1.2a0

History Node

0.1.1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
ticket_auth-0.1.3-py3-none-any.whl (6.8 kB) Copy SHA256 Checksum SHA256 py3 Wheel Dec 29, 2015
ticket_auth-0.1.3.tar.gz (4.2 kB) Copy SHA256 Checksum SHA256 Source Dec 29, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting