Skip to main content

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.

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

ticket_auth-0.1.4.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

ticket_auth-0.1.4-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file ticket_auth-0.1.4.tar.gz.

File metadata

  • Download URL: ticket_auth-0.1.4.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ticket_auth-0.1.4.tar.gz
Algorithm Hash digest
SHA256 cefb45ff461dac7fad34144f3f6dfd56c3a28ba5d0f4b5d00b0b063770a2e543
MD5 294d338f09795fd24869dfc069f278aa
BLAKE2b-256 2253249bc795841e1532b8d0a907ab5fee6321726513803196ca6982e40bc379

See more details on using hashes here.

File details

Details for the file ticket_auth-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ticket_auth-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ca46cddafcd673f4ae2a3c85d2bd946962140ee119dae93f1c181965465c93a8
MD5 c0fc11895a048c4a5fc002dffabe594b
BLAKE2b-256 fa6247f0e6675656cc81d04e4232a37a4090497c860e81da302530dd6722e940

See more details on using hashes here.

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