Delen via


Velociteitscontroles uitvoeren

De frequentie van gebeurtenissen voor een gebruiker of entiteit (zoals een creditcard) kan duiden op verdachte activiteiten en mogelijke fraude. Nadat de fraudeurs bijvoorbeeld enkele afzonderlijke orders hebben proberen uit te voeren, gebruiken ze vaak één creditcard om snel meerdere orders via één IP-adres of apparaat te plaatsen. Ze kunnen ook veel verschillende creditcards gebruiken om snel veel orders te plaatsen. Met behulp van velociteitscontroles kunt u dit type gebeurtenispatronen identificeren. Door de velociteit te definiëren kunt u binnenkomende gebeurtenissen voor dit type patronen bekijken en met regels drempels definiëren waarboven u de patronen als verdacht behandelt.

Als uw Microsoft Dynamics 365 Fraud Protection-exemplaar meerdere omgevingen heeft, kunt u een ingestelde snelheid in een specifieke omgeving definiëren met behulp van de omgevingsschakelaar. U kunt alleen verwijzen naar snelheid in de regels die zijn gedefinieerd in de overeenkomstige omgeving. Als snelheid wordt gemaakt in een bovenliggende omgeving en de regel wordt gedefinieerd in dezelfde omgeving, worden de transacties in de onderliggende omgevingen opgenomen in de snelheid wanneer de regel op bovenliggend niveau wordt uitgevoerd.

Een velociteit definiëren

Velociteitsets bestaan uit afzonderlijke velociteiten. U definieert snelheden in Dynamics 365 Fraud Protection met de sleutelwoorden SELECT, FROM, WHEN en GROUPBY in de volgende structuur.

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

Notitie

Matrices kunnen niet worden gebruikt voor GROUPBY in een snelheidsdefinitie.

  • Geef na SELECT een samenvoegingsmethode op: Count, DistinctCount of Sum. Gebruik vervolgens het trefwoord AS om de velociteit een naam te geven. Deze naam kan vervolgens worden gebruikt om te verwijzen naar de velociteit in regels.

    Hier is een uitleg van de samenvoegingsmethoden.

    Samenvoegingsmethode Beschrijving Voorbeeld
    Telling Met deze methode wordt het aantal keren geretourneerd dat een gebeurtenis heeft plaatsgevonden. SELECT Count() AS numPurchases
    DistinctCount Met deze methode wordt het aantal verschillende waarden geretourneerd voor de opgegeven eigenschap. Als de opgegeven eigenschap null of leeg is voor een binnenkomende gebeurtenis, levert de gebeurtenis geen bijdrage aan de samenvoeging. SELECT DistinctCount(@"device.ipAddress") AS distinctIPaddresses
    Totaal Met deze methode wordt het aantal waarden geretourneerd voor een opgegeven numerieke eigenschap. SELECT Sum(@"totalAmount") AS totalSpending
  • Geef na FROM een beoordelings- of observatiegebeurtenis op waarmee de snelheid wordt geëvalueerd. Het veld waar u de snelheid voor wilt bekijken, of op wilt groeperen, moet deel uitmaken van de API-aanroep. Als u de snelheid voor meerdere gebeurtenissen wilt bekijken, geeft u meerdere gebeurtenissen tussen beoordelingen of observatiegebeurtenissen op.

  • De instructie WHEN is optioneel. Na WHEN kunt u een Booleaanse expressie opgeven. Alleen gebeurtenissen die met de voorwaarde overeenkomen, worden opgenomen in de samenvoeging. Andere gebeurtenissen worden genegeerd. De expressie wordt gebruikt om de gebeurtenissen te filteren die worden beschouwd voor de velociteit.

  • Na GROUPBY wordt een eigenschap of expressie opgegeven. De eigenschap of expressie wordt vervolgens geëvalueerd voor elke gebeurtenis die wordt verwerkt. Alle gebeurtenissen die worden geëvalueerd aan de hand van dezelfde waarde in de instructie GROUPBY, worden gecombineerd om de samenvoeging te berekenen die is opgegeven in de SELECT-instructie. Als de expressie GROUPBY null of leeg is voor een binnenkomende gebeurtenis, levert de gebeurtenis geen bijdrage aan de samenvoeging.

Tip

Elke expressie die in een regel kan worden gebruikt, kan ook worden gebruikt voor velociteit. Deze expressies omvatten lijsten en externe aanroepen. Zie de Taalreferentiegids voor een volledige lijst met beschikbare functies.

Notitie

Het tijdvenster waarvoor u de velociteit wilt observeren, wordt niet opgegeven in de velociteitsdefinitie zelf. In plaats daarvan geeft u deze op wanneer u naar de velociteit verwijst in een regel.

Voorbeelden van velociteit

Gebruik de volgende voorbeelden om uw eigen velociteiten te maken.

Het geldbedrag dat een gebruiker heeft uitgegeven

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

