Skip to main content

Suckless implementation of OIDC with asyncs in mind

Project description

aOIDC

Suckless implementation of OpenID Connect Core for python with asyncio support in mind.

🚧 Currently under development 🚧

Also implemented:

  • RFC 6749: The OAuth 2.0 Authorization Framework
    • Authorization code flow
    • Request with client_credentials grant
  • RFC 7033: WebFinger
  • RFC 7591: OAuth 2.0 Dynamic Client Registration Protocol - partically
  • RFC 7636: Proof Key for Code Exchange by OAuth Public Clients
  • RFC 7662: OAuth 2.0 Token Introspection
  • RFC 8414: OAuth 2.0 Authorization Server Metadata
    • Metadata model
    • /.well-known/oauth-authorization-server request
  • OpenID Connect Core
    • ID Token model
    • Authorization code flow
  • OpenID Connect Discovery 1.0
    • WebFinger discovery
    • Model
    • .well-known/openid-configuration request

Implementation status / Roadmap

Core functional that I need from such library is simple client authentication via authorization code flow, so this will be implemented first.

  1. OIDC Client for CODE flow
    1. Basic flow
    2. Nonce
  2. OIDC Client for PKCE flow
  3. OIDC Client for token verification
    1. Basic token verification
    2. Advanced token verification
  4. OIDC Client for client_credentials flow

Motivation

All the existing python OIDC RP libs are the big balls of mud:

  • pyoidc - synchronous, a little obscure, but the best of all existing.
  • idpy-oidc - older lib from the same dev as pyoidc.
  • authlib - synchronous, no typing, giant pain to use, dual licensing, bad kwargs architecture, bad docs. Worst library.
  • oauthlib - synchronous, no OIDC client, only provider.
  • oidc-client - not really a library.

There are few libraries which supports OAuth 2.0 & OIDC as provider (server), but they are out-of-scope.

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

aoidc-0.0.7.tar.gz (57.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aoidc-0.0.7-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file aoidc-0.0.7.tar.gz.

File metadata

  • Download URL: aoidc-0.0.7.tar.gz
  • Upload date:
  • Size: 57.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aoidc-0.0.7.tar.gz
Algorithm Hash digest
SHA256 8b8905f430058582d11d7e9fa2e23ea22cb0aeffa2a13e7e34cac21af18e907e
MD5 2f1db50942b7b4df214e7cbde84790d4
BLAKE2b-256 e5ffec3719c22134df2f55122e0ed83ff9669e15d2dd4212e87c229bd5ad19d7

See more details on using hashes here.

File details

Details for the file aoidc-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: aoidc-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aoidc-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 af935d088a90b186c95b578d71abbb9579da367c17c1ea0157489f55e0dc299b
MD5 daebf90c60b68f1d48102c1432d58cfd
BLAKE2b-256 06026c09c391d287dac78f12ccb4b5ae0e3f5ad1552517d469a82d9148562932

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page