Freigeben über


Ereignisnachverfolgung

In diesem Artikel wird beschrieben, wie Sie die Ereignisablaufverfolgung in Microsoft Dynamics 365 Fraud Protection verwenden.

Mit der Funktion zur Ereignisnachverfolgung in Microsoft Dynamics 365 Fraud Protection können Händler eine Echtzeit-Telemetrieplattform einrichten, die außerhalb des Fraud Protection Portals erweiterbar und betriebsbereit ist. Jedes Ereignis wird geplant oder durch eine Aktion auf Benutzer- oder Systemebene ausgelöst. Sie können Ereignisse abonnieren, an denen Sie interessiert sind, und die Ereignisnutzlasten an Azure Event Hubs oder Azure Blob Storage weiterleiten. Sie können auch Ereignisse aus mehreren Ereignisablaufverfolgungssitzungen gleichzeitig anfordern. Das System liefert dann die Ereignisse in chronologischer Reihenfolge.

Ereignisse können aggregiert und verwendet werden, um Metriken zu definieren, mit denen Sie Ihre Dienstkosten und die Nutzung überwachen und verwalten können. Ereignisse können auch verwendet werden, um benutzerdefinierte Berichte zu entwickeln, die Transaktionsdaten verwenden, oder um Systemprotokolle für Aktionen zu Standard, die im Betrugsschutzportal ausgeführt werden (z. B. "Benutzer A bearbeitete Liste B am Datum C"). Wenn Sie die Azure Event Hubs-Connectors verwenden, die in Microsoft Power Automate und Azure Logic Apps verfügbar sind, können Sie auch die Daten verwenden, die Sie an Azure Event Hubs senden, um Warnungen oder hochgradig angepasste Workflows zu ermöglichen. Ebenso können Sie mit Azure Blob Storage ein neues Abonnement erstellen, das alle historischen Daten zur weiteren Analyse in Ihr Kaltspeicherkonto kopiert.

Wenn Ihre Betrugsschutzinstanz über mehrere Umgebungen verfügt, können Sie die Ereignisablaufverfolgung für jede Umgebung mithilfe des Umgebungswechsels finden. Wenn die Umgebung über untergeordnete Umgebungen verfügt, enthält die Ereignisablaufverfolgung, die für die übergeordnete Umgebung abonniert ist, automatisch dieselben Ereignisse für alle untergeordneten Umgebungen.

Hinweis

Ereignisverfolgungskunden müssen über ein Abonnement für zusätzliche Azure-Dienste wie Event Hub oder Blob Storage verfügen. Wenden Sie sich an Ihre Microsoft-Kontoleitung, um Details zu erhalten. Wenn Sie über die Anmeldeinformationen eines globalen Azure-Administrierenden verfügen, melden Sie sich beim Azure-Portal an, um verfügbare Abonnements zu ermitteln.

Erste Schritte

