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 publié sur PyPI dans la vague 1.0.0b7. Non inclus dans forge-mvc[all]. Publication prévue lors d'une release dédiée après ticket MFA-PYPI-READY-001.

Mode d'installation (Forge 3.0.x) : forge-mvc-mfa n'est pas encore publié sur PyPI. Installation depuis les sources (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.0b8.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.0b8-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: forge_mvc_mfa-1.0.0b8.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.0b8.tar.gz
Algorithm Hash digest
SHA256 fb91568ab0336c072d8b86ebe69c0276835977de8cb510de5ee13d4f664e5d66
MD5 de3bb7d417657dbb28a187fefadff67b
BLAKE2b-256 23d17eddb0f6d3152e725b5ceea48f6b3c2748e1d45c85e8372762f8af067365

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge_mvc_mfa-1.0.0b8-py3-none-any.whl
Algorithm Hash digest
SHA256 f452be38872a5c5c255e2df5c15d57ad4de7af2053ca128ed755c6543bd67b2f
MD5 56ebaf62f18f9e3a292b3bfec9fd091e
BLAKE2b-256 66e6dd43fb520d0976d7f56f1423a3295c1d6a7bdfff7fe9e28a9d8d6db4c126

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