Metadata-Version: 2.5
Name: swh.auth
Version: 0.11.0
Summary: Software Heritage authentication utilities
Project-URL: Homepage, https://gitlab.softwareheritage.org/swh/devel/swh-auth
Project-URL: Bug Reports, https://gitlab.softwareheritage.org/swh/devel/swh-auth/-/issues
Project-URL: Funding, https://www.softwareheritage.org/donate
Project-URL: Documentation, https://docs.softwareheritage.org/devel/swh-auth/
Project-URL: Source, https://gitlab.softwareheritage.org/swh/devel/swh-auth.git
Author-email: Software Heritage developers <swh-devel@inria.fr>
License-File: AUTHORS
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11
Requires-Dist: click
Requires-Dist: python-keycloak>=7.0.3
Requires-Dist: pyyaml
Requires-Dist: requests
Requires-Dist: swh-core[http]>=4.8.0
Provides-Extra: django
Requires-Dist: django; extra == 'django'
Requires-Dist: djangorestframework; extra == 'django'
Requires-Dist: sentry-sdk; extra == 'django'
Provides-Extra: starlette
Requires-Dist: aiocache; extra == 'starlette'
Requires-Dist: httpx; extra == 'starlette'
Requires-Dist: starlette; extra == 'starlette'
Provides-Extra: testing
Requires-Dist: aiocache; extra == 'testing'
Requires-Dist: django; extra == 'testing'
Requires-Dist: django-stubs; extra == 'testing'
Requires-Dist: djangorestframework; extra == 'testing'
Requires-Dist: djangorestframework-stubs; extra == 'testing'
Requires-Dist: httpx; extra == 'testing'
Requires-Dist: pytest-django; extra == 'testing'
Requires-Dist: pytest-mock; extra == 'testing'
Requires-Dist: pytest>=8.1; extra == 'testing'
Requires-Dist: requests-mock; extra == 'testing'
Requires-Dist: sentry-sdk; extra == 'testing'
Requires-Dist: starlette; extra == 'testing'
Requires-Dist: swh-core[testing-core]; extra == 'testing'
Requires-Dist: types-jwcrypto; extra == 'testing'
Requires-Dist: types-pytz; extra == 'testing'
Requires-Dist: types-pyyaml; extra == 'testing'
Description-Content-Type: text/x-rst

Software Heritage - Authentication
==================================

``swh-auth`` is a set of utility libraries related to user authentication
in applications and services based on the use of `Keycloak`_ and `OpenID Connect`_.

`Keycloak`_ is an open source software enabling single sign-on (SSO) with identity
and access management.

`OpenID Connect`_ (OIDC) is an authentication layer on top of `OAuth 2.0`_, widely
used in modern web applications and services.

``swh-auth`` notably offers the following features:

- the ``swh.auth.keycloak.KeycloakOpenIDConnect`` class to ease the
  interaction with a Keycloak server

- a ``pytest`` plugin with the ``keycloak_oidc`` fixture to mock Keycloak
  responses in unit tests

- generic backends, views and middlewares to easily plug OpenID Connect authentication
  in any `Django`_ or `Django REST framework`_ application


.. _Keycloak: https://www.keycloak.org/

.. _OpenID Connect: https://openid.net/connect/

.. _OAuth 2.0: https://oauth.net/2/

.. _Django: https://www.djangoproject.com/

.. _Django REST framework: https://www.django-rest-framework.org/