Führen Sie die folgenden Schritte aus, um mit der Verwendung der Ereignisablaufverfolgungsfunktion zu beginnen.

  1. Im Fraud Protection-Portal wählen Sie Daten und dann Ereignisverfolgung.

  2. Wählen Sie Neues Abonnement.

  3. Geben Sie einen Anzeigenamen für das Abonnement ein.

  4. Wählen Sie einen Speicherort aus:

    1. Für Event Hubs: Geben Sie die Verbindungszeichenfolge für die Event Hubs-Instanz in Azure Key Vault ein. Der Azure Key Vault sollte sich im selben Mandanten befinden wie Ihr Fraud Protection-Abonnement. Gewähren Sie Geheimen Zugriff abrufen auf die Fraud Protection-App für den Azure Key Vault. Geben Sie die URL des geheimen Bezeichners aus Ihrem Azure Key Vault im Fraud Protection-Portal ein. Weitere Informationen finden Sie unter Rufen Sie eine Event Hubs-Verbindungszeichenfolge ab.
    2. Für Blob Storage: Geben Sie die Verbindungszeichenfolge für das Azure Blob Storage-Konto in Azure Key Vault ein. Der Azure Key Vault sollte sich im selben Mandanten befinden wie Ihr Fraud Protection-Abonnement. Gewähren Sie Geheimen Zugriff abrufen auf die Fraud Protection-App für den Azure Key Vault. Geben Sie im Portal "Betrugsschutz" die URL des geheimen Bezeichners aus Ihrem Azure Key Vault und einen Containernamen ein, in dem sich Ihre Ereignisablaufverfolgungsdaten befinden. Weitere Informationen zu Kontostrukturen finden Sie unter Anzeigen von Kontozugriffsschlüsseln.
  5. Wählen Sie Verbindung testen aus. Nachdem die Verbindung erfolgreich getestet wurde, werden kontobezogene Informationen angezeigt, die aus dem Verbindungszeichenfolge im Azure Key Vault extrahiert wurden. Für Azure Event Hubs umfassen diese schreibgeschützten Informationen den Event Hub-Namespace und den Event Hub-Namen. Für Azure Blob Storage wird der Name des Speicherkontos angezeigt. Stellen Sie sicher, dass diese Informationen mit dem Speicherkonto übereinstimmen, das Sie verwenden möchten. Ohne einen erfolgreichen Verbindungstest ist die Schaltfläche "Erstellen " nicht aktiviert.

  6. Wählen Sie ein Ereignis aus und überprüfen Sie die Beschreibung und das Beispiel der JSON-Nutzlast. Speichern Sie anschließend das Abonnement, indem Sie Erstellen auswählen. Ereignisse werden ab diesem Zeitpunkt sofort an Ihre Event Hubs-Instanz gesendet. Wenn Sie Blob Storage ausgewählt haben, beginnt der Kopiervorgang zum Schreiben aller Verlaufsdaten, und alle Ereignisse werden alle 30 Minuten in Ihrem Container veröffentlicht.

  7. Gehen Sie zurück zum Fraud Protection Portal, um die Anzahl für die Metrik Ereignisse/Stunden anzuzeigen und stellen Sie sicher, dass Daten an Event Hubs und Blob Storage gesendet werden. Die Metriken Ereignisse/Std. und Fehler/Std. zeigen einen Durchschnitt der letzten 24 Stunden.

    Tipp

    Für eine zusätzliche Überwachung für Event Hubs gehen Sie zum Azure-Portal und richten Sie Metriken ein. Weitere Informationen finden Sie unter Azure Event Hubs-Metriken in Azure Monitor.

  8. Optional: Richten Sie Ihre eigene Ingress-Pipeline von Event Hubs auf Power BI ein. Informationen zum Starten der Entwicklung benutzerdefinierter Berichte finden Sie unter Arbeiten mit Power BI.

  9. Optional: Stellen Sie eine Verbindung zu Event Hubs über Power Automate her, um benutzerdefinierte Workflows zu definieren. Weitere Informationen finden Sie unter Arbeiten Sie mit Logic Apps oder Power Automate.

Ereignisschemata

Derzeit sind fünf unterstützte Klassifizierungen von Ereignissen in der Ereignisverfolgung verfügbar: Transaktionsereignisse, Ablaufverfolgungsereignisse, Beurteilungsereignisse, Prüfungsereignisse und Überwachung von Ereignissen.

Transaktionsereignisse

Verwenden Sie Transaktionsereignisse, um benutzerdefinierte Bewertungen zu erstellen Karte s und automatisierte Workflows mithilfe der Daten, die in Ihren Bewertungs- und Nichtbewertungs-API-Aufrufen zur Verfügung stehen. Mithilfe von Blob Storage können Sie auch die Daten aus historischen API-Aufrufen kopieren, um ein Data Warehouse für Ihr Unternehmen zu erstellen. Die Nutzlast für dieses Ereignis enthält die gesamte Anforderung und Antwort für jeden API-Aufruf.

Namespace: FraudProtection.Observe.<API Name> or 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": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "timestamp": "2020-09-25T03:46:53.3716978Z"
    }
}

Verfolgen von Ereignissen

Sie verwenden Ablaufverfolgungsereignisse, um die Leistung für alle Regeln zu melden und zu überwachen, die den Rückgabetyp „Trace()“ enthalten. Die Nutzdaten für dieses Ereignis enthalten standardisierte Felder wie den Namen der Regel, die das Ereignis ausgelöst hat, den Ereignistyp, der mit dem Bewertungstyp für diese Regel korreliert, die Korrelations-ID usw. Sie können dann benutzerdefinierte Attribute mithilfe von Schlüssel:Wert-Paaren im Rückgabetyp „Trace()“ senden, um Variablen aus den Beispielnutzdaten, der Risikobewertung und benutzerdefinierten Feldern einzuschließen. Siehe Beobachtungsfunktionen in der Anleitung für Regelsprache, wenn Sie weitere Informationen zur Verwendung von Trace() in Ihren Regeln verwenden möchten, um diese Ereignisse auszulösen.