Het aantal keren dat een IP-adres is gebruikt om een nieuw account te maken

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

Het aantal unieke gebruikers dat zich heeft aangemeld voor elk apparaat

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

Het aantal aanmeldingspogingen voor elke gebruiker dat is afgewezen door Fraud Protection of dat een hoge risicoscore heeft ontvangen

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

Voor elke gebruiker het aantal aankopen dat buiten de Verenigde Staten is gedaan en dat een product op een hoge risicolijst bevat.

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

Voor elke gebruiker het aantal unieke aangepaste e-mails dat is gebruikt tijdens een beoordelings- en observatiegebeurtenis

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

Een velociteitset maken

  1. Selecteer in de linkernavigatie in de Fraud Protection-portalVelociteiten en selecteer vervolgens Nieuwe velociteitset.

    Met Fraud Protection wordt een concept voor een velociteitset gemaakt die alleen voor u zichtbaar is (de maker). Alle wijzigingen die u in het concept aanbrengt, worden automatisch opgeslagen.

  2. Optioneel: voer in het veld Voorwaarde een booleaanse voorwaarde in. Laat dit veld anders leeg.

    Alleen gebeurtenissen die met deze voorwaarde overeenkomen, worden opgenomen in de samenvoeging. Andere gebeurtenissen worden genegeerd. Definieer bijvoorbeeld de volgende voorwaarde als u wilt dat voor de velociteiten in de set alleen gebeurtenissen worden samengevoegd die in de Verenigde Staten plaatsvinden:

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

  3. U definieert een nieuwe velociteit door Nieuwe velociteit te selecteren. Zie het gedeelte Een velociteit definiëren eerder in dit artikel voor informatie over het definiëren van velociteiten.

    Als u wilt beginnen vanuit een bestaande velociteitsjabloon, selecteert u de pijl rechts van Nieuwe velociteit. Als u een volledige lijst met bestaande sjablonen en hun inhoud wilt weergeven, selecteert u Alles weergeven.

    U kunt maximaal 10 velociteiten in een set toevoegen.

  4. Selecteer Publiceren om de velociteit te publiceren.

  5. Wijzig in het bevestigingsvenster de naam, omschrijving en status van de velociteit. Als u klaar bent, klikt u op Publiceren.

Nadat de velociteit is gepubliceerd, zijn de velociteiten in de set zichtbaar voor alle gebruikers. Wanneer gebeurtenissen via Fraud Protection binnenkomen, worden gegevens voor de velociteit samengevoegd.

Notitie

Nadat een velociteit is gepubliceerd, worden gegevens vanaf dat punt samengevoegd. Er wordt geen rekening gehouden met historische gegevens.

Zie het gedeelte Een velociteit gebruiken in regels verderop in dit artikel voor informatie over het gebruik van velociteit bij het nemen van beslissingen.

Het voorbeelddeelvenster begrijpen

Wanneer u een velociteitset maakt of bewerkt, wordt het deelvenster Voorbeeld aan de rechterkant van de pagina weergegeven.

  • In het voorbeeldvenster worden alle gebeurteniseigenschappen weergegeven waarnaar in uw velociteit kan worden verwezen. Deze eigenschappen variëren afhankelijk van het type gebeurtenis waarop uw velociteit van toepassing is. Selecteer het gebeurtenistype in het veld Gebeurtenis boven in het deelvenster.

  • De sectie met het payloadvoorbeeld bevat een voorbeeld van de eigenschappen die kunnen worden verzonden in de aanvraag-API voor de beoordeling.

  • De sectie met het verrijkingsvoorbeeld bevat voorbeeldeigenschappen die met Fraud Protection aan uw gebeurtenis worden toegevoegd nadat de eerste aanvraag is verzonden. Deze eigenschappen omvatten bijvoorbeeld informatie over het gebruik van vingerafdrukken in Fraud Protection en risico- en botscores van de machine learning-modellen.

    Het verrijkingsvoorbeeld bevat ook informatie uit de regelevaluatie, zoals de beslissing, de naam van de regel en de naam van de clausule die wordt geactiveerd. U kunt elk van deze eigenschappen in uw velociteit gebruiken. Gebruik een @-teken (@) om hiernaar te verwijzen (bijvoorbeeld @"user.firstName").

Door het systeem gedefinieerde (standaard) snelheden

Met Fraud Protection worden verschillende door het systeem gedefinieerde snelheden per omgeving gemaakt. De volgende standaardsnelheden kunnen bijvoorbeeld worden toegevoegd.

  • Standaard - e-mailsnelheden
  • Standaard - snelheden van betaalmiddelen
  • Standaard - IP-snelheden
  • Standaard - snelheden van apparaat-id's

Sommige functionaliteit voor Fraud Protection is gebaseerd op de standaardsnelheden, zoals de pagina Zoekresultaten voor aankoopbescherming.

