Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

A Python OpenID Connect implementation

This is a complete implementation of OpenID Connect as specified in the OpenID Connect Core specification. And as a side effect, a complete implementation of OAuth2.0 too.

Please see the to review the latest changes.


The documentation is graciously hosted by Read the Docs. Unfortunately, the documentation has been largely left unmaintained and there are various issues. However, the maintainers are trying to remedy this lately with some new momentum. Please help us by submitting pull requests if you can help improve the documentation.


Unfortunately, the current examples included in this repository are unmaintained and there are many issues. We're currently in the process of creating a working canonical example implementation, however, until that time, the current examples largely do not work. Please help us by submitting pull requests that may bring these examples back into a working condition if you get something working locally.


Cudos to Vladislav Mladenov and Christian Mainka both at Horst Görtz Institute for IT-Security, Ruhr-University Bochum, Germany for helping me making the implementation more secure.

Maintainers Needed

If you're interested in helping maintain and improve this package, we're looking for you! We're working on the project on a best effort basis but we still maintain a good flow of reviewing each others pull requests and driving discussions on what should be done.

Please contact one of the current maintainers @rohe, @tpazderka or @schlenk.


Fork the repository, clone your copy and install pipenv.

Then just run:

$ make install

Next, running the tests:

$ make test

This will not affect your system level Python installation. Please review our issues to see what needs working on. Do not hesitate to ask questions if something is unclear. We mark easy issues as newcomer-friendly, so they are a good place to start if you want to contribute.


If you happen to work in a Windows environment, the above will not work out of the box due to the lack of a GNU Make on Windows. In addition one of the dependencies for ldap_authn is not available as a prebuilt wheel from pypi, so use these slightly modified instructions.

With pipenv in your path you run:

pipenv install --dev -e .[develop,testing,docs,quality]

Next you can run the tests:

pipenv run pytest tests