Skip to Content

API Sécurité

L’API Sécurité fournit des outils pour protéger le tenant contre les accès non autorisés et les activités malveillantes. Les administrateurs peuvent gérer les listes d’IP autorisées/bloquées, examiner les événements de connexion suspects, configurer la vérification CAPTCHA et gérer les verrouillages de comptes.

Auris évalue les règles de sécurité pendant chaque tentative d’authentification dans cet ordre : règles IP (blocage/permission) → vérification CAPTCHA → rate limiting → validation des credentials → analyse des connexions suspectes → MFA adaptatif. Chaque niveau opère indépendamment et peut être configuré séparément.

Règles IP

Les règles IP définissent des listes d’autorisation et de blocage en utilisant la notation CIDR. Les règles de blocage ont toujours la priorité sur les règles d’autorisation. Les règles peuvent être limitées à l’ensemble du tenant ou à une application spécifique.

Lister les Règles IP

GET/api/ip-rulesRequires: manage:users

Liste toutes les règles IP allow/block configurées pour le tenant. Supporte le filtrage par type de règle, scope et statut actif. Les règles sont triées par date de création décroissante.

Paramètres de query

ParamètreTypeDescription
typestringFiltre par type de règle : ALLOW ou BLOCK
scopestringFiltre par scope : TENANT ou APPLICATION
isActivebooleanFiltre par statut actif
pageintegerNuméro de page (défaut : 1)
limitintegerÉléments par page (défaut : 20, max : 100)

Réponse de succès

{ "ok": true, "data": { "data": [ { "id": "ipr_abc123", "cidr": "203.0.113.0/24", "type": "BLOCK", "scope": "TENANT", "applicationId": null, "label": "Plage d'attaquant connu", "note": "Bloqué après campagne brute-force le 2025-02-10", "isTemporary": true, "expiresAt": "2025-03-10T00:00:00Z", "isActive": true, "createdAt": "2025-02-10T14:30:00Z" }, { "id": "ipr_def456", "cidr": "10.0.0.0/8", "type": "ALLOW", "scope": "TENANT", "applicationId": null, "label": "VPN d'entreprise", "note": "Plage réseau interne", "isTemporary": false, "expiresAt": null, "isActive": true, "createdAt": "2025-01-15T09:00:00Z" } ], "pagination": { "page": 1, "limit": 20, "total": 3, "totalPages": 1 } } }

Créer une Règle IP

POST/api/ip-rulesRequires: manage:users

Crée une nouvelle règle IP allow ou block. La notation CIDR est obligatoire — utilise /32 pour une adresse IP unique. Les règles de blocage ont toujours la priorité sur les règles d’autorisation lors de l’évaluation.

Corps de la requête

{ "cidr": "192.0.2.0/24", "type": "BLOCK", "scope": "TENANT", "label": "Plage datacenter", "note": "Bloqué en raison d'activité de scraping automatisé", "isTemporary": true, "expiresAt": "2025-04-01T00:00:00Z" }
ChampTypeObligatoireDescription
cidrstringOuiAdresse IP ou plage en notation CIDR (ex. 10.0.0.1/32, 192.168.0.0/16)
typestringOuiALLOW ou BLOCK
scopestringOuiTENANT (s’applique à toutes les apps) ou APPLICATION (nécessite applicationId)
applicationIdstringNonObligatoire quand le scope est APPLICATION
labelstringNonÉtiquette lisible pour la règle
notestringNonNote administrative ou raison
isTemporarybooleanNonSi la règle expire automatiquement (défaut : false)
expiresAtstringNonDate d’expiration ISO 8601. Obligatoire quand isTemporary est true

Codes d’erreur

CodeHTTPDescription
VALIDATION_ERROR400Notation CIDR invalide, champs obligatoires manquants, ou combinaison scope/type invalide
DUPLICATE_RULE409Une règle avec le même CIDR et scope existe déjà

Les règles temporaires sont automatiquement supprimées après le timestamp expiresAt. Il n’est pas nécessaire de les supprimer manuellement.

Mettre à Jour une Règle IP

PATCH/api/ip-rules/[id]Requires: manage:users

Met à jour une règle IP existante. Tous les champs sont optionnels — seuls les champs fournis sont mis à jour. La modification du CIDR ou du type d’une règle prend effet immédiatement.

Supprimer une Règle IP

DELETE/api/ip-rules/[id]Requires: manage:users

Supprime définitivement une règle IP. La règle est retirée immédiatement.

Événements de Connexion Suspecte

Auris surveille les tentatives de connexion pour détecter des comportements anormaux en utilisant cinq méthodes de détection : nouvel appareil, nouvelle adresse IP, nouveau pays, voyage impossible et utilisation VPN/proxy. Quand une activité suspecte est détectée, un événement est enregistré et l’action configurée est exécutée (log uniquement, MFA requis, ou blocage).

