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 TOTPsql/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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb91568ab0336c072d8b86ebe69c0276835977de8cb510de5ee13d4f664e5d66
|
|
| MD5 |
de3bb7d417657dbb28a187fefadff67b
|
|
| BLAKE2b-256 |
23d17eddb0f6d3152e725b5ceea48f6b3c2748e1d45c85e8372762f8af067365
|
File details
Details for the file forge_mvc_mfa-1.0.0b8-py3-none-any.whl.
File metadata
- Download URL: forge_mvc_mfa-1.0.0b8-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f452be38872a5c5c255e2df5c15d57ad4de7af2053ca128ed755c6543bd67b2f
|
|
| MD5 |
56ebaf62f18f9e3a292b3bfec9fd091e
|
|
| BLAKE2b-256 |
66e6dd43fb520d0976d7f56f1423a3295c1d6a7bdfff7fe9e28a9d8d6db4c126
|