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.6.tar.gz (56.9 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.6-py3-none-any.whl (32.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aoidc-0.0.6.tar.gz
  • Upload date:
  • Size: 56.9 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.6.tar.gz
Algorithm Hash digest
SHA256 3828d49a7996d0512ac08d5d605e7df27f44d37aeb26a2cb2854c3a4e09263bf
MD5 94c0a6145e688684c57be20262fcd93f
BLAKE2b-256 8d77d209c73559089b2961375af927de4cb7395404c24ddfcfcc5a5a67c2854e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aoidc-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 32.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 782879db5632f921ef7c890fa477a3f221b3fa7b2cef67a9e6a762a5015f662f
MD5 ae62ec085f00185a1e6fd39585a6f66a
BLAKE2b-256 eccde457ee1217ca8e8dd091bef5ccb9f9fe436c37155f8e316bb3050d83889a

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