Namespace: FraudProtection.Trace.Rule.
{
    "name": "FraudProtection.Trace.Rule",
    "version": "1.0",
    "metadata":
{
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "timestamp": "2020-06-10T23:43:33.4526859Z" 
}
    "ruleName": "Risk Score Policy",
    "eventType": "Purchase",
    "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
    "eventId": "e75e703c-1e54-4d41-af4b-a4c1b8866f02",
    "attributes":
{
      "example": "ManualReview” //key:value pairs defined in the Trace() return type
} 

    }

Beurteilungsereignisse

Bewertungs- und zugehörige Etikett- und Beobachtungsereignisse können auf Event Hubs und Blobs zurückgeführt werden.

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

Fallverwaltungsentscheidungsstatus und Bezeichnungen aus Case Management.

{
	"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"
}
Namespace: 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>"
}
Namespace: FraudProtection.Labels.
{
    "request": "",
    "labelEventId": "",
    "assessmentApiName": "<your assessment api name>",
    "assessmentName": "<your assessment name>"
}

Überwachungsereignisse

Verwenden Sie Überwachungsereignisse, um Portalaktionen nachzuverfolgen und ein Überwachungsprotokoll zu entwickeln. Überwachungsereignisse unterstützen derzeit Vorgänge zum Neuerstellen, Bearbeiten und Löschen in Regeln, Listen, Geschwindigkeiten und externen Aufrufen.

Namespace: FraudProtection.Audit.
"audit": {
    "entityId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "entityName": "Manual Review Rule",
    "entityType": "Rule",
    "operationName": "NewRule",
    "userId": "user@contoso.com"
},
"name": "FraudProtection.Audit",
"version": "1.0",
"metadata": {
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "timestamp": "2020-06-10T23:43:33.4526859Z"
}

Überwachungsprotokollzugriff

Es gibt zwei Möglichkeiten, auf Überwachungsprotokolle zuzugreifen. Sie können die Ereignisablaufverfolgung einrichten oder ein automatisch generiertes Überwachungsprotokoll anfordern, indem Sie ein Kundensupportticket erstellen. Wenn Sie sich entscheiden, die Ereignisverfolgung nicht zu verwenden und stattdessen ein Supportticket einreichen, wird dieses an das Fraud Protection-Engineering-Team weitergeleitet. Das Team extrahiert die Protokolle und stellt sie Ihnen wieder zur Verfügung. Überwachungsprotokolle werden erfasst und in demselben geografischen Bereich gespeichert, in dem Sie eine Umgebung bereitstellen. Die Protokolle können nicht bearbeitet werden, nachdem sie erfasst wurden, und der Aufbewahrungszeitraum für Protokolle beträgt 365 Tage. Protokolle, die älter als 365 Tage sind, werden automatisch gelöscht.

Es werden fünf Ereignisse generiert, die mithilfe der Überwachungsprotokolle nachverfolgt werden können. Diese Ereignisse sind:

  • Einem Benutzer wird zum ersten Mal eine Fraud Protection-Rolle zugewiesen.
  • Die Rolle eines vorhandenen Benutzers wird aktualisiert.
  • Für einen bestimmten Benutzer werden alle Rollenzuweisungen entfernt.
  • Ein Benutzer akzeptiert die FCRA-Einwilligung.
  • Ein Benutzer aktualisiert die Einstellungen des Transaktionsakzeptanzboosters (TAB). Jede Änderung dieser Einstellungen gilt als Update.

Aktivitätsprotokollereignisse

Verwenden Sie Aktivitätsprotokolle, um detaillierte Aufzeichnungen darüber zu erhalten, wer was getan hat, wann und wo für einige Aktionen im Betrugsschutz. Beispielsweise können Sie sehen, wer die letzte Änderung an einer Regel vorgenommen hat. Die Ergebnisse stimmen mit den Suchergebnissen der Aktivitätsprotokolle überein.

