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.4.tar.gz (48.7 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.4-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aoidc-0.0.4.tar.gz
  • Upload date:
  • Size: 48.7 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.4.tar.gz
Algorithm Hash digest
SHA256 3356a2adb7cc2d67befd0ab139bd2ce5e0dc29adc5f41b955962fecc13adbe50
MD5 6339fbc7d1b18e391941fc051d649d60
BLAKE2b-256 a786157ed8d839435b9e903ecd90a4e8dc26d5a19975167476c728cee5f946e8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aoidc-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 31.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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0bd6127fab1ad1adfef1fe5f1ad588e42802162f9c18c7f8cbea0d0dbdec5c4a
MD5 ed372bbbd1f67fba92f5e8887b7afda8
BLAKE2b-256 a7cefbe53df2dce5f4f4f4d36398948bfc13d3c360f33ed9005046b6ca144167

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