Megosztás a következőn keresztül:


Ügyfélfiókok védelmének beállítása

A Microsoft Dynamics 365 Fraud Protection fiókvédelmi képességeket tartalmaz, amelyekkel felmérheti, hogy gyanús tevékenységek történnek-e az üzleti ökoszisztémában. Ezek a képességek közé tartoznak a kockázatértékelési képességek, amelyekkel letilthatja vagy megtámadhatja a fiókok létrehozására vagy a meglévő fiókok feltörésére tett csalárd kísérleteket. Íme néhány példa:

  • API-k valós idejű kockázatértékeléshez
  • Egy szabály- és listaélmény, amellyel üzleti igényeinek megfelelően optimalizálhatja a kockázati stratégiát
  • A csalás elleni védelem hatékonyságának és trendjeinek monitorozására használható irányítópultok monitorozása az ökoszisztémában

A fiókvédelem háromféle fiók életciklus-eseményt fed le: fióklétrehozás, fiókbeléptetés és egyéni értékelés. Minden eseménytípushoz több védelmi sor tartozik:

  • Hatékony robotészlelés: Ha a Fraud Protection automatizált kísérletet észlel a feltört hitelesítő adatok listájának vagy a fiókok létrehozásához vagy módosításához szükséges találgatások listájának használatára, az első védelmi vonal a dinamikus és robusztus robotészlelés. Ez a fejlett adaptív mesterséges intelligencia (AI) gyorsan létrehoz egy pontszámot, amely megfelel annak a valószínűségének, hogy egy robot elindítja az eseményt.
  • Valós idejű megerősített értékelés: A Csalás elleni védelem a következő védelmi vonalként AI-modelleket használ a kockázatértékelési pontszám létrehozásához. Ezt a pontszámot szabályokkal használhatja a bejelentkezési és regisztrációs kísérletek jóváhagyására, megtámadására, elutasítására vagy áttekintésére az üzleti igények alapján.

A dokumentum céljai

Ez a dokumentum végigvezeti a következő tevékenységeken:

Előfeltételek

A dokumentum tevékenységeinek megkezdése előtt el kell végeznie a következő feladatokat:

1. lépés: Fiókvédelmi API-k implementálása

A Fraud Protection funkcióinak teljes körű kihasználásához küldje el tranzakciós adatait a valós idejű API-knak.

  • A kiértékelés során elemezheti a Fraud Protection használatának eredményeit.
  • A védelmi felületen a konfigurált szabályokon alapuló döntéseket is tiszteletben tarthatja.

A csalás elleni védelem használatának módjától függően különböző fiókvédelmi API-kat használhat. Ilyen API-k például a következők: AccountCreation, AccountLogin, AccountCreationStatus, AccountLoginStatus, AccountUpdate, Label és Custom Events.

További információ a támogatott eseményekről: Dynamics 365 Fraud Protection API.

2. lépés: Microsoft Entra-alkalmazások létrehozása

Fontos

A lépés végrehajtásához a Microsoft Entra-bérlő alkalmazásadminisztrátorának, felhőalkalmazás-rendszergazdájának vagy globális rendszergazdájának kell lennie.

Az API-k meghívásához szükséges jogkivonatok beszerzéséhez használja a Fraud Protectiont a Microsoft Entra-alkalmazások konfigurálásához.

Microsoft Entra-alkalmazás konfigurálása

  1. A Csalás elleni védelem portál bal oldali navigációs sávján válassza az Adatok, majd az API-kezelés lehetőséget.

  2. Az API felügyeleti oldalán válassza a Konfiguráció lehetőséget.

  3. Válassza az Alkalmazások létrehozása lehetőséget, majd töltse ki a mezőket az alkalmazás létrehozásához. A következő mezők szükségesek:

    • Alkalmazás megjelenítendő neve – Adjon meg egy leíró nevet az alkalmazásnak. A maximális hossz 93 karakter.

    • Környezet – Válassza ki az éles végpontot.

    • Hitelesítési módszer – Válassza ki, hogy a hitelesítéshez tanúsítvány vagy titkos kód (jelszóval védett) van-e használva.

      • Válassza a Tanúsítvány lehetőséget, majd válassza a Fájl kiválasztása lehetőséget a nyilvános kulcs feltöltéséhez. A jogkivonatok beszerzésekor szüksége lesz a megfelelő titkos kulcsra.
      • Válassza a Titkos kód lehetőséget, ha automatikusan létrehoz egy jelszót az alkalmazás létrehozása után.
  4. Ha befejezte a mezők kitöltését, válassza az Alkalmazás létrehozása lehetőséget.

    A megerősítő oldal összefoglalja az alkalmazás nevét és azonosítóját, valamint a tanúsítvány ujjlenyomatát vagy titkos kódját a kiválasztott hitelesítési módszertől függően.

