Paramétrage de la protection des comptes client
Microsoft Dynamics 365 Fraud Protection inclut des fonctionnalités de protection de compte pour vous aider à évaluer si une activité suspecte se produit dans votre écosystème d’entreprise. Ces fonctionnalités incluent des fonctionnalités d’évaluation des risques que vous pouvez utiliser pour bloquer ou contester les tentatives frauduleuses de création de comptes ou de compromettre des comptes existants. Voici quelques exemples :
- API pour l’évaluation des risques en temps réel
- Une expérience de règles et de listes que vous pouvez utiliser pour optimiser votre stratégie de risque en fonction des besoins de votre entreprise
- Tableaux de bord de surveillance que vous pouvez utiliser pour surveiller l’efficacité et les tendances de la protection contre la fraude dans votre écosystème
La protection des comptes couvre trois types d’événements du cycle de vie des comptes : création de compte, connexion au compte, et évaluation personnalisée. Pour chaque type d’événement, il existe plusieurs lignes de défense :
- Détection efficace des bots : Lorsque Fraud Protection détecte une tentative automatisée d’utiliser une liste d’informations d’identification compromises ou de force brute pour créer ou modifier des comptes, sa première ligne de défense est dynamique et robuste détection de bots. Cette intelligence artificielle adaptative (IA) avancée génère rapidement un score qui correspond à la probabilité qu’un bot déclenche l’événement.
- Évaluation renforcée en temps réel : En tant que prochaine ligne de défense, Fraud Protection utilise des modèles d’IA pour générer un score d’évaluation des risques. Vous pouvez utiliser ce score avec des règles pour approuver, contester, rejeter ou examiner les tentatives de connexion et d’inscription, en fonction des besoins de l’entreprise.
Objectifs de ce document
Ce document vous guide à travers les activités suivantes :
Étape 3 : comprendre les événements de protection de compte
Une fois ces activités terminées, vous pourrez utiliser la protection de compte pour bloquer ou contester les tentatives suspectes de compromettre les comptes existants.
Conditions préalables
Avant de commencer les activités de ce document, vous devez :
- Configurez la protection contre les fraudes dans un locataire Microsoft Entra, comme décrit dans Configurer une version d’évaluation de la protection contre les fraudes.
- Configurer la prise d’empreinte numérique des appareils.
Étape 1 : implémenter les API de protection de compte
Pour tirer parti de l’ensemble complet de fonctionnalités dans Fraud Protection, envoyez vos données de transaction aux API en temps réel.
- Dans l’expérience Évaluation, vous pouvez analyser les résultats de l’utilisation de Fraud Protection.
- Dans l’expérience Protéger, vous pouvez également honorer des décisions selon les règles que vous avez configurées.
Vous pouvez utiliser différentes API de protection de compte, selon la façon dont vous choisissez d’utiliser Fraud Protection. Des exemples de ces API incluent : Création de compte, Connexion au compte, AccountCreationStatus, CompteLoginStatus, AccountUpdate, Label, et Custom Events.
Pour plus d’informations sur l’ensemble des événements pris en charge, consultez API Dynamics 365 Fraud Protection.
Étape 2 : Créer des applications Microsoft Entra
Important
Pour effectuer cette étape, vous devez être administrateur d’application, administrateur d’application cloud ou administrateur général dans votre locataire Microsoft Entra.
Pour acquérir les jetons requis pour appeler les API, utilisez Fraud Protection pour configurer les applications Microsoft Entra.
Configurer une application Microsoft Entra
Dans le portail Fraud Protection, puis dans la navigation gauche, sélectionnez Données, puis Gestion des API.
Dans la page Gestion des API, sélectionnez Configuration.
Sélectionnez Créer une application, puis remplissez les champs pour créer votre application. Les champs suivants sont obligatoires :
Nom complet de l’application : Entrez un nom descriptif pour votre application. La longueur maximale est de 93 caractères.
Environnement : Sélectionnez le point de terminaison de production.
Méthode d’authentification : Sélectionnez si vous souhaitez vous authentifier via certificat ou (protégé par mot de passe) secret.
- Sélectionnez Certificat, puis Choisir le fichier pour charger la clé publique. Vous aurez besoin de la clé privée correspondante au moment d’acquérir des jetons.
- Sélectionnez Secret pour générer automatiquement un mot de passe une fois l’application créée.
Lorsque vous avez terminé de remplir des champs, sélectionnez Créer l’application.
La page de confirmation résume le nom de votre application, l’ID, et l’ou empreinte de certificat ou le secret, selon la méthode d’authentification sélectionnée.
Important
Enregistrez vos informations d’empreinte de certificat ou de secret à titre de référence. Ces informations ne seront affichées qu’une seule fois.
Créer des applications supplémentaires
Vous pouvez créer autant d’applications que nécessaire pour exécuter des appels d’API dans chacun de vos environnements de production.
- Dans l’onglet Paramètres de configuration, sélectionnez Créer une autre application.
- Remplissez les champs pour créer votre application, puis sélectionnez Créer une application.
Appeler les API Fraud Protection en temps réel
Utilisez les informations de cette section pour intégrer vos systèmes à Fraud Protection.
ID et Informations obligatoires
- Point de terminaison API : L’URI de votre environnement apparaît sur la vignette Information sur le compte sur le tableau de bord Fraud Protection.
- ID de répertoire (client) : L’ID d’annuaire varie est l’identificateur global unique (GUID) pour le domaine d’un client dans Azure. Il s’affiche dans le portail Azure et sur la vignette Informations du compte dans le tableau de bord Fraud Protection.
- ID d’application (client) : l’ID d’application identifie l’application Microsoft Entra que vous avez créée pour appeler des API. Vous pouvez trouver cet ID sur la page de confirmation qui apparaît après avoir sélectionné Créer une application sur la page Gestion des API. Vous pouvez également le retrouver plus tard, sous Enregistrements d’application dans le portail Azure. Il existera un ID pour chaque application que vous créez.
- Certificat d’empreinte ou secret : Vous pouvez trouver l’empreinte numérique du certificat ou le secret sur la page de confirmation qui apparaît après avoir sélectionné Créer une application sur la page Gestion des API.
- ID d’instance - L’ID d’instance est l’identifiant global unique (GUID) de votre environnement dans Fraud Protection. Il apparaît dans la vignette Intégration sur le tableau de bord Fraud Protection.
Créer un jeton d’accès
Vous devez générer ce jeton et le fournir avec chaque appel d’API. Notez que les jetons d’accès ont une durée de vie limitée. Il est recommandé de cacher et de réutiliser chaque jeton d’accès jusqu’à ce qu’il soit temps d’obtenir un nouveau. Les exemples de code C# suivants vous montrent comment acquérir un jeton avec votre certificat ou votre secret. Remplacez les espaces réservés par vos propres informations.
Empreinte du CERTIFICAT
public async Task<string> AcquireTokenWithCertificateAsync()
{
var x509Cert = CertificateUtility.GetByThumbprint("<Certificate thumbprint>");
var clientAssertion = new ClientAssertionCertificate("<Client ID>", x509Cert);
var context = new AuthenticationContext("<Authority URL. Typically https://login.microsoftonline.com/[Directory_ID]>");
var authenticationResult = await context.AcquireTokenAsync("<API endpoint>", clientAssertion);
return authenticationResult.AccessToken;
}
Secret
public async Task<string> AcquireTokenWithSecretAsync()
{
var clientAssertion = new ClientCredential("<Client ID>", "<Client secret>");
var context = new AuthenticationContext("<Authority URL. Typically https://login.microsoftonline.com/[Directory_ID]>");
var authenticationResult = await context.AcquireTokenAsync("<API endpoint>", clientAssertion);
return authenticationResult.AccessToken;
}
Réponse
En coulisses, le code précédent génère une demande HTTP et reçoit une réponse qui ressemble à l’exemple suivant.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: <date>
Content-Length: <content length>
{
"token_type":"Bearer",
"expires_in":"3599",
"ext_expires_in":"3599",
"expires_on":"<date timestamp>",
"not_before":"<date timestamp>",
"resource":"https://api.dfp.dynamics.com",
"access_token":"<your access token; e.g.: eyJ0eXA...NFLCQ>"
}
Pour plus d’informations sur les jetons d’accès, consultez la documentation Azure suivante :
- Utiliser l’assertion du client pour obtenir des jetons d’accès à partir de l’ID Microsoft Entra
- Cacher les jetons d’accès
Appeler les API
- Passez les en-têtes HTTP requis suivants sur chaque demande.
Nom d’en-tête | Valeur d’en-tête |
---|---|
Autorisation | Utilisez le format suivant pour cet en-tête : Bearer accesstoken Dans ce format, accesstoken est le jeton retourné par l’ID Microsoft Entra. |
x-ms-correlation-id | Envoyer une nouvelle valeur GUID sur chaque ensemble d’appels d’API qui sont réalisés ensemble. |
Type de contenu | application/json |
x-ms-dfpenvid | Envoyez la valeur GUID de votre ID d’instance. |
Générez une charge utile basée sur événement. Remplissez les données d’événement avec des informations importantes de votre système.
Pour plus d’informations sur l’ensemble des événements pris en charge, consultez API Dynamics 365 Fraud Protection.
Combinez l’en-tête (qui inclut le jeton d’accès) et la charge utile, puis envoyez-les à votre point de terminaison Fraud Protection. (Le point de terminaison d’API est l’URI de votre environnement et apparaît sur la vignette Information sur le compte sur le tableau de bord Fraud Protection.)
Pour plus d’informations sur la sécurisation des API, voir la rubrique API Dynamics 365 Fraud Protection.
Étape 3 : comprendre les événements de protection de compte
Création d’un compte
Utilisez l’événement Création d’un compte pour envoyer des informations et un contexte sur une tentative entrante de création d’un compte. La réponse contient une décision pour l’API de création de compte.
URI : <API Endpoint>/v1.0/action/account/create/<signUpId>
La valeur de signUpId doit être unique par demande. Il doit correspondre à la valeur de la section des métadonnées dans l’exemple qui suit.
Important
La valeur de deviceContextId doit correspondre à la valeur de ID de session dans les paramètres d’empreintes digitales de l’appareil.
Exemple de charge utile
{
"device": {
"deviceContextId": "2cf391cc-62d2-47d4-a9c1-78ec025293da",
"ipAddress": "192.168.8.214",
"provider": "DFPFingerprinting",
"externalDeviceId": "1234567890",
"externalDeviceType": "Tablet"
},
"user": {
"userId": " cf4e1d39-1100-4791-a6cf-98580f3d91cb",
"userType": "Consumer",
"username": "kayla@contoso.com",
"firstName": "Kayla",
"lastName": "Goderich",
"countryRegion": "US",
"zipCode": "44329",
"timeZone": "-08:00",
"language": "en-us",
"membershipId": " CC004567",
"isMembershipIdUsername": false
},
"email": [
{
"emailType": "Primary",
"emailValue": "kayla@contoso.com",
"isEmailValidated": true,
"emailValidatedDate": "2018-11-27T15:12:26.9733817-08:00",
"isEmailUsername": true
}
],
"phone": [
{
"phoneType": "Alternative",
"phoneNumber": "1-4985550190",
"isPhoneNumberValidated": true,
"phoneNumberValidatedDate": "2018-11-27T15:12:26.9739451-08:00",
"isPhoneUsername": false
}
],
"address": [
{
"addressType": "Primary",
"firstName": "Kayla",
"lastName": "Goderich",
"phoneNumber": "1-4985550190",
"street1": "0123 Bechtelar Loop",
"street2": "",
"street3": "",
"city": "Kubtown",
"state": "SC",
"district": "",
"zipCode": "44329",
"countryRegion": "US"
}
],
"paymentInstruments": [
{
"merchantPaymentInstrumentId": "6ac8406f-128a-41ce-a02d-1bbaa23fbe15",
"type": "Credit Card",
"creationDate": "2020-03-24T13:23:32.3247803-07:00",
"updateDate": "2020-03-24T13:23:32.3248203-07:00"
}
],
"ssoAuthenticationProvider": {
"authenticationProvider": "MerchantAuth",
"displayName": "Kayla Goderich"
},
"metadata": {
"signUpId": "f5085b48-0f9d-47f5-85d1-2c95e7842d39",
"customerLocalDate": "2020-02-25T15:12:26.9653975-08:00",
"assessmentType": "Protect",
"trackingId": "d65544f0-f8b4-4249-a5e0-94b32a25548f",
"merchantTimeStamp": "2020-11-27T15:12:26.9721842-08:00"
},
"name": "AP.AccountCreation",
"version": "0.5"
}
Connexion au compte
Utilisez l’événement Connexion au compte pour envoyer des informations et un contexte sur une tentative entrante de Connexion à un compte. La réponse contient une décision pour l’API de connexion au compte.
URI : <API Endpoint>/v1.0/action/account/login/<userId>
La valeur de userId doit correspondre à la valeur de la charge utile. Chaque utilisateur doit avoir une valeur unique. Une valeur GUID peut être utilisée ici.
Important
La valeur de deviceContextId doit correspondre à la valeur de ID de session dans les paramètres d’empreintes digitales de l’appareil.
Exemple de charge utile
{
"device": {
"deviceContextId": "2ef10376-2ba8-4f36-a911-da438e5e5e27",
"ipAddress": "192.168.8.214",
"provider": "DFPFingerprinting",
"externalDeviceId": "1234567890",
"externalDeviceType": "Computer"
},
"user": {
"userId": "cf4e1d39-1100-4791-a6cf-98580f3d91cb",
"userType": "Consumer",
"username": "kayla@contoso.com",
"firstName": "Kayla",
"lastName": "Goderich",
"countryRegion": "US",
"zipCode": "44329",
"timeZone": "-08:00",
"language": "en-us",
"membershipId": "CC004567",
"isMembershipIdUsername": false
},
"recentUpdate": {
"lastPhoneNumberUpdateDate": "2018-11-127T15:22:42.3412611-08:00",
"lastEmailUpdateDate": "2018-11-127T15:22:42.3412611-08:00 ",
"lastAddressUpdateDate": "2018-11-127T15:22:42.3412611-08:00",
"lastPaymentInstrumentUpdateDate": "2018-11-127T15:22:42.3412611-08:00"
},
"ssoAuthenticationProvider": {
"authenticationProvider": "MerchantAuth",
"displayName": "Kayla Goderich"
},
"metadata": {
"LogInId": "a15d4a5d-fadc-49ab-8022-712fec597e22",
"customerLocalDate": "2020-02-25T15:22:42.3397533-08:00",
"assessmentType": "Protect",
"trackingId": "a14ebdca-9447-49b4-951e-26f6ccc4445c",
"merchantTimeStamp": "2020-11-27T15:22:42.3405921-08:00"
},
"name": "AP.AccountLogin",
"version": "0.5"
}
Statut de création d’un compte
Utilisez l’événement Statut de création d’un compte pour envoyer des informations et un contexte sur une tentative entrante de statut de création d’un compte. La réponse contient une décision pour l’API de statut de création de compte.
URI : <API Endpoint>/v1.0/observe/account/create/status/<signUpId>
La valeur de userId doit correspondre à la valeur de la charge utile. Chaque utilisateur doit avoir une valeur unique. Une valeur GUID peut être utilisée ici.
Exemple de charge utile
{
"metadata":{
"signUpId":"a6221a3f-c38c-429e-8fde-3026d8c29ed3",
"userId":"34f47dc4-9781-4033-99fd-185649c4b001",
"trackingId":"697a6bee-2d30-4132-92a6-c137aaf49c0a",
"merchantTimeStamp":"2020-04-03T13:23:32.3226335-07:00"
},
"statusDetails":{
"statusType":"Rejected",
"reasonType":"ChallengeAbandoned",
"challengeType":"Email",
"statusDate":"2020-04-03T13:23:32.3817714-07:00"
},
"name":"AP.AccountCreation.Status",
"version":"0.5"
}
Statut de Connexion au compte
Utilisez l’événement Statut de Connexion au compte pour envoyer des informations et un contexte sur une tentative entrante de statut de Connexion au compte. La réponse contient une décision pour l’API de statut de Connexion au compte.
URI : <API Endpoint>/v1.0/observe/account/login/status/<userId>
La valeur de signUpId doit correspondre à la valeur de la charge utile. Chaque doit avoir une valeur unique. Une valeur GUID peut être utilisée ici.
Exemple de charge utile
{
"metadata":{
"loginId":"dc4ea331-a6e5-4aa0-8eba-16b4d516a07d",
"userId":"34f47dc4-9781-4033-99fd-185649c4b001",
"trackingId":"dcd65c87-d3db-4a42-8ed3-3e59f443b994",
"merchantTimeStamp":"2020-04-03T13:23:32.3759321-07:00"
},
"statusDetails":{
"statusType":"Rejected",
"reasonType":"ChallengeAbandoned",
"challengeType":"Email",
"statusDate":"2020-04-03T13:23:32.3884589-07:00"
},
"name":"AP.AccountLogin.Status",
"version":"0.5"
}
Étiquette
Utilisez l’événement étiquette pour envoyer des informations supplémentaires à Fraud Protection en plus des données qui avertissent l’analyste de fraude virtuelle et des fonctionnalités de surveillance. L’API étiquette fournit les informations supplémentaires pour l’apprentissage du modèle en fonction d’un ensemble supplémentaire de signaux de fraudes. Il envoie également des informations sur les transactions, les détails du compte ou de l’instrument de paiement et les annulations.
URI : <API Endpoint>/v1.0/label/account/create/<userId>
La valeur de userId doit correspondre à la valeur de l’API de connexion au compte correspondante.
Exemple de charge utile
{
"metadata": {
"name": "AP.Label.Metadata",
"userId": "34f47dc4-9781-4033-99fd-185649c4b001",
"merchantTimeStamp": "2020-06-14T21:53:27.8822492-08:00",
"trackingId": "34f47dc4-9781-4033-99fd-185649c4b001"
},
"label": {
"eventTimeStamp": "2020-02-21T21:53:27.8822492-08:00",
"labelObjectType": "Account",
"labelObjectId": "userid",
"labelSource": "ManualReview",
"labelState": "AccountCompromised",
"labelReasonCode": "AccountFraud"
},
"name": "AP.Label",
"version": "0.5"
}
public enum LabelObjectTypeName
{
Purchase,
AccountCreation,
AccountLogin,
AccountUpdate,
CustomFraudEvaluation,
Account,
PaymentInstrument,
Email
}
public enum LabelSourceName
{
CustomerEscalation,
Chargeback,
TC40_SAFE,
ManualReview,
Refund,
OfflineAnalysis,
AccountProtectionReview
}
public enum LabelStateName
{
InquiryAccepted,
Fraud,
Disputed,
Reversed,
Abuse,
ResubmittedRequest,
AccountCompromised,
AccountNotCompromised
}
public enum LabelReasonCodeName
{
ProcessorResponseCode,
BankResponseCode,
FraudRefund,
AccountTakeOver,
PaymentInstrumentFraud,
AccountFraud,
Abuse,
FriendlyFraud,
AccountCredentialsLeaked,
PassedAccountProtectionChecks
}
Félicitations ! Vous avez terminé la formation avec succès et êtes prêt à utiliser les fonctionnalités de protection de comptes de Fraud Protection.
Étapes suivantes
Pour plus d’informations sur l’accès et l’utilisation d’autres fonctionnalités de Fraud Protection, consultez les documents suivants :
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de l’année 2024, nous abandonnerons progressivement le mécanisme de retour d’information GitHub Issues pour le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez :Soumettre et afficher des commentaires pour