Référence APIAuthentificationIndex

Authentification

Toutes les méthodes d’authentification pour utiliser l’API Ephia Voice.


Types de clés API

Clés personnelles

  • Usage : Développement et tests personnels
  • Scope : Toutes les ressources de l’utilisateur
  • Partage : Non recommandé (sécurité)
  • Format : epk_live_... ou epk_test_...

Clés de projet

  • Usage : Production, partageable avec équipe
  • Scope : Ressources du projet uniquement
  • Partage : Oui, avec membres du projet
  • Format : epk_proj_...
  • Permissions : Configurables (lecture seule, lecture/écriture, admin)

Génération d’une clé API

Via Dashboard

  1. Se connecter à https://app.ephia.ai
  2. Aller dans Settings > API Keys
  3. Cliquer sur Create new key
  4. Choisir le type (personnelle ou projet)
  5. Nommer la clé (ex: “Production Backend”)
  6. Configurer les permissions
  7. Copier la clé (affichée une seule fois)

Via API

curl -X POST https://api.ephia.ai/v1/api-keys \
  -H "Authorization: Bearer <YOUR_MASTER_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Backend",
    "type": "project",
    "project_id": "proj_abc123",
    "permissions": ["read", "write"]
  }'

Utilisation de la clé

HTTP

Pour les endpoints HTTP (init session, batch, etc.), envoyer la clé dans un header Authorization.

curl https://api.ephia.ai/v1/live/sessions \
  -H "Authorization: Bearer epk_live_..." \
  -H "x-ephia-key: epk_live_..."

WebSocket

Le token API peut être passé directement dans l’URL WebSocket via le paramètre token, ou via le header Authorization: Bearer <token> lors de la connexion.

wss://api.ephia.ai/api/v1/audio/live?token=epk_live_...

Rotation des clés

Processus recommandé

  1. Générer une nouvelle clé
  2. Mettre à jour l’application avec la nouvelle clé
  3. Tester que tout fonctionne
  4. Révoker l’ancienne clé

Fréquence : Tous les 90 jours (recommandé)

Révocation

Via Dashboard :

  • Aller dans Settings > API Keys
  • Cliquer sur Revoke à côté de la clé
  • Confirmer la révocation

Via API :

curl -X DELETE https://api.ephia.ai/v1/api-keys/epk_live_... \
  -H "Authorization: Bearer <YOUR_MASTER_KEY>"

Bonnes pratiques

  • ✅ Stocker les clés dans des variables d’environnement
  • ✅ Utiliser un secret manager (AWS Secrets Manager, HashiCorp Vault)
  • ✅ Ne jamais commiter les clés dans Git
  • ✅ Utiliser des clés différentes pour dev/staging/prod
  • ✅ Limiter les permissions au strict nécessaire
  • ✅ Surveiller l’utilisation des clés (dashboard)
  • ✅ Rotation régulière (tous les 90 jours)
  • ✅ Générer ws_url côté backend et ne jamais exposer la clé API au frontend