Skip to main content

An authentication and authorization toolkit for WSGI applications and frameworks

Project description

AuthKit
+++++++

.. contents ::

Summary
=======

* Built for WSGI applications and middleware
* Sophisticated and extensible permissions system
* Built in support for HTTP basic, HTTP digest, form, cookie and OpenID
authentication methods plus others
* Easily define users, passwords and roles
* Designed to be totally extensible so you can use the components to integrate
with a database, LDAP connection or your own custom system
* Plays nicely with the `Pylons <http://pylonshq.com>`_ web framework

There is also a `development version
<http://authkit.org/svn/AuthKit/trunk#egg=AuthKit-dev>`_.

Get Started
===========

* `Download and Installation <http://python.org/pypi/AuthKit/0.4.0>`_
* `Pylons Book <http://pylonsbook.com>`_ (the two chapters on *Authentication and
Authorization* and *Advanced AuthKit* form the AuthKit 0.4 documentation)
* `Module Reference <http://authkit.org/docs/0.4/module-index.html>`_
* `AuthKit Cookbook <http://wiki.pylonshq.com/display/authkitcookbook/Home>`_
* `Trac <http://authkit.org/trac>`_ - Tickets, Wiki, Subversion
* `Examples <http://authkit.org/trac/browser/AuthKit/trunk/examples>`_

Author
======

`James Gardner <http://jimmyg.org/>`_ james at pythonweb dot org

Development sponsored by `3aims <http://3aims.com/>`_ and
`Prometheus Research <http://www.prometheusresearch.com/>`_.


Changes
=======

0.4.2

* Applied most of #59 and tested the two OpenID examples
* Added support for WebOb HTTPExceptions to remove a deprecation warning in
Pylons 0.9.7
* Fixed a missing md5 import in the cookie module
* Applied patch in ticket #52

0.4.1

* Added ``setup.fakeuser`` option which automatically sets the REMOTE_USER
so that it appears someone has signed in. Useful with setup.enable = False
********************************************************************************
* The ``setup.enable = false`` option now also disables authorisation *
* checks (reported by Rick Flosi) *
********************************************************************************
* Applied patch from Pawel Niewiadomski to fix #53
* Changed the import of the openid.sreg module to openid.extensions.sreg
* Fixed the encoding of the form.py file
* Updated the examples to use the latest syntax
* Updated the tests for the new SQLAlchemy drivers
* Added Daniel Pronych's SQLAlchemy drivers but with significant changes
* Fixed a bug due to a change in the latest version of Python OpenID
so that AuthKit OpenID works with Yahoo sign-ins. Phil Kershaw #50
* Updated the user/database example, it now works #43
* Updated user tokens code to fix #17
* Updated authkit.authenticate.multi so that it should fix #41 and pass
the WSGI writable from start_response() correctly.
* Added a form.method option so you can choose GET authentication for
cases when another piece of middleware has already parsed the form
variables (eg with repoze?).
* Fixed bug in form action generation for non-standard ports
* Fixed bug reported by Sam Gentle where remote addr is obtained from
X_FORWARDED_FOR after multiple proxies.
* AuthKit form authentication now picks up HTTP_X_FORWARDED_HOST and
HTTP_X_FORWARDED_PORT when generating an action. This allows you to run
an AuthKit app on port 80, proxied from 443 as long as you set up these
two (slightly unstandard) variables.
* Fixed #38, cookie sign out path should match the path specified in
the config file.
* Fixed #37, missing import of sys in digest authentication
* Updated SQLAlchemy code to use SQLAlchemyManager. Needs installing
manually with ``easy_install SQLAlchemyManager``.
* Added a user management api_version attribute and changed the API so that
the users object is set up on each request and recieves an environ
argument.
* OpenID middleware now no longer sets up beaker middleware itself. This
should now be done manually in the middleware stack. See the example in
examples/docs/open_id.py
* OpenID support now upgraded to use 2.0 (from Dalius Dobravolskas)
* Fixed encrypt typo with postgres users driver
* The cookie middleware now has a nouserincookie option which forces the
middleware to store the username in a Beaker session rather than in plain
text in the cookie. See examples/docs/form_no_user_in_cookie.py for an
example of its use.
* Form authentication method now defaults to 200 OK rather than 401 when
the sign in form is displayed so that it works with Safari 3 Beta.
* The cookie middleware Bad Ticket page now also uses 200 OK, also to
support Safari 3 Beta.
* The cookie middleware bad ticket now logs to debug rather than error to
avoid the ``No handlers could be found for logger
"authkit.authenticate.cookie"`` message you get with a bad cookie if no
error logging is specifically set up.
* Added a user management api_version attribute and changed the API so that
the users object is set up on each request and recieves an environ
argument.
* Fixed encrypt typo with postgres users driver
* Renamed the config_paste option to app_conf in authenticate middleware. If
you get an "No authkit.setup.method was specified" error when you are sure
it is specified, this might be why.

