Del via


Udføre hastighedskontroller

Frekvensen af hændelser fra en bruger eller enhed (f.eks. et kreditkort) kan angive mistænkelig aktivitet og potentiel svindel. Når f.eks. svindlere forsøger sig med individuelle ordrer, bruger de ofte et enkelt kreditkort til hurtigt at afgive mange ordrer fra en enkelt IP-adresse eller enhed. De kan også bruge mange forskellige kreditkort til hurtigt at afgive mange ordrer. Hastighedskontroller gør det lettere at identificere disse typer hændelsesmønstre. Ved at definere hastigheder kan du se indgående hændelser for disse typer mønstre og bruge regler til at definere grænser for, hvornår du vil behandle mønstrene som mistænkelige.

Hvis din forekomst af Microsoft Dynamics 365 Fraud Protection har flere miljøer, kan du definere den hastighed, der er angivet i et specifikt miljø ved hjælp af miljøskifteren. Du kan kun referere hastighed i de regler, der er defineret i det tilsvarende miljø. Hvis rettigheder oprettes i et overordnet miljø, og reglen er defineret i samme miljø, medtages posteringerne i de underordnede miljøer i objektmiljøet, når reglen på det overordnede niveau køres.

Definere en hastighed

Hastighedssæt består af individuelle hastigheder. Du kan definere hastigheder i Dynamics 365 Fraud Protection ved hjælp af nøgleordene SELECT, FROM, WHEN og GROUPBY i følgende struktur.

SELECT <aggregation method> AS <velocity name>
FROM <event type>
WHEN <condition>
GROUPBY <attribute name>

Bemærk

Matrixer kan ikke bruges til GROUPBY i en hastighedsdefinition.

  • Efter SELECT skal du angive en aggregeringsmetode: Count, DistinctCount eller Sum. Brug derefter AS-nøgleordet til at navngive hastigheden. Dette navn kan derefter bruges som reference til hastigheden i reglerne.

    Her er en forklaring på aggregeringsmetoderne.

    Aggregeringsmetode Betegnelse Eksempel
    Antal Denne metode returnerer det antal gange, en hændelse er indtruffet. SELECT Count() AS numPurchases
    DistinctCount Denne metode returnerer antallet af distinkte værdier for den angivne egenskab. Hvis den angivne egenskab er null eller tom for en indgående hændelse, bidrager hændelsen ikke til aggregeringen. SELECT DistinctCount(@"device.ipAddress") AS distinctIPaddresses
    Sum Denne metode returnerer summen af værdier for den angivne numeriske egenskab. SELECT Sum(@"totalAmount") AS totalSpending
  • Efter FROM skal du angive en vurdering eller observationshændelse for at observere hastigheden. Feltet du vil observere hastighed for, eller gruppere efter, skal være en del af API-opkaldet. Hvis du vil overholde en hastighed på tværs af hændelser, skal du angive flere hændelser på tværs af vurderinger eller observationshændelser.

  • Sætningen WHEN er valgfri. Efter WHEN kan du skrive et boolesk udtryk. Det er kun hændelser, der matcher betingelsen, der tages i betragtning i aggregeringen. Andre hændelser ignoreres. Udtrykket bruges til at filtrere de hændelser, der tages i betragtning for hastighed.

  • After GROUPBY skal du angive en egenskab eller et udtryk. Egenskaben eller udtrykket evalueres derefter for hver hændelse, der behandles. Alle hændelser, der evalueres til den samme værdi i GROUPBY-sætningen, kombineres for at beregne den aggregering, der er angivet i SELECT-sætningen. Hvis udtrykket GROUPBY er null eller tomt for en indgående hændelse, bidrager hændelsen ikke til aggregeringen.

Tip!

Et udtryk, der kan bruges i en regel, kan også bruges i en hastighed. Disse udtryk omfatter lister og eksterne kald. Du kan få en komplet liste over tilgængelige funktioner i vejledningen til sprogreferencer.

Bemærk!

Den tidsramme, som du vil observere hastigheden i, er ikke angivet i selve definitionen af hastigheden. Den angives i stedet, når du refererer til hastigheden i en regel.

Eksempler på hastigheder

Du kan bruge følgende eksempler til at oprette dine egne hastigheder.

Det pengebeløb, som hver bruger har brugt

SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase
GROUPBY @"user.userId"

Det antal gange, hver IP-adresse er blevet brugt til at oprette en ny konto

SELECT Count() AS NewAccounts_perIP
FROM AccountCreation
GROUPBY @"device.ipAddress"

Antallet af entydige brugere, der har logget på, for hver enhed

SELECT DistinctCount(@"user.userId") AS uniqueUserLogins_perDevice
FROM AccountLogin
GROUPBY @"deviceAttributes.deviceId"

