Partage via


Suivi d’événements

Cet article explique comment utiliser le suivi des événements dans Microsoft Dynamics 365 Fraud Protection.

La fonctionnalité de suivi des événements dans Microsoft Dynamics 365 Fraud Protection vous permet d’établir une plateforme de télémétrie en temps réel qui est extensible et opérationnelle en dehors du portail. Chaque événement est planifié ou déclenché par une action au niveau utilisateur ou au niveau système. Vous pouvez vous abonner aux événements qui vous intéressent et transférer les charges utiles des événements vers Azure Event Hubs ou le stockage Blob Azure. Vous pouvez également demander des événements à partir de plusieurs sessions de suivi d’événements en même temps. Le système remet ensuite les événements dans l’ordre chronologique.

Les événements peuvent être agrégés et utilisés pour définir des métriques que vous pouvez utiliser pour surveiller et gérer vos coûts de service et votre utilisation. Les événements peuvent également être utilisés pour développer des rapports personnalisés qui utilisent des données transactionnelles ou pour gérer les journaux système des actions effectuées dans le portail De protection contre les fraudes (par exemple, « liste modifiée par l’utilisateur B à la date C »). Lorsque vous utilisez les connecteurs Azure Event Hubs disponibles dans Microsoft Power Automate et Azure Logic Apps, vous pouvez également utiliser les données que vous envoyez à Azure Event Hubs pour les alertes ou les flux de travail hautement personnalisés. De même, avec stockage Blob Azure, vous pouvez créer un abonnement qui copie toutes les données historiques dans votre compte de stockage froid pour une analyse plus approfondie.

Si votre instance Fraud Protection a plusieurs environnements, vous pouvez trouver le suivi des événements pour chaque environnement à l’aide du sélecteur d’environnement. Si l’environnement possède des environnements enfants, le suivi des événements qui est abonné à l’environnement parent inclut automatiquement les mêmes événements pour tous les environnements enfants.

Remarque

Les clients de suivi des événements doivent disposer d’un abonnement à d’autres services Azure tels que Event Hub ou Stockage Blob. Pour plus d’informations, contactez votre responsable de compte Microsoft. Si vous disposez d’informations d’identification d’administrateur général Azure, connectez-vous au portail Azure pour déterminer les abonnements disponibles.

Bien démarrer

Pour commencer à utiliser la fonctionnalité de suivi d’événements, procédez comme suit.

  1. Dans le portail Fraud Protection, sélectionnez Données, puis sélectionnez Suivi d’événements.

  2. Sélectionnez Nouvel abonnement.

  3. Entrez un nom d’affichage d’abonnement.

  4. Sélectionnez un emplacement de stockage :

    1. Pour Event Hubs : saisissez la chaîne de connexion pour l’instance Event Hubs dans Azure Key Vault. Azure Key Vault doit résider dans le même locataire que votre abonnement Fraud Protection. Accordez Obtenir un accès avec clé secrète à l’application Fraud Protection pour Azure Key Vault. Entrez l’URL de l’identifiant de clé secrète de votre Azure Key Vault dans le portail Fraud Protection. Pour plus d’informations, voir Obtenir une chaîne de connexion Event Hubs.
    2. Pour le Stockage Blob : entrez la chaîne de connexion du compte Azure Blob Storage dans Azure Key Vault. Azure Key Vault doit résider dans le même locataire que votre abonnement Fraud Protection. Accordez Obtenir un accès avec clé secrète à l’application Fraud Protection pour Azure Key Vault. Dans le portail Fraud Protection, entrez l’URL de l’identificateur secret de votre coffre de clés Azure et un nom de conteneur où résident vos données de suivi des événements. Pour plus d’informations, voir Afficher des touche d’accès rapide au compte.
  5. Sélectionnez Tester la connexion. Une fois la connexion testée, les informations relatives au compte extraites de l’chaîne de connexion dans Azure Key Vault s’affichent. Pour Azure Event Hubs, ces informations en lecture seule incluent l’espace de noms Event Hub et le nom d’Event Hub. Pour Stockage Blob Azure, le nom du compte Stockage s’affiche. Vérifiez que ces informations correspondent au compte de stockage que vous avez l’intention d’utiliser. Sans test de connexion réussi, le bouton Créer n’est pas activé.

  6. Sélectionnez un événement et passez en revue la description et l’exemple de la charge utile JSON. Enregistrez ensuite l’abonnement en sélectionnant Créer. Les événements sont instantanément envoyés à votre instance Event Hubs à partir de ce moment. Si vous avez sélectionné le Stockage Blob, le processus de copie pour écrire toutes les données historiques commence et tous les événements sont publiés sur votre conteneur toutes les 30 minutes.

  7. Revenez au portail Fraud Protection pour afficher la mesure Événements/Heure et vous assurer que les données sont envoyées à Event Hubs et à Blob Storage. Les métriques Événements/h et Échecs/h montrent une moyenne au cours des dernières 24 heures.

    Conseil

    Pour une surveillance supplémentaire pour Event Hubs, accédez au portail Azure et configurez des mesures. Pour plus d’informations, voir Mesures Azure Event Hubs dans Azure Monitor.

  8. Facultatif : Configurez votre propre pipeline d’entrée à partir de Event Hubs vers Power BI. Pour plus d’informations sur la façon de commencer à développer des rapports personnalisés, voir Utiliser Power BI.

  9. Facultatif : Connectez-vous à Event Hubs à partir de Power Automate pour définir des workflows personnalisés. Pour plus d’informations, consultez Utiliser des applications logiques ou Power Automate.

Schémas d’événements