0.4.0

* Added support for encrypted passwords
* Fixed the IE7 bug in digest middleware
* Adding SSO sub-directory, redirecting API, and CAS auth handler.
* Fixed binding check to return none, instead of throwing an Exception (for
performance reasons).
* Moved start_response check outside of app_iter consumption since it must be
called by this point to comply with WSGI.
* Fixed consumption app iter in multi, loading entire response into ram.
* Adding changelog
* Added IP and Time based permission objects
* Started unit tests
* Extended the user management API and added SQLAlchemy driver and example
* Restructured the authenticate middleware into induvidual pluggable components
* Simplified the configuration file system
* Added OpenID dependencies
* Removed the larger SQLAlchemy based demos
* The cookie module uses ``authkit`` as a default cookie name, not ``auth_tkt``.
Any code which does anything manually with this cookie needs the name changing
if it wasn't explicitly set to ``auth_tkt`` in the config file.

0.3.0pre5

* Changed the arguments to the authkit.authenticate.middleware() factory. You
will need to update your middleware setup to use app_conf instead of
config_paste for the app_conf dictionary.

0.3

* Re-written from scratch to be a modular toolkit for building your own auth
framework rather than an all-in-one solution.

0.2

* Re-written from scratch so to use SQLAlchemy only, old driver system considered
unnecessary and limiting. Also doesn't fit in with current Pylons
best-practice.

0.1

* Based on the web.auth 0.6 module from www.pythonweb.org, support for SQLObject
driver included


License
=======

Copyright (c) Copyright 2005-2007 James Gardner <james at pythonweb dot org>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


Download
========

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

AuthKit-0.4.2.tar.gz (107.1 kB view details)

Uploaded Source

Built Distribution

AuthKit-0.4.2-py2.5.egg (178.2 kB view details)

Uploaded Source

File details

Details for the file AuthKit-0.4.2.tar.gz.

File metadata

  • Download URL: AuthKit-0.4.2.tar.gz
  • Upload date:
  • Size: 107.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for AuthKit-0.4.2.tar.gz
Algorithm Hash digest
SHA256 e64a5df4a8eec19e3ef989d4216d7d17f4121429ad532a1aab673c9f92fa2e32
MD5 1b3db9e7b02da91e9a6cb3b31c739b27
BLAKE2b-256 f3e5d465917ad4abd2bbe60379a8cef00b10b5a28b222da60b89a0587dce3890

See more details on using hashes here.

File details

Details for the file AuthKit-0.4.2-py2.5.egg.

File metadata

  • Download URL: AuthKit-0.4.2-py2.5.egg
  • Upload date:
  • Size: 178.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for AuthKit-0.4.2-py2.5.egg
Algorithm Hash digest
SHA256 5198dd31df22937e4699920adcb84f4a393e6d8a46d724fb42091a34e1b97144
MD5 f5b3f8be24a2a26f3508427ce54a9d2d
BLAKE2b-256 49b1f140c68dc50c9f73abf6fcf535e643c581b13255d42bbde8999d793d1194

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