Condividi tramite


Traccia evento

Questo articolo descrive come usare la traccia degli eventi in Microsoft Dynamics 365 Fraud Protection.

La funzionalità Traccia evento in Microsoft Dynamics 365 Fraud Protection consente di stabilire una piattaforma di telemetria in tempo reale che sia estendibile e operativa al di fuori del portale. Ogni evento è programmato o attivato da un'azione a livello di utente o di sistema. È possibile sottoscrivere gli eventi a cui si è interessati e inoltrare i payload dell'evento a Hub eventi di Azure o all'archivio BLOB di Azure. È inoltre possibile richiedere eventi da più sessioni di traccia di eventi contemporaneamente. Il sistema recapita quindi gli eventi in ordine cronologico.

Gli eventi possono essere aggregati e usati per definire le metriche che è possibile usare per monitorare e gestire i costi e l'utilizzo del servizio. Gli eventi possono essere usati anche per sviluppare report personalizzati che usano dati transazionali o per gestire i log di sistema per le azioni eseguite nel portale di Protezione dalle frodi (ad esempio, "utente A elenco modificato B alla data C"). Quando si usano i connettori Hub eventi di Azure disponibili in Microsoft Power Automate e App per la logica di Azure, è anche possibile usare i dati inviati a Hub eventi di Azure per avvisi o flussi di lavoro altamente personalizzati. Analogamente, con l'archiviazione BLOB di Azure è possibile creare una nuova sottoscrizione che copia tutti i dati cronologici nell'account di archiviazione ad accesso sporadico per un'ulteriore analisi.

Se l'istanza di Fraud Protection ha più ambienti, è possibile trovare la traccia degli eventi per ogni ambiente usando il commutatore di ambiente. Se l'ambiente ha ambienti figlio, la traccia degli eventi sottoscritta per l'ambiente padre include automaticamente gli stessi eventi per tutti gli ambienti figlio.

Nota

I clienti di rilevamento degli eventi devono avere una sottoscrizione a servizi di Azure aggiuntivi, ad esempio Hub eventi o Archiviazione BLOB. Per informazioni dettagliate, contattare il responsabile dell'account Microsoft. Se disponi delle credenziali di amministratore globale di Azure, accedi al portale di Azure per determinare le sottoscrizioni disponibili.

Operazioni preliminari

Per iniziare a usare la funzionalità di traccia eventi, seguire questa procedura.

  1. Nel portale Fraud Protection, selezionare Dati, quindi selezionare Traccia evento.

  2. Selezionare Nuova sottoscrizione.

  3. Immettere un nome visualizzato per la sottoscrizione.

  4. Selezionare una posizione di archiviazione:

    1. Per Hub eventi: immettere la stringa di connessione per l'istanza di Hub eventi in Azure Key Vault. Azure Key Vault deve trovarsi nello stesso tenant dell'abbonamento a Fraud Protection. Concedere Ottieni accesso segreto all'app Fraud Protection in Azure Key Vault. Immettere l'URL dell'identificatore del segreto da Azure Key Vault nel portale di Fraud Protection. Per ulteriori informazioni, vedere Ottenere una stringa di connessione ad Hub eventi.
    2. Per Archiviazione BLOB: immettere la stringa di connessione per l'account di Archiviazione BLOB di Azure. Azure Key Vault deve trovarsi nello stesso tenant dell'abbonamento a Fraud Protection. Concedere Ottieni accesso segreto all'app Fraud Protection in Azure Key Vault. Nel portale di Protezione dalle frodi immettere l'URL dell'identificatore segreto dell'insieme di credenziali delle chiavi di Azure e un nome del contenitore in cui risiedono i dati di traccia degli eventi. Per ulteriori informazioni, vedere Visualizzare le chiavi di accesso all'account.
  5. Selezionare Test connessione. Dopo che la connessione è stata testata correttamente, vengono visualizzate le informazioni correlate all'account estratte dal stringa di connessione nell'insieme di credenziali delle chiavi di Azure. Per Hub eventi di Azure, queste informazioni di sola lettura includono spazio dei nomi dell'hub eventi e nome dell'hub eventi. Per Archiviazione BLOB di Azure viene visualizzato Archiviazione nome dell'account. Verificare che queste informazioni corrispondano all'account di archiviazione che si intende usare. Senza un test di connessione riuscito, il pulsante Crea non è abilitato.

  6. Selezionare un evento ed esaminare la descrizione e l'esempio del payload JSON. Quindi salvare l'abbonamento selezionando Crea. Gli eventi vengono inviati istantaneamente all'istanza di Hub eventi da quel determinato momento. Se è stato selezionato Blob Archiviazione, il processo di copia per scrivere tutti i dati cronologici inizia e tutti gli eventi vengono pubblicati nel contenitore ogni 30 minuti.

  7. Tornare al portale Fraud Protection per visualizzare il conteggio per la metrica Eventi/ore e assicurarsi che i dati vengano inviati a Hub eventi e ad Archiviazione BLOB. Le metriche Eventi/Ora e Errori/Ora mostrano la media delle ultime 24 ore.

    Suggerimento

    Per un ulteriore monitoraggio dell'Hub eventi, andare al portale di Azure e impostare le metriche. Per ulteriori informazioni, vedere Metriche di Hub eventi di Azure in Monitoraggio di Azure.

  8. Facoltativo: impostare la propria pipeline di ingresso da Hub eventi a Power BI. Per informazioni su come iniziare a sviluppare report personalizzati, vedere Utilizzare Power BI.

  9. Opzionale: connettersi a Hub eventi da Power Automate per definire flussi di lavoro personalizzati. Per ulteriori informazioni, vedere Utilizzare App per la logica o Power Automate.