Fontos

Mentse a tanúsítvány ujjlenyomatával vagy titkos kulcsával kapcsolatos információkat a későbbi referenciához. Ez az információ csak egyszer jelenik meg.

További alkalmazások létrehozása

Az API-hívások éles környezetben való futtatásához annyi alkalmazást hozhat létre, amennyi szükséges.

  1. A Konfiguráció lapon válassza a Másik alkalmazás létrehozása lehetőséget.
  2. Töltse ki a mezőket az alkalmazás létrehozásához, majd válassza az Alkalmazás létrehozása lehetőséget.

A Csalás elleni védelem valós idejű API-k meghívása

Az ebben a szakaszban található információk segítségével integrálhatja rendszereit a Fraud Protection szolgáltatással.

Szükséges azonosítók és információk

  • API-végpont – A környezet URI-ja megjelenik a Csalás elleni védelem irányítópult Fiókinformáció csempéjén.
  • Címtár (bérlő) azonosítója – A címtárazonosító egy bérlő tartományának globálisan egyedi azonosítója (GUID) az Azure-ban. Megjelenik az Azure Portalon és a Csalás elleni védelem irányítópult Fiókinformáció csempéjén.
  • Alkalmazás (ügyfél) azonosítója – Az alkalmazásazonosító azonosítja az API-k meghívásához létrehozott Microsoft Entra-alkalmazást. Ezt az azonosítót a megerősítést kérő oldalon találja, amely azután jelenik meg, hogy az API Management lapon az Alkalmazás létrehozása lehetőséget választja. Később az Azure Portal Alkalmazásregisztrációk alatt is megtalálhatja. Minden létrehozott alkalmazáshoz egy azonosító tartozik.
  • Tanúsítvány ujjlenyomata vagy titkos kódja – A tanúsítvány ujjlenyomatát vagy titkos kulcsát a megerősítést kérő oldalon találja, amely azután jelenik meg, hogy az API Management lapon az Alkalmazás létrehozása lehetőséget választja.
  • Példányazonosító – A példányazonosító a környezet globálisan egyedi azonosítója (GUID) a Fraud Protectionben. Megjelenik a Csalás elleni védelem irányítópult Integráció csempéjén.

Hozzáférési jogkivonat létrehozása

Ezt a jogkivonatot minden API-híváshoz létre kell hoznia, és meg kell adnia. Vegye figyelembe, hogy a hozzáférési jogkivonatok élettartama korlátozott. Javasoljuk, hogy gyorsítótárazza és használja újra az egyes hozzáférési jogkivonatokat, amíg el nem ér egy újat. Az alábbi C#-kódminták bemutatják, hogyan szerezhet be jogkivonatot a tanúsítvány vagy a titkos kód használatával. Cserélje le a helyőrzőket a saját adataira.

TANÚSÍTVÁNY ujjlenyomata

   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;
     }

Titkos kód

   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;
     }

Válasz

A színfalak mögött az előző kód létrehoz egy HTTP-kérést, és az alábbi példához hasonló választ kap.

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

A hozzáférési jogkivonatokkal kapcsolatos további információkért tekintse meg a következő Azure-dokumentációt:

Az API-k meghívása

  1. Minden kéréshez adja át a következő szükséges HTTP-fejléceket.
Fejléc neve Fejléc értéke
Engedélyezés

A fejléchez használja a következő formátumot: Bearer accesstoken

Ebben a formátumban az accesstoken a Microsoft Entra ID által visszaadott jogkivonat.