Antallet af forsøg på at logge på, der blev afvist, for hver bruger i Fraud Protection, eller som fik en score for høj risiko

SELECT Count() AS loginRejections_perUser
FROM AccountLogin
WHEN @"ruleEvaluation.decision" == "Reject" or @"riskScore" > 900
GROUPBY @"user.userId"

For hver bruger er det antal indkøb, der er foretaget uden for USA, og som også indeholdt et produkt på en liste over høj risiko

SELECT Count() AS intlHighRiskTxns_perUser
FROM Purchase
WHEN @"user.country" != "US" and ContainsKey("Risky Products", "Product ID", @"ProductList.productId")
GROUPBY @"user.userId

Antallet af entydige brugerdefinerede e-mails, der blev brugt på tværs af en vurderings- og observationshændelse, for hver bruger

SELECT DistinctCount(@"custom.email") AS uniqueEmails_perUser
FROM Assessment_A1, Assessment_A1:status
GROUPBY @"custom.userId"

Oprette et hastighedssæt

  1. I Fraud Protection-portalen skal du vælge Hastigheder i venstre navigationspanel og derefter vælge Nyt hastighedssæt.

    Fraud Protection opretter en kladde til dette hastighedssæt, der kun er synligt for dig (opretteren). Alle de ændringer, du foretager af kladden, gemmes automatisk.

  2. Valgfrit: Angiv en boolesk betingelse i feltet Betingelse. Eller lad feltet stå tomt.

    Det er kun hændelser, der matcher denne betingelse, der tages i betragtning i aggregeringen. Andre hændelser ignoreres. Hvis du f.eks. vil have, at hastighederne i hastighedssættet kun skal aggregere hændelser, der forekommer i USA, skal du definere følgende betingelse:

    WHEN @"user.countryRegion" == "US"

  3. Hvis du vil definere en ny hastighed fra bunden, skal du vælge Ny hastighed. Du kan finde oplysninger om, hvordan du definerer hastigheder, i afsnittet Definere en hastighed tidligere i denne artikel.

    Hvis du vil starte fra en eksisterende hastighedsskabelon, skal du vælge pilen til højre for Ny hastighed. Hvis du vil have vist hele listen over eksisterende skabeloner og deres indhold, skal du vælge Se alle.

    Du kan tilføje op til 10 hastigheder i et sæt.

  4. Vælg Publicer for at publicere hastigheden.

  5. Du kan redigere navnet, beskrivelsen og status af hastigheden i bekræftelsesdialogboksen. Vælg Publicer, når du er klar.

Når hastigheden er publiceret, er hastighederne i hastighedssættet synlige for alle brugere. Efterhånden som hændelser passerer gennem Fraud Protection, begynder hastighederne at samle data.

Bemærk!

Når en hastighed er publiceret, begynder den at samle data fremover. Historikdata tages ikke betragtning.

Du kan finde flere oplysninger om, hvordan du bruger hastigheder til at træffe beslutninger, i afsnittet Bruge en hastighed i regler senere i denne artikel.

Forstå eksempelruden

Når du opretter eller redigerer et hastighedssæt, vises ruden Eksempel i højre side af siden.

  • I Eksempel-ruden vises alle de hændelsesegenskaber, der kan refereres til i dine hastigheder. Disse egenskaber varierer, afhængigt af den type hændelse, som din hastighed observerer. Vælg hændelsestypen i feltet Hændelse øverst i ruden.

  • Afsnittet nyttedataeksempel indeholder et eksempel på de egenskaber, der kan sendes i API-anmodningen til vurdering.

  • Afsnittet forbedringseksempel indeholder et eksempel på de egenskaber, som Fraud Protection føjer til din hændelse, efter at den første anmodning er sendt. Disse egenskaber inkluderer f.eks. oplysninger fra Fraud Protection-løsningen til enhedsfingeraftryk samt risiko- og robotscorer fra modeller til maskinel indlæring.

    Forbedringseksemplet omfatter også oplysninger fra en regelevaluering, f.eks. beslutningen, regelnavnet og navnet på den klausul, der blev udløst. Du kan bruge alle disse egenskaber i din hastighed. Brug et snabel a-tegn (@) til at referere til dem (f.eks. @"user.firstName").

Systemdefinerede (standard) hastigheder

Fraud Protection opretter flere systemdefinerede problemer pr. miljø. Følgende standardhastigheder kan f.eks. tilføjes.

  • Standard – Mailhastigheder
  • Standard – Hastigheder for betalingsinstrument
  • Standard – IP-hastigheder
  • Standard – Enheds-id-hastigheder

Visse Fraud Protection-funktioner er baseret på standardfunktionerne, f.eks. siden Søgeresultater for indkøbsbeskyttelse.