Schemi di eventi

Attualmente sono disponibili cinque classificazioni di eventi supportate nella traccia di eventi: eventi transazionali, eventi di traccia, eventi di valutazione, eventi di controllo ed eventi di monitoraggio.

Eventi transazionali

Usare gli eventi transazionali per creare scorecard personalizzate e flussi di lavoro automatizzati usando i dati disponibili nelle chiamate API di valutazione e non valutazione. Utilizzando l'archiviazione BLOB, è anche possibile copiare i dati dalle chiamate API storiche per creare un data warehouse per l'azienda. Il payload per questo evento include l'intera richiesta e risposta per ogni chiamata API.

Spazio dei nomi: FraudProtection.Observe.<API Name> o FraudProtection.Assessment.<API Name>
{
    "uniqueId": "unique event id and used to deduplicate events",
    "request": {
        //API request payload
    },
    "response": {
        //API response payload
    },
    "name": "FraudProtection.Observe.AccountLabel",
    "version": "1.0",
    "metadata": {
        "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
        "timestamp": "2020-09-25T03:46:53.3716978Z"
    }
}

Eventi di analisi

Gli eventi di analisi vengono utilizzati per segnalare e monitorare le prestazioni per tutte le regole che includono il tipo restituito Trace(). Il payload per questo evento include campi standardizzati come il nome della regola che ha attivato l'evento, il tipo di evento correlato al tipo di valutazione per quella regola, l'ID di correlazione, e così via. È quindi possibile inviare attributi personalizzati utilizzando coppie chiave:valore nel tipo restituito Trace () per includere le variabili del payload di esempio, il punteggio di rischio e i campi personalizzati. Per ulteriori informazioni su come utilizzare Trace() nelle regole per attivare questi eventi, vedere Funzioni di osservazione nella Guida al linguaggio per le regole.

Spazio dei nomi: FraudProtection.Trace.Rule.
{
    "name": "FraudProtection.Trace.Rule",
    "version": "1.0",
    "metadata":
{
    "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
    "timestamp": "2020-06-10T23:43:33.4526859Z" 
}
    "ruleName": "Risk Score Policy",
    "eventType": "Purchase",
    "correlationId": "e49319e6-0bea-4567-9f3e-c9f873fc958a",
    "eventId": "e75e703c-1e54-4d41-af4b-a4c1b8866f02",
    "attributes":
{
      "example": "ManualReview” //key:value pairs defined in the Trace() return type
} 

    }

Eventi di valutazione

La valutazione e gli eventi di etichetta e osservazione associati possono essere tracciati nell'hub eventi e nei BLOB.

Spazio dei nomi: FraudProtection.Assessments.
{
    "request": "",
    "response": "",
    "eventId": "uniqueId",
    "assessmentApiName": "<your assessment api name>",
    "assessmentName": "<your assessment name>"
}
Spazio dei nomi: FraudProtection.CaseManagement.Events.

Stato delle decisioni di gestione dei casi e etichette effettuate da Gestione dei casi.

