Authentification et Securite
7.1 Connexion
L'acces a la plateforme requiert trois informations :
- Tenant (Entreprise) : identifiant unique de l'entreprise
- E-mail : adresse e-mail enregistree
- Mot de passe : mot de passe defini lors de l'inscription ou modifie ulterieurement
Le endpoint de connexion est :
POST /api/auth/login{
"email": "utilisateur@entreprise.com.br",
"password": "votreMotDePasse",
"tenant": "nom-de-lentreprise"
}7.2 Authentification a Deux Facteurs (MFA)
Pour une securite renforcee, Voki prend en charge l'authentification a deux facteurs via TOTP (Time-based One-Time Password) :
- Activez le MFA dans les parametres de votre compte
- Scannez le QR Code avec une application d'authentification (Google Authenticator, Authy, etc.)
- A chaque connexion, en plus de l'e-mail et du mot de passe, le code a 6 chiffres de l'authentificateur sera demande
Le endpoint de verification MFA est :
POST /api/auth/mfa/verify7.3 Reinitialisation du Mot de Passe
Si vous oubliez votre mot de passe :
- Sur l'ecran de connexion, cliquez sur « Mot de passe oublie »
- Indiquez votre e-mail et votre tenant
- Vous recevrez un e-mail contenant un lien pour redefinir votre mot de passe
- Le lien est valide pour une duree limitee (expire apres utilisation)
Endpoints concernes :
POST /api/auth/forgot-password
POST /api/auth/reset-password7.4 Tokens JWT
Voki utilise les JSON Web Tokens (JWT) pour l'authentification :
| Token | Validite | Utilisation |
|---|---|---|
| Access Token | 15 minutes | Acces a l'API et aux pages authentifiees |
| Refresh Token | 7 jours | Renouvellement de l'access token sans nouvelle connexion |
L'access token doit etre envoye dans l'en-tete de chaque requete :
Authorization: Bearer {access_token}Lorsque l'access token expire, utilisez le refresh token pour en obtenir un nouveau :
POST /api/auth/refresh7.5 Isolation par Tenant
Chaque entreprise (tenant) dispose de son propre schema dans la base de donnees PostgreSQL, garantissant une isolation complete des donnees :
- Les donnees d'une entreprise ne sont jamais accessibles par une autre
- Chaque tenant possede ses propres tables, index et enregistrements
- Le tenant est determine par le JWT et valide a chaque requete
- Il est impossible d'acceder aux donnees d'un autre tenant, meme avec un token valide
7.6 En-tetes de Securite
Toutes les reponses de la plateforme incluent des en-tetes de securite :
- HSTS : Force la connexion HTTPS
- X-Frame-Options: DENY : Empeche l'integration dans des iframes (protection contre le clickjacking)
- X-Content-Type-Options: nosniff : Previent le MIME-type sniffing
- Referrer-Policy: strict-origin-when-cross-origin : Controle les informations de reference
- Permissions-Policy : Restreint l'acces aux API du navigateur
7.7 Limitation de Debit (Rate Limiting)
Pour proteger contre les attaques par force brute et les abus :
| Endpoint | Limite |
|---|---|
Authentification (/api/auth/*) | 5 requetes par minute |
API publique (/api/signup/*, /api/v1/call/*) | 30 requetes par minute |
En cas de depassement de la limite, la reponse sera 429 Too Many Requests.
