skillfed

django-scim2

A partial implementation of the SCIM 2.0 provider specification for use with Django.

django-scim2 v0.23.0 2.3M downloads/30d#3,126 on PyPI95
Permissive license MIT Active released

What it is and what it does

django-scim2 is a Django application that exposes your user and group data via the SCIM 2.0 protocol, allowing external identity providers and workforce management systems to provision, deprovision, and synchronize users through standardized API endpoints. It handles the protocol mechanics—parsing SCIM filter syntax via scim2-filter-parser, serializing resources, managing schemas—so you don't have to build that layer yourself.

The package is designed as a provider (your Django app publishes the SCIM endpoints), not a client. It requires you to wire authentication separately and currently works only with Postgres. The library is built for extensibility: you define adapters to control how SCIM operations map to your actual user and group models, giving you fine-grained control over what gets synced and how.

Use it for:

  • Integrate your Django app with external identity providers that use SCIM for automated user provisioning.
  • Build a multi-tenant platform where customers' identity systems can manage their own user accounts via SCIM.
  • Sync user and group membership from a centralized directory service into your Django application without custom polling.
  • Expose user lifecycle events (create, update, deactivate) to external systems through a standards-compliant API.

Worth the install?

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

Implements the SCIM 2.0 provider specification as a Django app, enabling standardized user and group provisioning endpoints for identity management systems.

Yes. The package is production-stable, actively maintained with a recent release, has no known vulnerabilities, and solves a specific and non-trivial problem (SCIM 2.0 provider implementation). Install it if you need to expose user provisioning via SCIM; the main constraint is the Postgres-only database requirement and the need to implement authentication separately.

Install

django-scim2 on PyPI

pip

pip install django-scim2

uv

uv add django-scim2

poetry

poetry add django-scim2

Installing django-scim2

Before you install

Low friction: pure Python wheel with only three runtime dependencies (django, pygments, scim2-filter-parser). Active maintenance with a release 2 days old; development is deliberate rather than continuous (Friday-focused), so response times on issues may extend to a week.

License in practice

MIT license is permissive; you can use, modify, and distribute this package freely in commercial and private projects without restriction or attribution requirement.

Quickstart

pip install django-scim2

# In settings.py INSTALLED_APPS:
INSTALLED_APPS = [
    ...
    'django_scim',
]

# In urls.py:
path('scim/v2/', include('django_scim.urls')),

# In settings.py:
SCIM_SERVICE_PROVIDER = {
    'NETLOC': 'localhost',
    'AUTHENTICATION_SCHEMES': [{'type': 'oauth2', 'name': 'OAuth 2'}],
}

Requires Postgres as the database backend; other databases are not currently supported. Requires Python 3.10 or later.

Verify before relying

  • Whether the extensible adapter system covers all common SCIM resource types or requires significant custom implementation.
  • Performance characteristics and scalability limits for high-volume provisioning workloads.
  • Specific Django versions tested and recommended beyond the Python version classifiers.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 3 — django, pygments, scim2-filter-parser
Maintenance actively maintained — 2 days since the last release
Last repo commit
First released
Downloads 2,340,770/month — #3,126 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_scim2-0.23.0-py3-none-any.whl

Keywords: django, scim, scim2, 2.0

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: InternetTopic :: Software Development :: Libraries :: Python Modules

Tags

scim 2.0 django provideruser provisioning djangoidentity management endpointscim provisioning apidjango identity provideruser group sync api
identity-provisioningscim-protocoldjango-integration

More Python Modules packages