Namespace: FraudProtection.ActivityLog.
{
"eventId": "0c6e1948-75a9-4513-bb4c-4828c9a8ab05",
"operationType": "Create",
"resourceType": "Decision rule",
"resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"resourceName": "Rule Test",
"userId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff"
}

Auf die "userID" folgen Vorgangs- und bestimmte Ressourcentypfelder.

Ereignisse überwachen

Sie können Überwachungsereignisse für benutzerdefinierte Berichte und Warnungen in Ihrer API und externe Aufrufe mit der im Betrugsschutzportal verfügbaren Berichterstellung verwenden. Jedes der folgenden Ereignisse bietet Einblicke in die Latenz und Fehler für jeden Dienst.

Namespace: FraudProtection.Monitoring.RequestLatencyMsDistribution.

Für API-Aufrufe werden in diesem Fall Anforderungszählungen und Wartezeitverteilung (in ms) werden alle 20 Sekunden gesendet. Diese Ereignisse umfassen die Felder Startzeit und Endzeit, die den Aggregationszeitraum bestimmen, sowie Dimensionsnamen und -werte, mit denen die Metriken nach Bedarf gefiltert werden können.


{
"Index": [
             1
],
"BucketSamples": [
             2
],
"NumberOfBuckets": 10000,
"BucketSize": 10,
"MinimumValue": 0,
"CounterName": "RequestLatencyMsDistribution",
"DimensionNames": [
   "EnvironmentId",
   "TenantId",
   "ApiName",
   "ExperienceType",
   "IsTestRequest",
   "RequestType",
   "HttpRequestStatus",
   "HttpStatusCode"
],
"DimensionValues": [
   "aaaabbbb-0000-cccc-1111-dddd2222eeee",
   "aaaabbbb-0000-cccc-1111-dddd2222eeee",
   "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": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
   "timestamp": "2020-06-22T23:43:20.0947542Z"
}
}

Das Feld Proben gibt die Anzahl der Anforderungen pro API an.

Namespace: FraudProtection.Monitoring.ExternalCalls

Dieses Ereignis enthält die Wartezeit (in ms) und den HTTP-Statuscode jedes externen Aufrufs <link to external call doc>, der von einer Regel ausgelöst wird. Zusätzliche Dimensionen für die Regel und Klausel, die den Aufruf auslösen, werden ebenfalls bereitgestellt.

Bei externen Aufrufen werden in diesem Fall bei jeder Anforderung Metriken für die Wartezeit (in ms) und den http-Statuscode gesendet. Weitere Dimensionen für die Regel, die den Anruf auslöst, werden ebenfalls bereitgestellt, um die Problembehandlung zu verbessern, wenn Sie die Leistung eines einzelnen Anrufs untersuchen möchten.


{
    "name": "FraudProtection.Monitoring.ExternalCalls",
    "version": "1.0",
    "metadata": {
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "timestamp": "2020-06-10T23:43:33.4526859Z"
    },
    "externalCallName": "SampleExternalCall",
    "requestStatus": "Success",
    "httpStatusCode": 200,
    "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
    "latencyMs": 123,
    "assessment": "PURCHASE",
    "rule": "SampleRule",
    "clause": "SampleClause"
}

Namespace: FraudProtection.Errors.ExternalCalls

Dieses Ereignis protokolliert Fehler für jeden fehlgeschlagenen externen Aufruf und kann beim Debuggen von Problemen hilfreich sein, die möglicherweise bei der Leistung Ihres externen Aufrufs auftreten. Die vollständige Anforderung und Antwort für den Anruf werden protokolliert, sowie die Latenz und die Regel und Klausel, von der der Aufruf ausgelöst wurde.


{
    "name": "FraudProtection.Errors.ExternalCalls",
    "version": "1.0",
    "metadata": {
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "timestamp": "2020-06-10T23:43:33.4526859Z"
    },
    "externalCallName": "SampleExternalCall",
    "requestStatus": "ResponseFailure",
    "httpStatusCode": 404,
    "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
    "latencyMs": 123,
    "assessment": "PURCHASE",
    "rule": "SampleRule",
    "clause": "SampleClause",
    "response": "{}",
    "requestUri": "https://samplewebsite/sample",
    "requestBody": "{}"
}