Metadata-Version: 2.3
Name: Flask-Multipass
Version: 0.6
Summary: A pluggable solution for multi-backend authentication with Flask
Project-URL: GitHub, https://github.com/indico/flask-multipass
Author-email: Indico Team <indico-team@cern.ch>
License-Expression: BSD-3-Clause
License-File: LICENSE
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: ~=3.9
Requires-Dist: blinker
Requires-Dist: flask
Provides-Extra: authlib
Requires-Dist: authlib>=0.14.1; extra == 'authlib'
Requires-Dist: requests; extra == 'authlib'
Provides-Extra: dev
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest-mock; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: ldap
Requires-Dist: flask-wtf; extra == 'ldap'
Requires-Dist: python-ldap>=3.3.1; extra == 'ldap'
Provides-Extra: saml
Requires-Dist: python3-saml>=1.10.1; extra == 'saml'
Provides-Extra: sqlalchemy
Requires-Dist: flask-wtf; extra == 'sqlalchemy'
Requires-Dist: sqlalchemy; extra == 'sqlalchemy'
Description-Content-Type: text/x-rst

Flask-Multipass
===============

.. image:: https://raw.githubusercontent.com/indico/flask-multipass/master/artwork/flask-multipass.png

.. image:: https://readthedocs.org/projects/flask-multipass/badge/?version=latest
    :target: https://flask-multipass.readthedocs.org/
.. image:: https://github.com/indico/flask-multipass/workflows/Tests/badge.svg
    :target: https://github.com/indico/flask-multipass/actions

Flask-Multipass provides Flask with a user authentication/identity
system which can use different backends (such as local users,
LDAP and OAuth) simultaneously.

It was developed at CERN and is currently used in production by `Indico <https://github.com/indico/indico>`_.

There are bult-in authentication and identity providers for:

 * `Static (hardcoded) credentials <https://github.com/indico/flask-multipass/blob/master/flask_multipass/providers/static.py>`_
 * `Local (SQLAlchemy DB) authentication <https://github.com/indico/flask-multipass/blob/master/flask_multipass/providers/sqlalchemy.py>`_
 * `Authlib (OAuth/OIDC) <https://github.com/indico/flask-multipass/blob/master/flask_multipass/providers/authlib.py>`_
 * `SAML <https://github.com/indico/flask-multipass/blob/master/flask_multipass/providers/saml.py>`_
 * `Shibboleth <https://github.com/indico/flask-multipass/blob/master/flask_multipass/providers/shibboleth.py>`_
 * `LDAP <https://github.com/indico/flask-multipass/blob/master/flask_multipass/providers/ldap/providers.py>`_

Those can be used simultaneously and interchangeably (e.g. authenticate with OAuth and search users with LDAP).

Documentation is available at https://flask-multipass.readthedocs.org
