Skip to main content

Brique MFA pour Forge — TOTP et codes de récupération.

Project description

forge-mvc-mfa

Brique MFA (TOTP + codes de récupération) pour le framework Forge.

Statut : Alpha — préparé pour publication future (MFA-PYPI-READY-001)

forge-mvc-mfa est marqué Development Status :: 3 - Alpha.

Depuis SEC-MFA-SECRET-ENCRYPTION-001, le secret TOTP est chiffré au repos via Fernet (cryptography). La clé est lue depuis FORGE_MFA_SECRET_KEY — obligatoire au démarrage.

Le module n'est pas encore publié sur PyPI. Non inclus dans forge-mvc[all]. Le statut Development Status :: 3 - Alpha reflète son caractère encore expérimental ; la publication est prévue lors d'une release dédiée.

Mode d'installation : depuis les sources du dépôt Forge (mode dev) :

git clone https://github.com/caucrogeGit/Forge.git
cd Forge
pip install -e .
pip install -r requirements-dev.txt

Configuration requise

# Générer une clé Fernet (à stocker dans .env ou un gestionnaire de secrets)
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

Ajouter dans .env :

FORGE_MFA_SECRET_KEY=<clé générée ci-dessus>

Installation (mode source)

# Depuis le dépôt Forge (mode développement)
pip install -r requirements-dev.txt  # installe forge-mvc-mfa depuis packages/

forge-mvc-mfa dépend de pyotp>=2.9.

Utilisation

from forge_mvc_mfa import (
    AuthMfaFactor,
    create_totp_factor,
    confirm_totp_factor,
    verify_mfa_challenge,
    is_mfa_enabled,
)

L'API complète est exposée directement depuis forge_mvc_mfa. Les fonctions privées (_persist_session_changes, _session_user_matches) doivent être importées depuis forge_mvc_mfa.mfa.

SQL

Les tables nécessaires se trouvent dans sql/ :

  • sql/auth_mfa_factors.sql — facteurs TOTP
  • sql/auth_mfa_recovery_codes.sql — codes de récupération

Appliquer via db:apply ou directement sur la base.

Compatibilité

Disponible séparément depuis Forge 2.4.0 (ADR-004, MFA-EXTRACT-001). Les anciens chemins core.auth.mfa, core.auth.recovery et core.auth.totp_replay ont été retirés en Forge 3.0.

Limites connues

  • Le store anti-replay et le rate-limit sont in-memory process-local. En multi-worker, utiliser des sticky sessions.
  • La politique de rotation et la procédure de sauvegarde/restauration de la clé Fernet ne sont pas encore formalisées (exigences Beta restantes).

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

forge_mvc_mfa-1.0.0b9.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forge_mvc_mfa-1.0.0b9-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file forge_mvc_mfa-1.0.0b9.tar.gz.

File metadata

  • Download URL: forge_mvc_mfa-1.0.0b9.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for forge_mvc_mfa-1.0.0b9.tar.gz
Algorithm Hash digest
SHA256 5c86a0f1e27fe78424a0e32563687e0919bb40ab2cd6728c7155a2d3e4db4cff
MD5 4799fe18257e51943f9ed244986b94e2
BLAKE2b-256 2a5a17f7db9ed0a44deb5390e9c2ece7c017d6ef23e4f9159885c5371be7e5ee

See more details on using hashes here.

File details

Details for the file forge_mvc_mfa-1.0.0b9-py3-none-any.whl.

File metadata

File hashes

Hashes for forge_mvc_mfa-1.0.0b9-py3-none-any.whl
Algorithm Hash digest
SHA256 fdc1b1f61b374b99ab1716906118ae41dd1cf92459b315381ead5cd83957d1ba
MD5 ff53fc5fe8bc33554977a0cde5f2243e
BLAKE2b-256 67315e9d1765d0009c1a38c881e1142dac37968a53d0a3c07001f9deea225546

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