Konfigurere beskyttelse af kundekonti
Microsoft Dynamics 365 Fraud Protection omfatter kontobeskyttelsesfunktioner, der kan hjælpe dig med at vurdere, om der forekommer mistænkelig aktivitet i din virksomheds økosystem. Disse funktioner omfatter egenskaber til risikovurdering, som du kan bruge til at blokere eller udfordre svigagtige forsøg på at oprette konti eller bringe eksisterende konti i fare. Her er nogle eksempler:
- API'er til risikovurdering i realtid
- En regel og liste, som du kan bruge til at optimere risikostrategien, så den opfylder dine forretningsbehov
- Overvågningsdashboards, der kan bruges til at overvåge effektiviteten af beskyttelse mod svindel og tendenser i dit økosystem
Kontobeskyttelse dækker tre typer hændelser af kontolivscyklusser: kontooprettelse, kontologon og brugerdefineret vurdering. Der er flere forsvarslinjer for hver hændelsestype:
- Effektiv robotregistrering: Når Fraud Protection registrerer et automatisk forsøg på at bruge en liste over kompromitterede legitimationsoplysninger eller direkte at oprette eller redigere konti, er dens første forsvar dynamisk og effektiv robotregistrering. Denne avancerede adaptive kunstige intelligens (AI) genererer hurtigt en score, der er knyttet til sandsynligheden for, at en robot igangsætter hændelsen.
- Styrket vurdering i realtid: Som næste forsvarslinje bruger Fraud Protection AI-modeller til at generere en score for risikovurderingen. Du kan bruge denne score sammen med regler til at godkende, udfordre, afvise eller gennemgå logon- og tilmeldingsforsøg ud fra forretningsbehov.
Mål for dette dokument
Dette dokument fører dig gennem følgende aktiviteter:
Trin 3: Forstå hændelser med kontobeskyttelse
Når du har fuldført disse aktiviteter, vil du kunne bruge kontobeskyttelse til at blokere eller udfordre mistænkelige forsøg på at kompromittere eksisterende konti.
Forudsætninger
Før du påbegynder opgaverne i dette dokument, skal du udføre følgende opgaver:
- Konfigurer Fraud Protection i en Microsoft Entra-lejer som beskrevet i Konfigurer en prøveversion af Fraud Protection.
- Konfigurere enhedsfingeraftryk.
Trin 1: Implementere API'er til kontobeskyttelse
Hvis du vil drage nytte af samtlige funktioner i Fraud Protection, skal du sende dine transaktionsdata til API'erne i realtid.
- I evalueringsoplevelsen kan du derefter analysere resultaterne af at bruge Fraud Protection.
- I beskyttelsesoplevelsen kan du også imødekomme beslutninger baseret på de regler, du har konfigureret.
Afhængigt af hvordan du vælger at bruge Fraud Protection, kan du anvende forskellige API'er til kontobeskyttelse. Disse API'er omfatter: AccountCreation, AccountLogin, AccountCreationStatus, AccountLoginStatus, AccountUpdate, Label og Brugerdefinerede hændelser.
Du kan finde mere information om understøttede hændelser under Dynamics 365 Fraud Protection-API.
Trin 2: Opret Microsoft Entra-apps
Vigtigt
Hvis du vil fuldføre dette trin, skal du være programadministrator, cloudprogramadministrator eller global administrator i din Microsoft Entra-lejer.
Hvis du vil hente de tokens, der kræves for at kalde API'erne, skal du bruge Fraud Protection til at konfigurere Microsoft Entra-programmer.
Konfigurer en Microsoft Entra-app
I Fraud Protection-portalen skal du vælge Data i venstre navigationspanel og derefter vælge API Management.
På siden API Management skal du vælge Konfiguration.
Vælg Oprettelse af programmer, og udfyld felterne for at oprette din app. Følgende felter er påkrævet:
Visningsnavn for program - Giv dit program et beskrivende navn. Beskrivelsen må højst være på 93 tegn.
Miljø – Vælg produktionens slutpunktet.
Godkendelsesmetode - Vælg, om du vil bruge et certifikat eller en hemmelighed (adgangskode) til godkendelse.
- Vælg Certifikat, og vælg derefter Vælg fil for at uploade den offentlige nøgle. Når du henter tokens, skal du bruge den tilsvarende private nøgle.
- Vælg Hemmelighed for automatisk at oprette en adgangskode, når programmet er blevet oprettet.
Vælg Opret program, når du er færdig med at udfylde felterne.
Bekræftelsessiden opsummerer din app's navn, ID og certifikataftryk eller hemmelighed, afhængigt af den godkendelsesmetode, du har valgt.
Vigtig
Gem oplysningerne om certifikataftrykket eller hemmeligheden til senere brug. Disse oplysninger vises kun én gang.
Oprette flere apps
Du kan oprette så mange apps, der er nødvendige for at køre API-kald i hvert af dine produktionsmiljøer.
- Vælg Opret et andet program under fanen Konfiguration.
- Udfyld felterne for at oprette din app, og vælg derefter Opret program.
Kald til realtids-API'er for Fraud Protection
Brug oplysningerne i dette afsnit til at integrere dine systemer ved hjælp af Fraud Protection.
Krævede ID'er og oplysninger
- API-slutpunkt – URI'en til dit miljø vises i feltet Kontooplysninger på dashboardet for Fraud Protection.
- Mappe-id (lejer-id) - Mappe-id er en Globally Unique Identifier (GUID) for en lejers domæne i Azure. Den vises i Azure-portalen og i feltet Kontooplysninger på Fraud Protection-dashboardet.
- Program-id (klient) – Program-id'et identificerer den Microsoft Entra-app, du oprettede for at kalde API'er. Du kan finde dette id på den bekræftelsesside, der vises, når du vælger Opret program på siden API Management. Du kan også finde det senere under App registreringer på Azure-portalen. Der vil være ét id for hver af de apps, du opretter.
- Certifikataftryk eller hemmelighed – Du kan finde certifikataftrykket eller hemmeligheden på den bekræftelsesside, der vises, når du vælger Opret program på siden API Management.
- Forekomst-id – Forekomst-id'et er det globale entydige id (GUID) for dit miljø i Fraud Protection. Det vises i feltet Integration på Fraud Protection-dashboardet.
Opret et adgangstoken
Du skal oprette dette token og angive hvert API-kald for det. Bemærk, at adgangstokens har begrænset levetid. Det anbefales, at du cacher og genbruger hvert adgangstoken, indtil det er tid til at oprette et nyt. Følgende C#-kodeeksempler indeholder eksempler på, hvordan du kan hente et token med dit certifikat eller din hemmelighed. Udskift pladsholderne med dine egne oplysninger.
Aftryk af CERTIFIKAT
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;
}
Hemmelighed
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;
}
Svar
Bag kulisserne opretter den foregående kode en HTTP-anmodning og modtager et svar, der ligner det følgende eksempel.
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>"
}
Yderligere oplysninger om adgangstoken finder du i følgende Azure-dokumentation:
Kald til API'erne
- Send følgende nødvendige påkrævede HTTP-overskrifter for hver anmodning.
Navn på overskrift | Værdi for overskrift |
---|---|
Godkendelse | Brug følgende format til denne overskrift: Bærer accesstoken I dette format er adgangstoken det token, der returneres af Microsoft Entra ID. |
x-ms-korrelation-id | Send en ny GUID-værdi for hvert sæt API-kald, der er oprettet sammen. |
Indholdstype | program/json |
x-ms-dfpenvid | Send GUID-værdien af dit forekomst-id. |
Generer hændelsesbaserede nyttedata. Udfyld hændelsesdataene med de relevante oplysninger fra systemet.
Du kan finde mere information om understøttede hændelser under Dynamics 365 Fraud Protection-API.
Kombiner overskriften (som indeholder adgangstoken) og nyttedataene, og send dem derefter til dit Fraud Protection-slutpunkt. (API-slutpunktet er URI'en til dit miljø, der vises i feltet Kontooplysninger på dashboardet for Fraud Protection).
Yderligere oplysninger om API'er finder du i Dynamics 365 Fraud Protection-API.
Trin 3: Forstå hændelser med kontobeskyttelse
Opret konto
Du kan bruge hændelsen Opret konto til at sende oplysninger og sammenhæng om et indgående forsøg på at oprette en ny konto. Svaret indeholder en beslutning for API til kontooprettelse.
URI: <API Endpoint>/v1.0/action/account/create/<signUpId>
Værdien af signUpId skal være entydig for hver anmodning. Den skal svare til værdien i metadatasektionen i følgende eksempel.
Vigtig
Værdien af deviceContextId skal svare til værdien af session_id i indstillingerne for enhedsfingeraftryk.
Eksempel på nyttedata
{
"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"
}
Konto-logon
Du kan bruge hændelsen Konto-logon til at sende oplysninger og sammenhæng om et indgående forsøg på at oprette ny konto-logon. Svaret indeholder en beslutning for API til konto-logon.
URI: <API Endpoint>/v1.0/action/account/login/<userId>
Værdien af userId skal svare til værdien i nyttedataene. Hver bruger skal have en entydig værdi. Her kan du bruge en GUID-værdi.
Vigtig
Værdien af deviceContextId skal svare til værdien af session_id i indstillingerne for enhedsfingeraftryk.
Eksempel på nyttedata
{
"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"
}
Status for kontooprettelse
Du kan bruge hændelsen Status for kontooprettelse til at sende oplysninger og sammenhæng om et indgående forsøg på at oprette en ny kontostatus. Svaret indeholder en beslutning for API til status for kontooprettelse.
URI: <API Endpoint>/v1.0/observe/account/create/status/<signUpId>
Værdien af userId skal svare til værdien i nyttedataene. Hver bruger skal have en entydig værdi. Her kan du bruge en GUID-værdi.
Eksempel på nyttedata
{
"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"
}
Status for konto-logon
Du kan bruge hændelsen Status for konto-logon til at sende oplysninger og sammenhæng om et indgående forsøg på at oprette en ny status for konto-logon. Svaret indeholder en beslutning for API til status for konto-logon.
URI: <API Endpoint>/v1.0/observe/account/login/status/<userId>
Værdien af signUpId skal svare til værdien i nyttedataene. Hver skal have en entydig værdi. Her kan du bruge en GUID-værdi.
Eksempel på nyttedata
{
"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"
}
Etiket
Brug hændelsen Etiket til at sende yderligere oplysninger til Fraud Protection i tillæg til de data, der informerer funktionerne for virtuelle svindelanalytikere og overvågning. API'en Etiket tilvejebringer den yderligere information til modeltræning, der er baseret på et ekstra sæt svindelsignaler. Den sender også oplysninger om transaktioner, konto eller betalingsmiddel samt tilbageførsler.
URI: <API Endpoint>/v1.0/label/account/create/<userId>
Værdien af userId skal svare til værdien i den tilsvarende API for konto-logon.
Eksempel på nyttedata
{
"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
}
Tillykke! Du har gennemført træningen og er klar til at bruge egenskaberne for kontobeskyttelse i Fraud Protection.
Næste trin
Du kan finde oplysninger om, hvordan du får adgang til de andre egenskaber i Fraud Protection, i følgende dokumenter: