API Authentification
Endpoints d'authentification API
Authentification API
Book: ConformVault — Stockage sécurisé de fichiers | Chapter: Reference API
Authentification API
Apercu
L'API Go de ConformVault utilise une authentification JWT (JSON Web Token) avec support MFA et SSO. Toutes les routes protegees necessitent un token Bearer valide dans l'en-tete Authorization.
Obtention d'un token
POST /api/v1/auth/login
Authentification par email et mot de passe.
Requete :
{
"email": "user@example.com",
"password": "securePassword123"
}Reponse (sans MFA) :
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"refresh_token": "eyJhbGciOiJIUzI1NiIs...",
"expires_in": 900,
"token_type": "Bearer",
"user": {
"id": "uuid",
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"role": "client_admin",
"mfa_enabled": false
}
}Reponse (MFA requis) :
{
"mfa_required": true,
"user_id": "uuid"
}POST /api/v1/auth/mfa/verify
Verification du code MFA TOTP.
Requete :
{
"user_id": "uuid",
"code": "123456"
}Reponse : Meme format que le login reussi ci-dessus.
POST /api/v1/auth/sso
Login via SSO (Zitadel OIDC). Le backend Python gere le flow OIDC complet et envoie les informations utilisateur a cette route.
Requete :
{
"provider": "zitadel",
"external_id": "zitadel-user-id",
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"groups": ["client_admin"]
}POST /api/v1/auth/register
Inscription d'un nouvel utilisateur avec creation d'organisation.
Requete :
{
"email": "admin@company.com",
"password": "securePassword123",
"first_name": "Admin",
"last_name": "User",
"company_name": "My Company",
"plan_code": "pro",
"payment_method_id": "pm_stripe_id"
}POST /api/v1/auth/refresh
Rafraichissement du token d'acces.
Requete :
{
"refresh_token": "eyJhbGciOiJIUzI1NiIs..."
}POST /api/v1/auth/forgot-password
Demande de reinitialisation de mot de passe (envoie un email).
{
"email": "user@example.com"
}POST /api/v1/auth/reset-password
Reinitialisation du mot de passe avec le token recu par email.
{
"token": "reset-token-from-email",
"new_password": "newSecurePassword123"
}Utilisation du token
Toutes les routes protegees necessitent l'en-tete suivant :
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...Le token contient les claims suivants :
sub: ID utilisateur (UUID)email: Email de l'utilisateurrole: Role (superadmin, msp, client_admin, client_user)client_id: ID du client associeexp: Date d'expirationiss: Emetteur (filesecure)
Service Tokens
Pour les integrations API-to-API, ConformVault supporte des tokens de service :
X-Service-Token: <service-token>Les tokens de service sont geres via les endpoints /api/v1/organizations/:org_id/service-tokens.