Skip to Content

Log Streaming

Auris registra log di audit per ogni evento significativo nel tuo tenant: login, modifiche utente, assegnazioni di ruoli, controlli dei permessi, chiamate API e azioni amministrative. Il log streaming ti permette di esportare questi eventi in tempo reale verso servizi esterni di logging e analisi, offrendoti una visione unificata dell’attività di autenticazione insieme ai log della tua applicazione.

Questa guida copre le destinazioni supportate, come configurare ciascuna, il formato dei log e come verificare la consegna.

Perché il Log Streaming

Mentre la Console Auris fornisce un visualizzatore di log di audit integrato con ricerca e filtri, le organizzazioni spesso hanno bisogno di:

  • Centralizzare i log su tutti i sistemi (applicazione, infrastruttura, autenticazione) in un unico SIEM
  • Conservare i log oltre il periodo di conservazione predefinito (Auris conserva i log per 90 giorni di default)
  • Creare dashboard e alert personalizzati basati sugli eventi di autenticazione
  • Soddisfare requisiti di conformità (SOC 2, HIPAA, GDPR) che richiedono l’esportazione dei log verso un sistema di archiviazione controllato
  • Correlare gli eventi di autenticazione con gli eventi dell’applicazione per le indagini sugli incidenti

Il log streaming invia gli eventi non appena si verificano con latenza minima (tipicamente inferiore a 5 secondi).

Destinazioni Supportate

Auris supporta quattro tipi di destinazione per il log streaming:

DestinazioneTrasportoAutenticazioneIdeale per
WebhookHTTPS POSTFirma HMAC-SHA256Integrazioni personalizzate, Elasticsearch, SIEM self-hosted
Amazon S3AWS S3 APIAccess key + Secret keyArchiviazione a lungo termine, conformità, data lake
DatadogDatadog Log APIAPI keyMonitoraggio e alert in tempo reale
SplunkHTTP Event Collector (HEC)Token HECSIEM enterprise e analisi di sicurezza

Formato dei Log

Tutti i log condividono lo stesso schema JSON indipendentemente dalla destinazione:

{ "id": "log_abc123def456", "timestamp": "2026-01-15T10:30:00.000Z", "type": "login.succeeded", "severity": "info", "actor": { "id": "usr_xyz789", "email": "[email protected]", "type": "user" }, "target": { "id": "app_web123", "type": "application", "name": "Web App di Produzione" }, "action": "login.succeeded", "description": "L'utente ha effettuato il login con successo", "metadata": { "ipAddress": "203.0.113.42", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...", "location": "Milano, Italia", "authMethod": "password", "mfaUsed": true, "mfaMethod": "totp", "sessionId": "sess_abc123" }, "tenant": "tuo-tenant-id", "source": "auris" }

Riferimento dei Campi

CampoTipoDescrizione
idstringIdentificatore univoco dell’evento
timestampISO 8601Quando si è verificato l’evento
typestringTipo evento (es. login.succeeded, user.created, role.assigned)
severitystringinfo, warn o error
actorobjectChi ha eseguito l’azione (utente, admin, sistema o client M2M)
targetobjectLa risorsa interessata (utente, applicazione, ruolo, organizzazione)
actionstringL’azione eseguita
descriptionstringDescrizione leggibile
metadataobjectContesto aggiuntivo (IP, user agent, posizione, parametri specifici)
tenantstringL’ID del tenant
sourcestringSempre auris

Configurazione della Destinazione Webhook

La destinazione Webhook invia i log come richieste HTTPS POST al tuo endpoint, firmate con HMAC-SHA256 per la verifica.

Configurazione

  1. Vai su Console poi Impostazioni poi Log Streaming
  2. Clicca Aggiungi Stream
  3. Seleziona Webhook come tipo di destinazione
  4. Inserisci la configurazione:
CampoObbligatorioDescrizione
NomeSìUn nome descrittivo per questo stream
URLSìL’URL del tuo endpoint HTTPS
EventiNoFiltra quali tipi di evento trasmettere (vuoto = tutti gli eventi)
  1. Clicca Crea

Auris genera un segreto di firma per il webhook. Il formato della richiesta è:

POST /tuo-endpoint-log HTTP/1.1 Host: api.tuazienda.com Content-Type: application/json X-Webhook-Signature: <hmac-sha256-hex> X-Webhook-Timestamp: <unix-seconds> { "events": [ { "id": "log_abc123", "type": "login.succeeded", ... }, { "id": "log_def456", "type": "user.updated", ... } ] }

Gli eventi vengono raggruppati (fino a 100 per richiesta) e consegnati in pochi secondi. Usa la stessa logica di verifica della firma descritta nella guida Webhook.

Esempio di Receiver

import express from 'express' import crypto from 'crypto' const app = express() app.post( '/logs/auris', express.raw({ type: 'application/json' }), (req, res) => { const signature = req.headers['x-webhook-signature'] as string const timestamp = req.headers['x-webhook-timestamp'] as string const secret = process.env.AURIS_LOG_STREAM_SECRET! // Verifica firma const payload = `${timestamp}.${req.body.toString()}` const expected = crypto .createHmac('sha256', secret) .update(payload) .digest('hex') if ( !crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) ) ) { return res.status(401).send('Firma non valida') } const { events } = JSON.parse(req.body.toString()) for (const event of events) { console.log(`[${event.severity}] ${event.type}: ${event.description}`) } res.status(200).json({ received: events.length }) } )

Configurazione della Destinazione Amazon S3

La destinazione S3 scrive i log come file JSON in un bucket S3. I file sono organizzati per data e raggruppati per un’archiviazione efficiente.

Configurazione

  1. Vai su Console poi Impostazioni poi Log Streaming
  2. Clicca Aggiungi Stream
  3. Seleziona Amazon S3 come tipo di destinazione
  4. Inserisci la configurazione:
CampoObbligatorioDescrizione
NomeSìUn nome descrittivo per questo stream
BucketSìNome del bucket S3 (es. my-company-auris-logs)
RegioneSìRegione AWS (es. eu-west-1)
Access Key IDSìAccess key IAM AWS con permesso s3:PutObject
Secret Access KeySìSecret key corrispondente
PrefissoNoPrefisso della chiave oggetto (es. auris/production/)
EventiNoFiltra quali tipi di evento trasmettere
  1. Clicca Crea

Struttura degli Oggetti S3

I file di log vengono scritti con il seguente pattern di chiave:

{prefisso}yyyy/MM/dd/HH/auris-logs-{timestamp}-{uuid}.json

Ogni file contiene un array JSON di log:

[ { "id": "log_abc123", "type": "login.succeeded", "timestamp": "..." }, { "id": "log_def456", "type": "user.created", "timestamp": "..." } ]

Policy IAM Richiesta

Crea un utente o ruolo IAM con la seguente policy minima:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::my-company-auris-logs/auris/*" } ] }

Segui il principio del minimo privilegio. Concedi solo il permesso PutObject sul prefisso specifico che Auris utilizzerà. Non concedere s3:* o accesso all’intero bucket.

Configurazione della Destinazione Datadog

La destinazione Datadog invia i log all’API Logs di Datadog, dove appaiono nel Log Explorer e possono essere usati in monitor, dashboard e alert.

Configurazione

  1. Vai su Console poi Impostazioni poi Log Streaming
  2. Clicca Aggiungi Stream
  3. Seleziona Datadog come tipo di destinazione
  4. Inserisci la configurazione:
CampoObbligatorioDescrizione
NomeSìUn nome descrittivo per questo stream
API KeySìAPI key Datadog (da Organization Settings)
SiteSìIl tuo sito Datadog: datadoghq.com (US), datadoghq.eu (EU), ecc.
Tag SorgenteNoTag source per il filtraggio in Datadog (default: auris)
EventiNoFiltra quali tipi di evento trasmettere
  1. Clicca Crea

Creazione di Monitor Datadog

Dopo che il log streaming è attivo, crea monitor in Datadog per alert sugli eventi critici:

Picco di login falliti:

logs("source:auris @auris.event_type:login.failed").index("main").rollup("count").last("5m") > 50

Blocco account:

logs("source:auris @auris.event_type:user.blocked").index("main").rollup("count").last("1h") > 5

Login sospetto rilevato:

logs("source:auris @auris.event_type:login.suspicious").index("main").rollup("count").last("15m") > 0

Configurazione della Destinazione Splunk

La destinazione Splunk invia i log a un endpoint Splunk HTTP Event Collector (HEC).

Prerequisiti

  1. Abilita HTTP Event Collector in Splunk (Impostazioni > Input dati > HTTP Event Collector)
  2. Crea un nuovo token HEC
  3. Annota l’URL HEC e il token

Configurazione

  1. Vai su Console poi Impostazioni poi Log Streaming
  2. Clicca Aggiungi Stream
  3. Seleziona Splunk come tipo di destinazione
  4. Inserisci la configurazione:
CampoObbligatorioDescrizione
NomeSìUn nome descrittivo per questo stream
URL HECSìEndpoint Splunk HEC (es. https://splunk.tuazienda.com:8088)
TokenSìToken HEC
IndexNoIndex Splunk di destinazione
EventiNoFiltra quali tipi di evento trasmettere
  1. Clicca Crea

Esempi di Ricerca Splunk

Dopo l’ingestione, cerca gli eventi Auris con SPL:

# Tutti i fallimenti di autenticazione nell'ultima ora sourcetype="auris:audit" type="login.failed" earliest=-1h # Conteggio login per paese sourcetype="auris:audit" type="login.succeeded" | spath path=metadata.location | stats count by metadata.location # Rilevare viaggi impossibili sourcetype="auris:audit" type="login.suspicious" | where metadata.reason="impossible_travel"

Filtraggio degli Eventi

Di default, uno stream riceve tutti gli eventi di audit. Puoi filtrare per tipo di evento al momento della creazione o dell’aggiornamento di uno stream.

Categorie di Eventi Disponibili

CategoriaEsempi di eventi
Autenticazionelogin.succeeded, login.failed, login.mfa_required, login.suspicious
Ciclo di vita utenteuser.created, user.updated, user.deleted, user.blocked
Passworduser.password_changed, user.password_reset_requested
Ruoli e permessirole.created, role.assigned, permission.changed
Organizzazioneorganization.created, organization.member_added, organization.invitation_sent
Applicazioneapplication.created, application.secret_rotated
Sessionesession.created, session.revoked
Adminadmin.settings_changed, admin.user_impersonated

Esempio: Stream solo degli eventi di autenticazione e sicurezza:

curl -X POST https://auth.tuodominio.com/api/log-streams \ -H "Authorization: Bearer $AURIS_ACCESS_TOKEN" \ -H "x-tenant: tuo-tenant-id" \ -H "Content-Type: application/json" \ -d '{ "name": "Eventi di sicurezza su Datadog", "type": "DATADOG", "config": { "apiKey": "dd-api-key-qui", "site": "datadoghq.eu", "sourceTag": "auris" }, "events": [ "login.failed", "login.suspicious", "user.blocked", "user.unblocked", "user.password_changed", "session.revoked", "role.assigned", "role.unassigned" ] }'

Verifica della Consegna

Dopo aver creato uno stream, verifica che funzioni:

Verifica nella Console

  1. Vai su Impostazioni poi Log Streaming
  2. Clicca sul tuo stream per visualizzarne i dettagli
  3. L’indicatore Stato mostra se le consegne recenti hanno avuto successo
  4. Il timestamp Ultima Consegna mostra quando è stato inviato l’ultimo batch

Attivare un Evento di Test

Genera un evento di test eseguendo un’azione nella Console (es. crea un utente di test e poi eliminalo). Entro pochi secondi, l’evento dovrebbe apparire nella tua destinazione.

Controllare i Fallimenti di Consegna

Se le consegne falliscono, la pagina dei dettagli dello stream mostra:

  • Messaggio di errore — Il codice di stato HTTP o l’errore restituito dalla destinazione
  • Fallimenti consecutivi — Quante consegne sono fallite di fila
  • Ultima consegna riuscita — Quando lo stream ha funzionato l’ultima volta

Se uno stream accumula troppi fallimenti consecutivi, Auris lo mette in pausa automaticamente e notifica gli amministratori del tenant. Correggi il problema sottostante (credenziali, rete, disponibilità dell’endpoint) e riabilita lo stream dalla Console.

Risoluzione dei Problemi

Webhook: Errori 401 o 403

  • Verifica che il segreto di firma corrisponda tra Auris e il tuo endpoint
  • Assicurati che il tuo endpoint non richieda header di autenticazione aggiuntivi
  • Controlla che l’orologio del server sia sincronizzato (NTP) — la verifica del timestamp fallisce se gli orologi differiscono di più di 5 minuti

S3: Accesso Negato

  • Verifica che l’access key e la secret key IAM siano corretti
  • Assicurati che la policy IAM conceda s3:PutObject sul bucket e prefisso corretti
  • Controlla che il bucket S3 esista nella regione specificata

Datadog: Eventi Non Visibili

  • Verifica che l’API key sia valida
  • Assicurati di aver selezionato il sito Datadog corretto (US, EU, US3, US5)
  • Controlla nella configurazione dei Log di Datadog eventuali pipeline di elaborazione che potrebbero eliminare gli eventi

Splunk: Connessione Rifiutata

  • Verifica che l’URL HEC sia corretto e includa la porta (tipicamente 8088)
  • Assicurati che HEC sia abilitato in Splunk (Impostazioni > Input dati > HTTP Event Collector > Impostazioni globali)
  • Verifica che il token HEC sia valido e abbia i permessi corretti sull’index
  • Controlla i certificati SSL se usi HTTPS — Auris richiede un certificato valido

Guide Correlate