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.3.tar.gz (48.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.3-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aoidc-0.0.3.tar.gz
  • Upload date:
  • Size: 48.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","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.3.tar.gz
Algorithm Hash digest
SHA256 032ec8233d1d84f97d6e0e2e5255955ec8e0c3ae14c1735198fbff42dc8cfa6b
MD5 7dfb7c6a74c5864f5fca5c00eef62154
BLAKE2b-256 3368ac0120363b48feac9870583f157c502fa1fddb1f672804ce0311fcce410f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aoidc-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 31.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b58a38ae9f49204265e3fed345b690ee6f66ef76615b8d34dd4714dc1f02d54b
MD5 82b6e0f6fb292e884b352c3bf8f7b8df
BLAKE2b-256 ba5bd7208fa9d43fcefdf5c081baf930b080ba295ac44d10ff238d079f283379

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