Cinq classifications d’événements prises en charge sont actuellement disponibles dans le suivi des événements : événements transactionnels, événements de suivi, événements d’évaluation, événements d’audit et événements de surveillance.

Événements transactionnels

Utilisez des événements transactionnels pour créer un score personnalisé carte s et des flux de travail automatisés à l’aide des données disponibles dans vos appels d’API d’évaluation et de non-assessment. À l’aide du stockage d’objets Blob, vous pouvez également copier les données des appels d’API historiques pour créer un entrepôt de données pour votre entreprise. La charge utile de cet événement comprend la demande et la réponse complètes pour chaque appel d’API.

Espace de noms : FraudProtection.Observe.<API Name> ou 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"
    }
}

Événements de trace

Vous utilisez des événements de trace pour signaler et surveiller les performances de toutes les règles qui incluent le type de retour Trace(). La charge utile pour cet événement comprend des champs standardisés, tels que le nom de la règle qui a déclenché l’événement, le type d’événement qui correspond au type d’évaluation de cette règle, l’ID de corrélation, etc. Vous pouvez ensuite envoyer des attributs personnalisés à l’aide de paires clé-valeur dans le type de retour Trace() pour inclure les variables de l’exemple de charge utile, le score de risque et les champs personnalisés. Pour plus d’informations sur l’utilisation de Trace() dans vos règles pour déclencher ces événements, voir Fonctions d’observation dans le Guide du langage des règles.

Espace de noms : 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
} 

    }

Événements d’évaluation

L’évaluation et les événements d’étiquetage et d’observation associés peuvent être tracés jusqu’aux hubs d’événements et aux blobs.

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

Statut de décision de la gestion des cas et étiquettes prises à partir de la gestion des cas.

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

Événements d’audit

Utilisez des événements d’audit pour suivre les actions du portail et développer un journal d’audit. Les événements d’audit prennent actuellement en charge les opérations de création/modification/suppression sur les règles, les listes, les vitesses et les appels externes.

Espace de noms : 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"
}

Accès au journal d’audit

Il existe deux manières d’accéder aux journaux d’audit. Vous pouvez configurer le suivi des événements ou demander un journal d’audit généré automatiquement en créant un ticket de support client. Si vous décidez de ne pas utiliser le suivi des événements et d’envoyer un ticket de support à la place, ce dernier est envoyé à l’équipe d’ingénierie de Fraud Protection. L’équipe extrait les journaux et vous les renvoie. Les journaux d’audit sont capturés et stockés dans la même zone géographique dans laquelle vous approvisionnez un environnement. Les journaux ne peuvent pas être modifiés après leur capture et la période de rétention du journal est de 365 jours. Les journaux de plus de 365 jours sont automatiquement supprimés.

Cinq événements générés peuvent être suivis à l’aide des journaux d’audit. Ces événements sont :

  • Un utilisateur est affecté à un rôle Fraud Protection pour la première fois.
  • Le rôle d’un utilisateur existant est mis à jour.
  • Toutes les attributions de rôle sont supprimées pour un utilisateur spécifique.
  • Un utilisateur accepte le consentement FCRA.
  • Un utilisateur met à jour les paramètres du booster d’acceptation de transaction (TAB). Toute modification de ces paramètres est considérée comme une mise à jour.

Événements des journaux d’activité

Utilisez les événements de journaux d’activité pour obtenir des enregistrements détaillés de qui a fait quoi, quand et où pour certaines actions dans La Protection contre les fraudes. Par exemple, vous pouvez voir qui a apporté la dernière modification à une règle. Les résultats correspondent aux résultats de la recherche des journaux d’activité.

Espace de noms : 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"
}

Le « userID » est suivi d’opérations et de champs de type de ressource spécifiques.

Surveillance des événements

Vous pouvez utiliser les événements de surveillance pour la création de rapports et les alertes personnalisés sur vos API et les performances des appels externes avec les rapports disponibles dans le portail De protection contre les fraudes. Chacun des événements ci-dessous fournit un aperçu de la latence et des erreurs pour chaque service.

Espace de noms : FraudProtection.Monitoring.RequestLatencyMsDistribution.

Pour les appels d’API, les diffusions du nombre de requête et de la latence (en ms) sont envoyés toutes les 20 secondes dans cet événement. Ces événements comprennent les champs Heure de début et Heure de fin qui déterminent la période d’agrégation et les noms et valeurs de dimension qui peuvent être utilisés pour filtrer les mesures selon les besoins.


{
"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"
}
}

Le champ Échantillons représente le nombre de demandes par API.

Espace de noms : FraudProtection.Monitoring.ExternalCalls

Cet événement inclut la latence (en ms) et le code de statut HTTP de chaque appel externe <link to external call doc> qui est déclenché à partir d’une règle. Des dimensions supplémentaires pour la règle et la clause déclenchant l’appel sont également fournies.

Pour les appels externes, les métriques de latence (en ms) et de code de statut http sont envoyées avec chaque requête dans cet événement. Des dimensions supplémentaires pour la règle qui déclenche l’appel sont également fournies pour améliorer l’expérience de résolution des problèmes si vous souhaitez enquêter sur les performances d’un appel individuel.


{
    "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"
}

Espace de noms : FraudProtection.Errors.ExternalCalls

Cet événement enregistre les erreurs pour chaque appel externe ayant échoué ; il peut être utile pour déboguer les problèmes que vous pourriez rencontrer avec les performances de vos appels externes. La requête et la réponse complètes pour l’appel sont journalisées, ainsi que la latence et la règle et la clause à partir de laquelle l’appel a été déclenché.


{
    "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": "{}"
}