{
	"name": "FraudProtection.CaseManagement.Events",
	"version": "1.0",
	"metadata": {
		"tenantId": "<your tenantID>",
		"timestamp": "2020-09-25T03:46:53.3716978Z"
	},
	"assessmentId": "<your assessment uniqueId>",
	"assessmentName": "<your assessment name>",
	"caseId": "uniqueId of the case record",
	"queueId": "uniqueId of the queue the case was routed to",
	"queueName": "name of the queue the case was routed to",
	"eventType": "<your assessment uniqueId>",
	"eventId": "<your assessment transaction uniqueId>",
	"creationDate": "creation datetime",
	"reviewStartDate": "review start datetime",
	"reviewedDate": "reviewed datetime",
	"decision": "decision of the review agent",
	"reason": "decision reason",
	"reasonNote": "decision note",
	"agentId": "uniqueId of the review agent",
	"agentName": "name of the review agent",
	"status": "status of the decision",
	"fraudFlag": "fraud flag (label) of the decision"
}
Spazio dei nomi: FraudProtection.Observations.
{
    "request": "",
    "primaryEventId": "<assessment event id>",
    "observationApiName": "<your observation api name>",
    "observationName": "<your observation name>",
    "observationEventId": "<your observation event id>",
    "assessmentApiName": "<your assessment api name>",
    "assessmentName": "<your assessment name>"
}
Spazio dei nomi: FraudProtection.Labels.
{
    "request": "",
    "labelEventId": "",
    "assessmentApiName": "<your assessment api name>",
    "assessmentName": "<your assessment name>"
}

Eventi di controllo

Usare gli eventi di controllo per tenere traccia delle azioni del portale e sviluppare un log di controllo. Gli eventi di controllo attualmente supportano le operazioni new/edit/delete in regole, elenchi, velocità e chiamate esterne.

Spazio dei nomi: FraudProtection.Audit.
"audit": {
    "entityId": "cde1518f-305e-42e8-8d05-9b955efe3f46",
    "entityName": "Manual Review Rule",
    "entityType": "Rule",
    "operationName": "NewRule",
    "userId": "user@contoso.com"
},
"name": "FraudProtection.Audit",
"version": "1.0",
"metadata": {
    "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
    "timestamp": "2020-06-10T23:43:33.4526859Z"
}

Accesso al log di controllo

Esistono due modi per accedere ai log di controllo. È possibile configurare la traccia eventi oppure richiedere l'invio di un log di controllo generato automaticamente creando un ticket di supporto clienti. Se decidi di non utilizzare la traccia di eventi e di inviare invece un ticket di supporto, il ticket di supporto viene indirizzato al team tecnico di Fraud Protection. Il team estrae i log e te li restituisce. I log di controllo vengono acquisiti e archiviati nella stessa area geografica in cui si effettua il provisioning di un ambiente. I log non possono essere modificati dopo l'acquisizione e il periodo di conservazione dei log è di 365 giorni. I log più vecchi di 365 giorni vengono eliminati automaticamente.

Esistono cinque eventi generati che possono essere monitorati utilizzando i log di controllo. Tali eventi sono:

  • Un utente viene assegnato per la prima volta a un ruolo di Fraud Protection.
  • Il ruolo di un utente esistente viene aggiornato.
  • Tutte le assegnazioni di ruolo vengono rimosse per un utente specifico.
  • Un utente accetta il consenso FCRA.
  • Un utente aggiorna le impostazioni dell'ottimizzatore di accettazione delle transazioni. Qualsiasi modifica a queste impostazioni è considerata un aggiornamento.

Eventi dei log attività

Usare gli eventi dei log attività per ottenere record dettagliati di chi ha fatto cosa, quando e dove per alcune azioni in Protezione frodi. Ad esempio, è possibile vedere chi ha apportato l'ultima modifica a una regola. I risultati corrispondono ai risultati della ricerca dei log attività.

Spazio dei nomi: FraudProtection.ActivityLog.
{
"eventId": "0c6e1948-75a9-4513-bb4c-4828c9a8ab05",
"operationType": "Create",
"resourceType": "Decision rule",
"resourceId": "b1053216-2fc4-4ef6-94e8-c4da706d87fa",
"resourceName": "Rule Test",
"userId": "fb88ba00-58e0-421c-8742-10ae04dddb86"
}

