Python OpenID library - OpenID support for servers and consumers.
Project description
python-openid2
Python OpenID library - OpenID support for servers and consumers.
This is a set of Python packages to support use of the OpenID decentralized identity system in your application.
Want to enable single sign-on for your web site?
Use the openid.consumer package
.
Want to run your own OpenID server?
Check out openid.server
.
Includes example code and support for a variety of storage back-ends.
REQUIREMENTS
- Python 2.7, >=3.5
- lxml
- six
- cryptography
INSTALLATION
To install the base library, just run the following command:
pip install python-openid2
GETTING STARTED
The examples directory includes an example server and consumer implementation. See the README file in that directory for more information on running the examples.
Library documentation is available in html form in the doc directory.
LOGGING
This library offers a logging hook that will record unexpected conditions that occur in library code. If a condition is recoverable, the library will recover and issue a log message. If it is not recoverable, the library will raise an exception. See the documentation for the openid.oidutil module for more on the logging hook.
DOCUMENTATION
The documentation in this library is in Epydoc format, which is detailed at:
http://epydoc.sourceforge.net/
CONTACT
Send bug reports, suggestions, comments, and questions to https://github.com/ziima/python-openid/issues/new
If you have a bugfix or feature you'd like to contribute, don't hesitate to send it to us on GitHub.
Changelog
3.2
- Add support for python 3.8.
- Drop support for python 3.4.
- Fix false positive redirect error in consumer verification.
- Do not percent escape sub delimiters in path in URI normalization. Thanks Colin Watson for report.
- Fix tests and static code checks. Thanks Colin Watson.
3.1
- Convert data values for extensions to text.
- Fixes in Python 2/3 support.
- Fix examples.
- Add support for python 3.7
- Fix static code checks
- Use bumpversion
3.0
- Support Python3.
- Change most of the API to the text strings. UTF-8 encoded byte string should be compatible.
- Authentication methods based on SHA-256 are now preferred over SHA-1.
- Use
cryptography
library for cryptography tasks. - Add new base64-based API for
DiffieHellman
class. - Refactor script to negotiate association with an OpenID server.
- Decrease log levels on repetitive logs.
- Default fetcher is picked from more options.
- Remove
openid.consumer.html_parse
module. - Remove
hmacSha*
,randomString
,randrange
andsha*
functions fromopenid.cryptutil
. - A lot of refactoring and clean up.
Deprecation
- Binary strings are deprecated, unless explicitely allowed.
hash_func
is deprecated in favor ofalgorithm
inDiffieHellmanSHA*ServerSession
andDiffieHellmanSHA*ConsumerSession
.DiffieHellmanSHA*ServerSession.consumer_pubkey
is deprecated in favor ofconsumer_public_key
.- Functions
longToBinary
andbinaryToLong
deprecated in favor ofint_to_bytes
andbytes_to_int
, respectively. - Old
DiffieHellman
API is deprecated.
2.3.0
- Prevent timing attacks on signature comparison. Thanks to Carl Howells.
- Prevent XXE attacks.
- Fix unicode errors. Thanks to Kai Lautaportti.
- Drop support for python versions < 2.7.
- Use logging module. Thanks to Attila-Mihaly Balazs.
- Allow signatory, encoder and decoder to be set for Server. Thanks to julio.
- Fix URL limit to server responses. Thanks to Rodrigo Primo.
- Fix several protocol errors.
- Add utility method to AX store extension.
- Fix curl detection. Thanks to Sergey Shepelev.
- Use setuptools. Thanks to Tres Seaver.
- Refactor
Message
class creation. - Add
RequestsFetcher
. Thanks to Lennonka. - Updated examples.
- Add tox for testing. Thanks to Marc Abramowitz.
- Refactor tests.
- Clean code and add static checks.
Deprecation
Message.setOpenIDNamespace()
method.UndefinedOpenIDNamespace
exception.OpenIDRequest.namespace
attribute.openid.extensions.draft
packages, namely itspape2
andpape5
modules.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.