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.2.tar.gz (48.5 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.2-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aoidc-0.0.2.tar.gz
  • Upload date:
  • Size: 48.5 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.2.tar.gz
Algorithm Hash digest
SHA256 d676421b5dec84ed203beee7ef0acd6f9071c05e669343d8fcb43b052bbfd15e
MD5 810ab411289168ba43607d048754872d
BLAKE2b-256 c275a2de6ea8e4b1e478e3a438f670f0409a6d847482fc900465c020461c2b62

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aoidc-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 31.0 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 608e5aa5fafd4e9fa99ad2754737d766a9c6d65ad58a681eac1b24d51b73fb87
MD5 eaf731ab1e915c7ebd277cae8859a404
BLAKE2b-256 d7bfa6fa80c7ddef5e33452d9a380512632e2f050203e2afd3bcaf8d1a4fa9e7

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