Il valore "userID" è seguito da campi di tipo di risorsa specifici e dell'operazione.

Eventi di monitoraggio

È possibile usare gli eventi di monitoraggio per la creazione di report e avvisi personalizzati sull'API e le prestazioni delle chiamate esterne con i report disponibili nel portale di Protezione dalle frodi. Ognuno degli eventi seguenti fornisce informazioni dettagliate sulla latenza e sugli errori per ogni servizio.

Spazio dei nomi: FraudProtection.Monitoring.RequestLatencyMsDistribution.

Per le chiamate API, i conteggi delle richieste e le distribuzioni della latenza vengono inviati ogni 20 secondi in questo evento. Questi eventi includono i campi startTime e endTime che determinano il periodo di aggregazione e nomi e valori di dimensione che possono essere utilizzati per filtrare le metriche come richiesto.


{
"Index": [
             1
],
"BucketSamples": [
             2
],
"NumberOfBuckets": 10000,
"BucketSize": 10,
"MinimumValue": 0,
"CounterName": "RequestLatencyMsDistribution",
"DimensionNames": [
   "EnvironmentId",
   "TenantId",
   "ApiName",
   "ExperienceType",
   "IsTestRequest",
   "RequestType",
   "HttpRequestStatus",
   "HttpStatusCode"
],
"DimensionValues": [
   "63f55d63-9653-4ed9-be77-294da21202ae",
   "63f55d63-9653-4ed9-be77-294da21202ae",
   "v1.0/Observe/Create",
   "N/A",
   "False",
   "REALTIME",
   "Success",
   "200"
],
"StartTime": "2020-06-22T23:43:20",
"EndTime": "2020-06-22T23:43:40",
"Samples": 2,
"Min": 3,
"Max": 7,
"name": "FraudProtection.Monitoring.RequestLatencyMsDistribution",
"version": "1.0",
"metadata": {
   "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
   "timestamp": "2020-06-22T23:43:20.0947542Z"
}
}

Il campo Esempi rappresenta il conteggio delle richieste per API.

Spazio dei nomi: FraudProtection.Monitoring.ExternalCalls

Questo evento include la latenza (in ms) e il codice di stato HTTP di ogni chiamata esterna <link to external call doc> che viene attivata da una regola. Vengono inoltre fornite dimensioni aggiuntive per la regola e la clausola che attivano la chiamata.

Per le chiamate esterne, la latenza (in ms) e le metriche del codice di stato http vengono inviate con ogni richiesta in questo evento. Vengono inoltre fornite dimensioni aggiuntive per la regola che attiva la chiamata per migliorare l'esperienza di risoluzione dei problemi se si è interessati a esaminare le prestazioni di una singola chiamata.


{
    "name": "FraudProtection.Monitoring.ExternalCalls",
    "version": "1.0",
    "metadata": {
        "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
        "timestamp": "2020-06-10T23:43:33.4526859Z"
    },
    "externalCallName": "SampleExternalCall",
    "requestStatus": "Success",
    "httpStatusCode": 200,
    "correlationId": "50BFA0D6-1E3D-4700-A2B3-1DD01162C08A",
    "latencyMs": 123,
    "assessment": "PURCHASE",
    "rule": "SampleRule",
    "clause": "SampleClause"
}

Spazio dei nomi: FraudProtection.Errors.ExternalCalls

Questo evento registra gli errori per ogni chiamata esterna non riuscita e può essere utile per eseguire il debug di eventuali problemi che si potrebbero riscontrare con le prestazioni delle chiamate esterne. Vengono registrate la richiesta e la risposta complete per la chiamata, nonché la latenza e la regola e la clausola da cui è stata attivata la chiamata.


{
    "name": "FraudProtection.Errors.ExternalCalls",
    "version": "1.0",
    "metadata": {
        "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
        "timestamp": "2020-06-10T23:43:33.4526859Z"
    },
    "externalCallName": "SampleExternalCall",
    "requestStatus": "ResponseFailure",
    "httpStatusCode": 404,
    "correlationId": "50BFA0D6-1E3D-4700-A2B3-1DD01162C08A",
    "latencyMs": 123,
    "assessment": "PURCHASE",
    "rule": "SampleRule",
    "clause": "SampleClause",
    "response": "{}",
    "requestUri": "https://samplewebsite/sample",
    "requestBody": "{}"
}