U kunt door het systeem gedefinieerde snelheden niet bewerken of verwijderen. U kunt ze wel klonen en deze klonen vervolgens bewerken of verwijderen.

Uw velociteitsets beheren

  • Als u een bestaande gepubliceerde velociteitset wilt bewerken, selecteert u de velociteit en vervolgens Bewerken.

    Er wordt een concept gemaakt van uw gepubliceerde velociteit, dat alleen voor u zichtbaar is. Alle wijzigingen die u in het concept aanbrengt, worden automatisch opgeslagen.

    Wanneer u klaar bent om wijzigingen door te voeren in de productie, selecteert u Publiceren. De eerder gepubliceerde velociteitset wordt overschreven met uw wijzigingen.

    Notitie

    Eventuele wijzigingen die u aan een velociteit aanbrengt, zijn alleen van invloed op de waarden die vanaf dat moment worden berekend. Ze hebben geen invloed op vorige gebeurtenisgegevens.

  • Als u een bestaande velociteitset wilt verwijderen, selecteert u de ellips (...) en vervolgens Verwijderen.

    Notitie

    U kunt een velociteitset niet verwijderen als er in een gepubliceerde regel naar wordt verwezen.

  • Als u de naam of omschrijving van een velociteitset wilt bijwerken, selecteert u de ellips (...) en vervolgens Naam wijzigen.

  • Selecteer Activeren of Deactiveren om de status van uw velociteitset te wijzigen.

    • De velociteiten in een set die is gemarkeerd als Actief, worden steeds bijgewerkt als nieuwe gebeurtenissen in Fraud Protection binnenkomen.
    • De velociteiten in een set die is gemarkeerd als Inactief, worden nooit bijgewerkt.

Velociteit in regels gebruiken

Om uw velociteiten te gebruiken om beslissingen te nemen over binnenkomende beoordelingsgebeurtenissen, moet u ernaar verwijzen in uw regels. De volgende velociteit is bijvoorbeeld gedefinieerd als onderdeel van een velociteitset.

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

In uw regel kunt u een velociteitscontrole doen met behulp van de volgende syntaxis.

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

De eerste parameter is de sleutel. Deze parameter wordt gebruikt om de velociteit op te zoeken. In de voorgaande snelheidsdefinitie voor totalSpending geeft de instructie GROUPBY\ @"user.userId" aan dat de waarden worden verzameld voor elke gevonden gebruikers-id. Wanneer u verwijst naar de velociteit van een regel, wordt via de sleutelparameter de gebruikers-id opgegeven waarvoor de velociteitswaarde moet worden opgehaald. Als de sleutelparameter null of leeg is, retourneert Fraud Protection 0.

De tweede parameter is timeWindow. Deze parameter geeft het tijdvenster aan waarvoor u de velociteit wilt zien. U kunt een tijdvenster selecteren tussen één seconde en negentig dagen. Op dit moment zijn dit de geldige tijdvensters:

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

Notitie

Het tijdvenster begint aan het begin van de vorige maateenheid. Als de huidige datum en tijd bijvoorbeeld 11:04 u is op 1 april 2021 en u de velociteit bekijkt voor een tijdvenster van twee uur (2 u), ziet u de gegevens vanaf 9:00 u niet 9:04 u.

Als voor een velociteit geen waarde kan worden geretourneerd vanwege een fout, wordt de standaardwaarde 0 geretourneerd en wordt de regel gewoon uitgevoerd.

Toewijzingen worden na regelevaluatie bijgewerkt met de huidige gebeurtenis. Als u dus in een regel verwijst naar een snelheid, zou de gebeurtenis die nu wordt verwerkt daar niet onder vallen.

Snelheid kan ook worden aangeroepen vanuit Functions. Zie Functions voor meer informatie.

Regels gebruiken om velociteitswaarden te bekijken

Naast het retourneren van beslissingen, kunnen regels ook observatiefuncties gebruiken, zoals Uitvoer() om bepaalde waarden af te drukken naar het API-antwoord. Een gebruiker kan bijvoorbeeld de volgende component schrijven, die geen beslissing neemt, maar alleen de waarden van verschillende mogelijkheden in de API-respons uitvoert.

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

Voor elke gebeurtenis voor evaluatie waarvoor deze regel wordt geactiveerd, wordt vervolgens de volgende sectie in de API-respons afgedrukt:

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

In plaats van de velociteitswaarden rechtstreeks in de API-respons af te drukken, kunt u gebeurtenistracering gebruiken om de waarden naar uw eigen exemplaar van Azure Event Hubs of Azure Blob Storage te verzenden. U kunt bijvoorbeeld de volgende regel maken.

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

Als u een abonnement neemt op de gebeurtenis FraudProtection.Trace.Rule, wordt de volgende informatie verzonden als onderdeel van elke gebeurtenis.

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

Aanvullende bronnen