Lister les Événements de Connexion Suspecte

GET/api/suspicious-login/eventsRequires: manage:users

Liste les événements de connexion suspecte dans le tenant. Les événements sont triés par date de création décroissante. Utilise le filtre reviewed pour trouver les événements nécessitant attention.

Paramètres de query

ParamètreTypeDescription
userIdstringFiltre les événements pour un utilisateur spécifique
severitystringFiltre par gravité : low, medium, high, critical
reasonstringFiltre par raison : new_device, new_ip, new_country, impossible_travel, vpn_detected
reviewedbooleantrue pour les événements révisés, false pour les non révisés
pageintegerNuméro de page (défaut : 1)
limitintegerÉléments par page (défaut : 20, max : 100)

Réponse de succès

{ "ok": true, "data": { "data": [ { "id": "sle_abc123", "userId": "usr_xyz789", "userEmail": "[email protected]", "reason": "impossible_travel", "severity": "high", "actionTaken": "require_mfa", "details": { "previousLocation": { "country": "France", "city": "Paris" }, "currentLocation": { "country": "Brazil", "city": "Sao Paulo" }, "distanceKm": 9000, "timeDiffMinutes": 45, "requiredSpeedKmh": 12000 }, "ipAddress": "198.51.100.42", "reviewed": false, "createdAt": "2025-02-18T09:15:00Z" } ], "pagination": { "page": 1, "limit": 20, "total": 47, "totalPages": 3 } } }

Marquer un Événement comme Révisé

PATCH/api/suspicious-login/events/[id]/reviewRequires: manage:users

Marque un événement de connexion suspecte comme révisé. Il s’agit d’un accusé de réception administratif et n’affecte pas l’accès de l’utilisateur.

Codes d’erreur

CodeHTTPDescription
NOT_FOUND404L’événement n’existe pas
ALREADY_REVIEWED400L’événement a déjà été marqué comme révisé

Récupérer la Configuration de Détection

GET/api/suspicious-login/configRequires: manage:users

Récupère la configuration actuelle de détection des connexions suspectes pour le tenant.

Réponse de succès

{ "ok": true, "data": { "detectNewDevice": true, "detectNewIp": true, "detectNewCountry": true, "detectImpossibleTravel": true, "detectVpn": false, "actionOnNewDevice": "log", "actionOnNewIp": "log", "actionOnNewCountry": "require_mfa", "actionOnImpossibleTravel": "require_mfa", "actionOnVpn": "log", "maxTravelSpeedKmh": 900, "geoIpProvider": "ip-api", "updatedAt": "2025-02-01T12:00:00Z" } }
ChampTypeDescription
detectNewDevicebooleanSignale les connexions depuis des appareils jamais vus auparavant
detectNewIpbooleanSignale les connexions depuis des adresses IP jamais vues auparavant
detectNewCountrybooleanSignale les connexions depuis un nouveau pays
detectImpossibleTravelbooleanSignale quand des connexions consécutives sont géographiquement impossibles compte tenu du temps écoulé
detectVpnbooleanSignale les connexions depuis des IP VPN/proxy/datacenter connus
actionOn*stringAction à effectuer : log (enregistrement uniquement), require_mfa (force 2FA), block (refus d’accès)
maxTravelSpeedKmhintegerSeuil de vitesse pour la détection du voyage impossible (défaut : 900 km/h)

Mettre à Jour la Configuration de Détection

PATCH/api/suspicious-login/configRequires: manage:users

Met à jour la configuration de détection des connexions suspectes. Tous les champs sont optionnels. Les modifications prennent effet immédiatement sur les tentatives de connexion suivantes.

Définir actionOnImpossibleTravel ou actionOnNewCountry sur block peut bloquer des utilisateurs légitimes qui voyagent fréquemment ou utilisent des réseaux mobiles. Envisage d’utiliser require_mfa à la place, ce qui ajoute une étape de vérification sans refuser complètement l’accès.

CAPTCHA

La vérification CAPTCHA ajoute un défi humain aux flux d’authentification. Auris supporte trois fournisseurs : Cloudflare Turnstile, hCaptcha et reCAPTCHA v3. Le CAPTCHA peut être activé à chaque tentative, uniquement après une activité suspecte, ou après un nombre configurable de tentatives de connexion échouées.

Récupérer la Configuration CAPTCHA

GET/api/captcha/configRequires: manage:users

Récupère la configuration CAPTCHA actuelle pour le tenant.

Réponse de succès

{ "ok": true, "data": { "provider": "CLOUDFLARE_TURNSTILE", "trigger": "ON_SUSPICIOUS", "siteKey": "0x4AAAAAAA...", "scoreThreshold": 0.5, "enableOnLogin": true, "enableOnRegister": true, "enableOnReset": false, "updatedAt": "2025-02-15T10:00:00Z" } }

La secretKey n’est jamais retournée dans les réponses API. Elle peut uniquement être définie via l’endpoint de mise à jour.

Mettre à Jour la Configuration CAPTCHA

PATCH/api/captcha/configRequires: manage:users

Met à jour la configuration CAPTCHA. Tous les champs sont optionnels. Définis provider sur null pour désactiver complètement le CAPTCHA.

Corps de la requête

{ "provider": "CLOUDFLARE_TURNSTILE", "trigger": "AFTER_FAILURES", "siteKey": "0x4AAAAAAA_your_site_key", "secretKey": "0x4AAAAAAA_your_secret_key", "scoreThreshold": 0.5, "enableOnLogin": true, "enableOnRegister": true, "enableOnReset": true }
ChampTypeDescription
providerstringCLOUDFLARE_TURNSTILE, HCAPTCHA, RECAPTCHA_V3, ou null pour désactiver
triggerstringALWAYS, ON_SUSPICIOUS, AFTER_FAILURES
siteKeystringClé publique du fournisseur CAPTCHA
secretKeystringClé secrète du fournisseur CAPTCHA (écriture seule, jamais retournée)
scoreThresholdnumberSeuil de score pour reCAPTCHA v3 (0.0 - 1.0, défaut : 0.5)
enableOnLoginbooleanActive le CAPTCHA sur la page de connexion
enableOnRegisterbooleanActive le CAPTCHA sur la page d’inscription
enableOnResetbooleanActive le CAPTCHA sur la page de réinitialisation du mot de passe

Verrouillages de Compte

Quand un utilisateur dépasse le lockoutThreshold configuré dans les paramètres de sécurité, son compte est temporairement verrouillé. Les administrateurs peuvent visualiser les comptes verrouillés et les déverrouiller manuellement.

Lister les Comptes Verrouillés

GET/api/admin/lockoutsRequires: manage:users

Liste tous les comptes utilisateur actuellement verrouillés. Seuls les comptes avec des verrouillages actifs sont retournés. Les verrouillages expirés naturellement ne sont pas inclus.

Réponse de succès

{ "ok": true, "data": { "data": [ { "id": "lock_abc123", "userId": "usr_xyz789", "userEmail": "[email protected]", "userName": "Alice Martin", "failedAttempts": 5, "lockedAt": "2025-02-18T09:00:00Z", "expiresAt": "2025-02-18T09:15:00Z", "ipAddress": "203.0.113.50" } ], "pagination": { "page": 1, "limit": 20, "total": 2, "totalPages": 1 } } }

Déverrouiller un Compte

DELETE/api/admin/lockouts/[userId]Requires: manage:users

Déverrouille immédiatement un compte utilisateur. Le compteur des tentatives échouées est remis à zéro. L’utilisateur peut tenter de se connecter à nouveau immédiatement après le déverrouillage.

Réponse de succès

{ "ok": true, "data": { "unlocked": true, "userId": "usr_xyz789" } }

Codes d’erreur

CodeHTTPDescription
NOT_FOUND404L’utilisateur n’est pas actuellement verrouillé

Les verrouillages de compte expirent automatiquement en fonction de la lockoutDuration configurée dans les paramètres de sécurité. Le déverrouillage manuel n’est nécessaire que lorsqu’un utilisateur légitime est verrouillé et ne peut pas attendre l’expiration du verrouillage.

Ordre d’Évaluation de la Sécurité

Pendant chaque tentative d’authentification, Auris évalue les niveaux de sécurité dans cet ordre :

  1. Règles IP — Si l’IP du client correspond à une règle BLOCK, la requête est rejetée avec 403 IP_BLOCKED.
  2. CAPTCHA — Si le CAPTCHA est configuré et que la condition de déclenchement est satisfaite, le client doit fournir un token CAPTCHA valide.
  3. Rate Limiting — Vérification des limites de fréquence à fenêtre glissante (configurables par tier).
  4. Validation des Credentials — Vérification email/mot de passe ou autres credentials.
  5. Brute Force / Verrouillage — Le compteur des tentatives échouées est incrémenté. Si le seuil est atteint, le compte est verrouillé.
  6. Analyse des Connexions Suspectes — Analyse post-authentification de l’appareil, l’IP, la géographie et les patterns de voyage.
  7. MFA Adaptatif — L’évaluation du risque peut nécessiter une authentification step-up si le score de risque dépasse les seuils.

Chaque niveau est indépendant et peut être désactivé sans affecter les autres.

Référence des Permissions

PermissionDescription
manage:usersGère les règles IP, révise les événements de connexion suspecte, configure CAPTCHA et déverrouille les comptes

Pages Associées