Skip to Content

API Logs d’Audit

Les logs d’audit enregistrent de manière immuable toutes les actions effectuées dans le tenant — connexions, modifications de configuration, assignations de rôles, et bien plus. Ils sont conçus pour la conformité (SOC 2, ISO 27001, GDPR Article 30).

Tous les endpoints nécessitent le header x-tenant.


Consultation des Logs

GET/api/audit-logsRequires: view:audit_logs

Interroge les logs d’audit avec filtrage et pagination. Les logs sont retournés par ordre chronologique décroissant (du plus récent au plus ancien).

Paramètres de query

ParamètreTypeDescription
actionstringFiltre par type d’action (ex. user.login)
userIdstringFiltre par identifiant utilisateur
resourceTypestringFiltre par type de ressource (ex. user, role, application)
levelstringFiltre par niveau : info, warn, error
dateFromISO 8601Début de la plage temporelle
dateToISO 8601Fin de la plage temporelle
searchstringRecherche textuelle dans les détails
pageintegerNuméro de page (défaut : 1)
limitintegerÉléments par page (défaut : 50, max : 200)

Réponse de succès

{ "ok": true, "data": { "data": [ { "id": "log_abc123", "action": "user.login", "userId": "usr_abc123", "resourceType": "session", "resourceId": "ses_xyz789", "details": { "method": "password", "ipAddress": "192.168.1.1", "userAgent": "Mozilla/5.0..." }, "level": "info", "ipAddress": "192.168.1.1", "userAgent": "Mozilla/5.0...", "createdAt": "2025-03-01T10:00:00Z" } ], "pagination": { "page": 1, "limit": 50, "total": 1842 } } }

Structure d’une Entrée de Log

ChampTypeDescription
idstringIdentifiant unique du log
actionstringType d’action au format categorie.action
userIdstringIdentifiant de l’utilisateur ayant effectué l’action (null pour les actions système)
resourceTypestringType de ressource affectée
resourceIdstringIdentifiant de la ressource affectée
detailsobjectContexte supplémentaire — peut contenir before/after pour les mutations
levelstringinfo, warn, ou error
ipAddressstringAdresse IP de la requête
userAgentstringUser-agent du client
createdAtISO 8601Horodatage de l’événement

Le champ details pour les opérations de mutation (création, modification, suppression) contient des snapshots before et after de la ressource. Les champs sensibles (mots de passe, secrets) ne sont jamais loggés.


Types d’Actions

Authentification et Sessions

ActionNiveauDescription
user.logininfoConnexion réussie
user.login.failedwarnTentative de connexion échouée
user.logoutinfoDéconnexion de session
session.revokewarnSession révoquée manuellement
token.exchangeinfoÉchange de token (Token Exchange flow)
token.refreshinfoRenouvellement de token d’accès
magic_link.sentinfoMagic link envoyé
magic_link.verifiedinfoMagic link vérifié

Gestion des Utilisateurs

ActionNiveauDescription
user.createinfoUtilisateur créé
user.updateinfoProfil utilisateur modifié
user.deletewarnUtilisateur supprimé
user.enableinfoCompte utilisateur réactivé
user.disablewarnCompte utilisateur désactivé
user.email_verifyinfoEmail vérifié
user.password_resetwarnMot de passe réinitialisé
user.importinfoUtilisateurs importés en masse

Rôles et Permissions

ActionNiveauDescription
role.createinfoNouveau rôle créé
role.updateinfoPermissions du rôle modifiées
role.deletewarnRôle supprimé
role.assigninfoRôle assigné à un utilisateur
role.unassignwarnRôle retiré d’un utilisateur

Applications

ActionNiveauDescription
application.createinfoApplication créée
application.updateinfoApplication modifiée
application.deletewarnApplication supprimée
application.secret.rotatewarnSecret d’application pivoté

SSO et Organisation

ActionNiveauDescription
sso.connection.createinfoConnexion SSO créée
sso.connection.activateinfoConnexion SSO activée
sso.connection.deactivatewarnConnexion SSO désactivée
organization.createinfoOrganisation créée
organization.member_addinfoMembre ajouté à une organisation
organization.member_removewarnMembre retiré d’une organisation

Sécurité

ActionNiveauDescription
security.brute_force.lockouterrorCompte verrouillé après trop de tentatives
security.suspicious_loginwarnConnexion suspecte détectée
mfa.enableinfo2FA activée
mfa.disablewarn2FA désactivée
security.settings.updatewarnParamètres de sécurité modifiés

Streaming des Logs

Le streaming permet d’envoyer en temps réel les logs d’audit vers des destinations externes pour archivage, analyse ou intégration SIEM.

Les logs d’audit sont immuables et ne peuvent pas être modifiés ou supprimés via l’API. Le streaming ne remplace pas le stockage interne des logs — il les duplique vers des destinations configurées.

GET/api/log-streamsRequires: manage:log_streams

Liste toutes les configurations de streaming de logs.

Réponse de succès

{ "ok": true, "data": [ { "id": "stream_abc123", "name": "Archive S3 Production", "type": "S3", "status": "active", "createdAt": "2025-01-01T00:00:00Z" } ] }

Statuts des streams

StatutDescription
activeStream actif et fonctionnel
pausedStream mis en pause manuellement
errorErreur de connexion ou d’authentification

POST/api/log-streamsRequires: manage:log_streams

Crée un nouveau stream de logs. Supporte 4 types de destinations.

Corps de la requête — WEBHOOK

{ "name": "Webhook Audit", "type": "WEBHOOK", "config": { "url": "https://your-siem.com/audit/ingest", "headers": { "Authorization": "Bearer token_value", "X-Source": "auris-audit" } } }

Corps de la requête — S3

{ "name": "Archive S3 Production", "type": "S3", "config": { "bucket": "my-audit-logs-bucket", "region": "eu-west-1", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "prefix": "auris/audit-logs/" } }

Les fichiers S3 sont stockés au format : {prefix}YYYY/MM/DD/HH-mm-ss-{uuid}.json

Corps de la requête — DATADOG

{ "name": "Datadog SIEM", "type": "DATADOG", "config": { "apiKey": "datadog_api_key", "region": "eu", "service": "auris-auth", "source": "auris" } }

Corps de la requête — SPLUNK

{ "name": "Splunk SOC", "type": "SPLUNK", "config": { "hecUrl": "https://your-splunk.com:8088", "hecToken": "splunk_hec_token", "index": "security_audit", "source": "auris", "sourcetype": "auris:audit" } }

PATCH/api/log-streams/[id]Requires: manage:log_streams

Met à jour un stream existant. Tu peux modifier le nom, la configuration ou le statut (active/paused).

Corps de la requête

{ "status": "paused" }

DELETE/api/log-streams/[id]Requires: manage:log_streams

Supprime un stream de logs. Les logs déjà envoyés restent dans la destination.


Conformité

Les logs d’audit d’Auris sont conçus pour répondre aux exigences de conformité :

  • GDPR Article 30 : Journal des activités de traitement des données personnelles
  • SOC 2 Type II : Traçabilité complète des accès et modifications
  • ISO 27001 : Journalisation et surveillance des événements de sécurité
  • Immuabilité : Les logs ne peuvent pas être modifiés ou supprimés via l’API — intégrité garantie

Pages Associées