Du kan ikke redigere eller slette systemdefinerede hastigheder. Du kan dog klone dem og derefter redigere eller slette klonerne.

Administrere dine hastighedssæt

  • Hvis du vil redigere et eksisterende publiceret hastighedssæt, skal du vælge hastigheden og derefter vælge Rediger.

    Der oprettes en kladde af din publicerede hastighed, som kun er synlig for dig. Alle ændringer, du foretager af kladden, gemmes automatisk.

    Når du er klar til at sætte ændringerne i produktion, skal du vælge Publicer. Den tidligere publicerede hastighed overskrives med ændringerne.

    Bemærk!

    Eventuelle ændringer, du foretager af en hastighed, har kun indflydelse på de værdier, der beregnes fremadrettet. De påvirker ikke tidligere hændelsesdata.

  • Hvis du vil slette et eksisterende hastighedssæt, skal du vælge ellipsen (...) og derefter vælge Slet.

    Bemærk!

    Du kan ikke slette et hastighedssæt, hvis der refereres til nogen af dets hastigheder i en publiceret regel.

  • Vælg ellipsen (...), og vælg derefter Omdøb, hvis du vil opdatere navnet på eller beskrivelsen af et hastighedssæt.

  • Hvis du vil ændre status for hastighedsættet, skal du vælge Aktivér eller Deaktiver.

    • Hastighederne i et hastighedssæt, der markeres som Aktiv, opdateres, efterhånden som nye hændelser flyder ind i Fraud Protection.
    • Hastighederne i et hastighedssæt, der markeres som Inaktiv, opdateres aldrig.

Bruge en hastighed i regler

Hvis du vil bruge dine hastigheder til at træffe beslutninger vedrørende indgående vurderingshændelser, skal du referere til dem i reglerne. Følgende hastighed defineres f.eks. som del af et hastighedssæt.

SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase 
GROUPBY @"user.userId"
WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000

I din regel kan du udføre en hastighedskontrol ved at bruge følgende syntaks.

WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000

Den første parameter er nøglen. Denne parameter bruges til at slå hastigheden op. I den foregående hastighedsdefinition for totalSpending, angiver sætningen GROUPBY\ @"user.userId", at der værdier bliver aggregeret for hvert bruger-id, der findes. Når du refererer til hastigheden fra en regel, angiver nøgleparameteren det bruger-id, som hastighedsværdien skal hentes for. Hvis nøgleparameteren er null eller tom, returnerer Fraud Protection 0.

Den anden parameter er timeWindwind. Denne parameter angiver det tidsrum, hvor du vil observere hastigheden. Du kan vælge et tidsrum mellem ét sekund og 90 dage. Aktuelt er følgende alle gyldige tidsrum:

  • [1–59]s
  • [1–59]m
  • [1–23]t
  • [1–90]d

Bemærk!

Tidsrummet begynder i starten af den forrige måleenhed. Hvis dags dato og klokkeslæt f.eks. er 11:04 den 1. april 2021, og du kontrollerer en hastighed over to timer (2h), kan du se dataene siden kl. 9:00, og ikke siden kl. 9:04.

Hvis det ikke lykkes at returnere en hastighedsværdi på grund af en fejl, returneres standardværdien 0, og reglen fortsætter med at køre.

Hastigheder opdateres med den aktuelle hændelse efter regelevaluering. Hvis du refererer til en hastighed i en regel, vil den derfor ikke medtage den aktuelle hændelse, der er ved at blive behandlet.

Hastighed kan også aktiveres fra Functions. Du kan få flere oplysninger under Funktioner.

Bruge regler til at få vist hastighedsværdier

Ud over at returnere beslutninger kan regler bruge observationsfunktioner som f.eks. Output() til at udskrive visse værdier til API-svaret. En bruger kan f.eks. skrive følgende sætning, som ikke træffer en beslutning, men blot udskrive værdierne fra flere hastigheder i API-svaret.

OBSERVE Output(
    totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
    loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)

Hver vurderingshændelse, der udløser denne regel, udskriver følgende afsnit i API-svaret:

"MerchantRuleOutput": {
    "clause1": {
        "totalSpending_7d": "523.99",
        "loginsPerDevice_1m": "1"
    }
},

I stedet for at udskrive hastighedsværdier direkte til API-svaret kan du bruge hændelsessporing til at sende værdierne til din egen forekomst af Azure Event Hubs eller Azure Blob Storage. Du kan f.eks. oprette følgende regel.

RETURN Approve(), Trace(
    totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
    loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)

Hvis du abonnerer på hændelsen FraudProtection.Trace.Rule, sendes følgende oplysninger som en del af de enkelte hændelser.

"attributes": {
    "totalSpending_7d": 523.99
    "loginsPerDevice_1m": 1
}

Yderligere ressourcer