x-ms-correlation-id Küldjön egy új GUID-értéket minden egyes, együtt végrehajtott API-hívásra.
Content-Type application/json
x-ms-dfpenvid Küldje el a példányazonosító GUID-értékét.
  1. Eseményalapú hasznos adatok létrehozása. Töltse ki az eseményadatokat a rendszerből származó releváns információkkal.

    További információ a támogatott eseményekről: Dynamics 365 Fraud Protection API.

  2. Egyesítse a fejlécet (amely tartalmazza a hozzáférési jogkivonatot) és a hasznos adatokat, majd küldje el őket a Fraud Protection-végpontra. (Az API-végpont a környezet URI-ja, és megjelenik a Csalás elleni védelem irányítópult Fiókinformáció csempéjén.)

Az API-kkal kapcsolatos további információkért lásd a Dynamics 365 Fraud Protection API-t.

3. lépés: A fiókvédelmi események ismertetése

Fiók létrehozása

A Fiók létrehozása esemény használatával információkat és kontextust küldhet egy új fiók létrehozására tett bejövő kísérletről. A válasz tartalmaz egy döntést a Fióklétrehozási API-hoz.

URI: API Endpoint>/v1.0/action/account/create/<signUpId <>

A signUpId értékének kérésenként egyedinek kell lennie. Ennek meg kell egyeznie az alábbi mintában szereplő metaadatszakasz értékével.

Fontos

A deviceContextId értékének meg kell egyeznie az eszköz ujjlenyomat-beállításában szereplő session_id értékével.

Minta hasznos adatok

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

Fiók bejelentkezése

A fiókbeléptetési esemény használatával információkat és kontextust küldhet egy új fiókbeléptetési kísérletről. A válasz a Fiók bejelentkezési API-jának döntését tartalmazza.

URI: API Endpoint>/v1.0/action/account/login/<<userId>

A userId értékének meg kell egyeznie a hasznos adat értékével. Minden felhasználónak egyedi értékkel kell rendelkeznie. A GUID-érték itt használható.

Fontos

A deviceContextId értékének meg kell egyeznie az eszköz ujjlenyomat-beállításában szereplő session_id értékével.

Minta hasznos adatok

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

Fiók létrehozási állapota

A Fiók létrehozása állapot esemény használatával információkat és kontextust küldhet egy új fiókállapot létrehozására tett bejövő kísérletről. A válasz egy döntést tartalmaz a Fiók létrehozása állapot API-hoz.

URI: API Endpoint>/v1.0/observe/account/create/status/<signUpId <>

A userId értékének meg kell egyeznie a hasznos adat értékével. Minden felhasználónak egyedi értékkel kell rendelkeznie. A GUID-érték itt használható.

Minta hasznos adatok

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

Fiók bejelentkezési állapota

A fiók bejelentkezési állapotának eseményével információkat és kontextust küldhet egy új fiók bejelentkezési állapotának létrehozására tett bejövő kísérletről. A válasz a Fiók bejelentkezési állapot API-jának döntését tartalmazza.

URI: API Endpoint>/v1.0/observe/account/login/status/<<userId>

A signUpId értékének meg kell egyeznie a hasznos adatokban szereplő értékkel. Mindegyiknek egyedi értékkel kell rendelkeznie. A GUID-érték itt használható.

Minta hasznos adatok

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

Címke

A Címke esemény használatával további információkat küldhet a Csalás elleni védelemnek a virtuális csalások elemzőjét és figyelési funkcióit tájékoztató adatok mellett. A Label API további információkat nyújt a modell betanításához, amely további csalási jeleken alapul. Emellett információkat küld a tranzakciókról, a számla vagy a fizetési eszköz részleteiről és a visszafordulásokról.

URI: API Endpoint>/v1.0/label/account/create/<<userId>

A userId értékének meg kell egyeznie a megfelelő fiók bejelentkezési API-jának értékével.

Minta hasznos adatok

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

Gratulálunk! Sikeresen elvégezte a képzést, és készen áll a Fraud Protection fiókvédelmi képességeinek használatára.

Következő lépések

A csalás elleni védelem egyéb képességeinek eléréséről és használatáról az alábbi dokumentumokban tájékozódhat: