skillfed

django-oidc-provider

OpenID Connect Provider implementation for Django.

django-oidc-provider v0.9.0 74.0K downloads/30d#14,900 on PyPI451
Permissive license MIT License AGING released

What it is and what it does

django-oidc-provider is a Django application that implements an OpenID Connect and OAuth 2.0 authorization server. It provides the endpoints, token generation, user authentication flows, and profile information endpoints needed to turn a Django application into an identity provider that other applications can authenticate against.

The package handles the server-side logic for issuing tokens, validating credentials, and exposing standard OIDC discovery and user info endpoints. It depends on PyJWT for token signing and cryptography for cryptographic operations. The package is marked as Production/Stable and supports Python 3.8, 3.9, 3.10, 3.11, 3.12, and 3.13, making it suitable for modern Django deployments that need to act as a centralized authentication provider.

Use it for:

  • Build a centralized identity provider for a suite of internal or third-party applications that need to authenticate users via OpenID Connect.
  • Add OAuth 2.0 and OIDC capabilities to an existing Django application to allow external services to authenticate against it.
  • Implement single sign-on infrastructure where Django serves as the authorization server for multiple client applications.
  • Provide standardized token-based authentication endpoints for mobile apps and SPAs that need to verify user identity.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides OpenID Connect and OAuth 2.0 server endpoints, authentication logic, and token management for Django applications, allowing them to act as identity providers.

Yes, with conditions. The package is stable, permissively licensed, and has low install friction. However, its aging maintenance status (325 days since last release) means you should verify that it meets your Django and Python version requirements and check whether the documentation covers your use case. For new OIDC provider implementations in Django, this is a reasonable choice if you accept the slower update cadence.

Install

django-oidc-provider on PyPI

pip

pip install django-oidc-provider

uv

uv add django-oidc-provider

poetry

poetry add django-oidc-provider

Installing django-oidc-provider

Before you install

Low install friction with only two runtime dependencies (PyJWT and cryptography). Maintenance status is aging—last release was 325 days ago, though the repository remains active with a recent commit on 2025-12-03 and 451 stars.

License in practice

MIT License (permissive) means you can use, modify, and distribute this package freely in both open-source and commercial projects with minimal restrictions.

Quickstart

pip install django-oidc-provider

Add to Django INSTALLED_APPS and configure URL endpoints to expose OpenID Connect server capabilities. Requires PyJWT and cryptography for token signing and cryptographic operations.

Requires a Django project; depends on PyJWT and cryptography being installed.

Verify before relying

  • Whether aging maintenance (325 days since release) indicates planned updates or gradual deprecation.
  • Current state of documentation and whether it covers supported Django versions adequately.
  • Specific OIDC/OAuth 2.0 flows and grant types supported by this version.

Package facts

License MIT License (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 2 — PyJWT, cryptography
Maintenance aging — 325 days since the last release
Last repo commit
First released
Downloads 73,951/month — #14,900 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_oidc_provider-0.9.0-py2.py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Internet :: WWW/HTTPTopic :: Internet :: WWW/HTTP :: Dynamic Content

Tags

openid connect provider djangooauth 2.0 server djangoidentity provider djangooidc server implementationdjango authentication provideroauth2 endpoints django
authenticationoauth2identity-provider

More WWW/HTTP packages