Skip to main content

Simple OpenID

Simple and opinionated OpenID-Connect relying party and resource server implementation

Documentation Status

Quick Links

Development philosophy

  • Keep the API as simple as possible

    No **kwargs parameters, no function arguments called request_args, http_args or something_else_args

  • Fully typed API

    Python has type hints now, let's use them.

  • Support commonly used OpenID features and flows

    Commonly used flows will be supported but obscure and legacy or experimental mechanisms not so much.

  • Be just an OpenID library

    Tell the user about function requirements clearly but don't try any fancy internal persistence or caching mechanisms that will only fail in different usage scenarios. Instead, abstract the underlying OpenID protocol into usable, clear functions but nothing more.

Language & Framework Support

We aim to follow pythons officially supported versions. This is currently python v3.10, v3.11, v3.12, v3.13 and v3.14.

In addition to being an OpenID library from which one can build their own authentication solutaion, we also offer explicit integrations into the following frameworks and projects:

Name Package Feature Integration Docs Supported Versions
Django django Integration Docs v4.2, v5.2, v6.0
Django-Rest-Framework djangorestframework Integration Docs v3.15, v3.16, v3.17

Supported OpenID Specs

The list of OpenID specifications can be found on the official website.

  • (✔️) Partial OpenID Connect Core 1.0

    Only the following flows and features are implemented:

    • ✔️ Authorization Code Flow
    • ✔️ Direct Access Grant (or Resource Owner Password Credentials Grant)
    • ✔️ client_secret_basic client authentication
    • ✔️ none client authentication
    • ✔️ Query String serialization and parsing
    • ✔️ ID Token handling (parsing + validation)
    • ✔️ Using refresh tokens
    • ✔️ Retrieving userinfo
    • ❌ Implicit Flow
    • ❌ Hybrid Flow
    • ❌ Handling third party initiated login
    • ❌ Passing requests as JWTs (neither by value nor by reference)
    • ❌ Self-Issued OpenID Provider
    • client_secret_post client authentication
    • client_secret_jwt client authentication
    • private_key_jwt client authentication
  • (✔️) Partial OpenID Connect Discovery 1.0. Provider Configuration Discovery is implemented, Provider Issuer Discovery is not.

    This means that a known issuer can be introspected for its supported algorithms, endpoint locations and so forth but discovering that issuer in the first hand is not possible.

  • ✔️ Full OAuth 2.0 Multiple Response Type Encoding Practices

    Only the following features are implemented and supported:

    • ✔️ Response modes (fragment based response parsing)
    • ✔️ Multiple-Valued Response Types
      No explicit support, but it is possible to supply one of the multivalued response_type values to an authentication request and then parse multiple responses from the resulting response.
  • ✔️ Full OpenID Connect RP-Initiated Logout 1.0

  • ✔️ Full OpenID Connect Front-Channel Logout 1.0

  • ✔️ Full OpenID Connect Back-Channel Logout 1.0

  • ✔️ Full Proof Key for Code Exchange (PKCE)

  • ✔️ Full OAuth 2.0 Token Introspection

Release files for simple_openid_connect 2.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simple_openid_connect 2.4.0
File Size Uploaded
simple_openid_connect-2.4.0.tar.gz 100.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simple_openid_connect 2.4.0
File Interpreter ABI Platform
simple_openid_connect-2.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 173.0 kB

Release files / simple_openid_connect-2.4.0.tar.gz

Download URL simple_openid_connect-2.4.0.tar.gz
Size 100.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1077319c947f568e08d1d0788eb480e56205564950e4b48951b850f66c073b89
BLAKE2b-256 checksum
How to use checksums
ed0305babd63b86de8cd5d230b5041b90222a28cf97a33658955465503ce5c18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.33.1

Release files / simple_openid_connect-2.4.0-py3-none-any.whl

Download URL simple_openid_connect-2.4.0-py3-none-any.whl
Size 72.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03ab140bb885974674df5494165b09d11a43ef99eb3a23ccd5d7909aad5703f2
BLAKE2b-256 checksum
How to use checksums
791c27d722e9883054aec169ae63019613e9a9c44449127a2fa4c8a24a7d1363
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.33.1

Release history Release notifications | RSS feed

This release

2.4.0 This release

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.4

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page