Freigeben über


Einrichten des Debitorenkontoschutzes

Microsoft Dynamics 365 Fraud Protection enthält Funktionalitäten zum Schutz von Debitorenkonten, die Ihnen helfen, zu beurteilen, ob verdächtige Aktivitäten in Ihrem Unternehmens-Ökosystem auftreten. Diese Funktionalitäten umfassen Funktionen zur Risikobewertung, mit denen Sie betrügerische Versuche, Konten zu erstellen oder bestehende Konten zu kompromittieren, blockieren oder in Frage stellen können. Im Folgenden finden Sie einige Beispiele hierfür:

  • APIs für die Risikobewertung in Echtzeit
  • Eine Regel- und Listenerfahrung, die Sie nutzen können, um Ihre Risikostrategie entsprechend Ihren Geschäftsanforderungen zu optimieren
  • Überwachungs-Dashboards, mit der Sie die Effektivität des Betrugsschutzes und Trends in Ihrem Ökosystem überwachen können

Der Kontoschutz deckt drei Arten von Ereignissen im Lebenszyklus eines Kontos ab: Kontoerstellung, Kontoanmeldung, und Bewertung. Für jeden Ereignistyp gibt es mehrere Zeilen der Verteidigung:

  • Effiziente Bot-Erkennung: Wenn Fraud Protection einen automatisierten Versuch erkennt, eine Liste mit kompromittierten Anmeldeinformationen oder Brute-Force zu verwenden, um Konten zu erstellen oder zu ändern, ist die erste Verteidigungslinie die dynamische und robuste Bot-Erkennung. Diese fortschrittliche adaptive künstliche Intelligenz (KI) generiert schnell eine Bewertung, die der Wahrscheinlichkeit zugeordnet wird, dass ein Bot das Ereignis initiiert.
  • Echtzeit-Verstärkte Bewertung: Als nächste Zeile der Verteidigung verwendet Fraud Protection KI-Modelle, um eine Risikobewertung zu generieren. Sie können diese Punktzahl mit Regeln verwenden, um Anmelde- und Anmeldeversuche zu genehmigen, anzufechten, abzulehnen oder zu überprüfen, je nach Geschäftsanforderungen.

Ziele für dieses Dokument

Dieses Dokument führt Sie durch die folgenden Aktivitäten:

Voraussetzungen

Bevor Sie mit den Aktivitäten in diesem Dokument beginnen, müssen Sie die folgenden Aufgaben erledigen:

Schritt 1: Implementieren der Kontoschutz-APIs

Um den vollen Umfang der Funktionen von Fraud Protection zu nutzen, senden Sie Ihre Transaktionsdaten an die Echtzeit-APIs.

  • In der Evaluierungsfunktion können Sie die Ergebnisse der Verwendung von Fraud Protection analysieren.
  • In der „Protect“-Erfahrung können Sie Entscheidungen basierend auf den von Ihnen konfigurierten Regeln anerkennen.

Sie können verschiedene Kontoschutz-APIs verwenden, je nachdem, wie Sie Fraud Protection nutzen wollen. Beispiele für diese APIs sind: AccountCreation, AccountLogin, AccountCreationStatus, AccountLoginStatus, AccountUpdate, Label, und Custom Events.

Weitere Informationen über unterstützte Ereignisse finden Sie unter Dynamics 365 Fraud Protection API.

Schritt 2: Erstellen von Microsoft Entra-Apps

Wichtig

Um diesen Schritt abzuschließen, müssen Sie ein Anwendungsadministrator, ein Cloudanwendungsadministrator oder ein globaler Administrator in Ihrem Microsoft Entra-Mandanten sein.

Um die Token abzurufen, die zum Aufrufen der APIs erforderlich sind, verwenden Sie Betrugsschutz, um Microsoft Entra-Anwendungen zu konfigurieren.

Konfigurieren einer Microsoft Entra-App

  1. Wählen Sie im Portal "Betrugsschutz" in der linken Navigationsleiste " Einstellungen" und dann "Zugriffssteuerung" aus.

  2. Wählen Sie "Anwendungszugriff" aus. Wählen Sie in der Dropdownliste +Anwendungsrolle(n) die Option "Neue Anwendung erstellen" aus, und füllen Sie dann die Felder aus, um Ihre App zu erstellen. Folgende Felder sind erforderlich:

    • Anwendungsanzeigename – Geben Sie für die App einen beschreibenden Namen ein. Der Text kann maximal 93 Zeichen umfassen.

    • Authentifizierungsmethode - Wählen Sie, ob ein Zertifikat oder ein Geheimnis (Kennwort geschützt) für die Authentifizierung verwendet wird.

      • Wählen Sie Zertifikat, und wählen Sie dann Datei wählen, um den öffentlichen Schlüssel hochzuladen. Wenn Sie Token erwerben, benötigen Sie den übereinstimmenden privaten Schlüssel.
      • Wählen Sie "Geheim" aus, um nach dem Erstellen der App automatisch ein Kennwort zu generieren. Geheime Schlüssel sind nicht so sicher wie Zertifikate.
  3. Wählen Sie die API-Rollen aus, die Sie dieser App zuweisen möchten, aus der Dropdownliste "Rollen ". Die Risk_API Rolle ist standardmäßig ausgewählt. Sie können API-Rollen jederzeit bearbeiten.

  • Risk_API – Entra-Apps, die Risk_API Rollen zugewiesen sind, können API-Endpunkte für die Betrugsschutzbewertung und Beobachtungsereignisse aufrufen.
  • Provisioning_API – Entra-Apps, die Provisioning_API Rollen zugewiesen wurden, können den Endpunkt der Betrugsschutz-Bereitstellungs-API aufrufen, der das Erstellen, Aktualisieren und Löschen von Nicht-Stammumgebungen ermöglicht.

Wichtig

Sie können API-Rollen für eine vorhandene Entra-App jederzeit bearbeiten. Weitere Informationen finden Sie im Artikel zum Konfigurieren des Zugriffs auf Microsoft Entra-Apps.

  1. Wenn Sie das Ausfüllen der Felder abgeschlossen haben, wählen Sie "Anwendung erstellen" aus.

Auf der Bestätigungsseite werden der Name und die ID der App sowie der Zertifikatfingerabdruck oder der geheime Schlüssel zusammengefasst, je nach ausgewählter Authentifizierungsmethode.

Wichtig

Speichern Sie die Informationen zu Ihrem Zertifikatsfingerabdruck oder Geheimnis als Referenz für die spätere Verwendung. Diese Informationen werden nur einmal angezeigt.

Erstellen Sie weitere Apps

Sie können beliebig viele Apps nach Bedarf erstellen, um API-Aufrufe in Ihren Produktionsumgebungen auszuführen.

  1. Wählen Sie auf der Registerkarte "Anwendungszugriff" in der oberen Navigationsleiste in der Dropdownliste "Anwendungsrolle zuweisen" die Option "Neue Anwendung erstellen" aus.
  2. Füllen Sie die Felder aus, um Ihre App zu erstellen, und wählen Sie dann Anwendung erstellen.

Aufrufen der Fraud Protection-Echtzeit-APIs

Verwenden Sie die Informationen in diesem Abschnitt, um Ihre Systeme in Fraud Protection zu integrieren.

Erforderliche IDs und Informationen

  • API-Endpunkt – Der URI für Ihre Umgebung wird auf der Kachel Kontoinformationen im Fraud Protection-Dashboard angezeigt.
  • Verzeichnis-ID (Mandant) – Die Verzeichnis-ID bezeichnet den Globally Unique Identifier (GUID) für die Domäne des Mandanten in Azure. Sie erscheint im Azure-Portal und auf der Kachel Kontoinformationen im Fraud Protection-Dashboard.
  • Anwendungs-ID (Client-ID ) – Die Anwendungs-ID identifiziert die Microsoft Entra-App, die Sie zum Aufrufen von APIs erstellt haben. Sie finden diese ID auf der Bestätigungsseite, die nach der Auswahl von Anwendung erstellen auf der Seite API-Verwaltung erscheint. Sie finden sie auch später unter App-Registrierungen im Azure-Portal. Für jede App, die Sie erstellen, wird es eine ID geben.
  • Zertifikat-Miniaturabdruck oder Geheimnis - Sie finden den Zertifikat-Miniaturabdruck oder das Geheimnis auf der Bestätigungsseite, die erscheint, nachdem Sie Anwendung erstellen auf der Seite API-Verwaltung gewählt haben.
  • Instanz-ID – die Instanz-ID ist die global eindeutige Kennung (GUID) für Ihre Umgebung in Fraud Protection. Es wird in der Integration-Kachel auf dem Fraud Protection-Dashboard angezeigt.

Erstellen Sie ein Zugriffstoken

Sie müssen dieses Token generieren und für jeden API-Aufruf angeben. Beachten Sie, dass Zugriffstoken eine begrenzte Lebensdauer haben. Wir empfehlen, dass Sie jedes Zugriffstoken zwischenspeichern und wiederverwenden, bis es an der Zeit ist, ein neues zu erhalten. Die folgenden C#-Codebeispiele zeigen, wie Sie ein Token unter Verwendung Ihres Zertifikats oder Geheimnisses erwerben können. Ersetzen Sie die Platzhalter durch Ihre eigenen Informationen.

Zertifikat-Thumbprint

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

Geheimnis

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

Antwort

Im Hintergrund generiert der vorhergehende Code eine HTTP-Anforderung und erhält eine Antwort, die dem folgenden Beispiel ähnelt.

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

Weitere Informationen über Zugriffstoken finden Sie in der folgenden Azure-Dokumentation:

Aufrufen der APIs

  1. Übergeben Sie die folgenden erforderlichen HTTP-Kopfzeilen für jede Anforderung.
Headername Headerwert
Autorisierung

Verwenden Sie das folgende Format für diesen Header: Bearer accesstoken

In diesem Format ist accesstoken das Token, das von der Microsoft Entra-ID zurückgegeben wird.

x-ms-correlation-id Senden Sie einen neuen GUID-Wert für jeden Satz von API-Aufrufen, die zusammen gemacht werden.
Inhaltstyp Anwendung/JSON
x-ms-dfpenvid Senden Sie den GUID-Wert Ihrer Instanz-ID.
  1. Erstellen Sie eine ereignisbasierte Nutzlast. Füllen Sie die Ereignisdaten mit den relevanten Informationen vom System aus.

    Weitere Informationen über unterstützte Ereignisse finden Sie unter Dynamics 365 Fraud Protection API.

  2. Kombinieren Sie die Kopfzeile (die das Zugriffstoken enthält) und die Nutzlast, und senden Sie diese dann zum Fraud Protection-Endpunkt. (Der API-Endpunkt ist der URI für Ihre Umgebung und erscheint auf der Kachel Kontoinformationen im Dashboard Fraud Protection).

Weitere Informationen über APIs finden Sie unter Dynamics 365 Fraud Protection API.

Schritt 3: Verstehen von Kontoschutz-Ereignissen

Konto erstellen

Verwenden Sie das Ereignis Konto erstellen, um Informationen und Kontext über einen eingehenden Versuch, ein neues Konto zu erstellen, zu senden. Die Antwort enthält eine Entscheidung für die Account Creation API.

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

Der Wert von signUpId sollte pro Anfrage eindeutig sein. Er sollte mit dem Wert im Metadaten-Abschnitt im folgenden Beispiel übereinstimmen.

Wichtig

Der Wert von deviceContextId sollte mit dem Wert von session_id in den Einstellungen für den Gerätefingerabdruck übereinstimmen.

Beispiel-Payload

   {
          "device": {
               "deviceContextId": "2cf391cc-62d2-47d4-a9c1-78ec025293da",
               "ipAddress": "192.168.8.214",
               "provider": "DFPFingerprinting",
               "externalDeviceId": "1234567890",
               "externalDeviceType": "Tablet"
     },
     "user": {
          "userId": " 00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
          "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"
     }

Kontoanmeldung

Verwenden Sie das Ereignis Kontoanmeldung, um Informationen und Kontext über einen eingehenden Versuch zu senden, eine neue Kontoanmeldung zu erstellen. Die Antwort enthält eine Entscheidung für die Account Login API.

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

Der Wert von userId muss mit dem Wert im Payload übereinstimmen. Jeder Benutzer muss einen eindeutigen Wert haben. Hier kann ein GUID-Wert verwendet werden.

Wichtig

Der Wert von deviceContextId sollte mit dem Wert von session_id in den Einstellungen für den Gerätefingerabdruck übereinstimmen.

Beispiel-Payload

  {
     "device": {
          "deviceContextId": "2ef10376-2ba8-4f36-a911-da438e5e5e27",
          "ipAddress": "192.168.8.214",
          "provider": "DFPFingerprinting",
          "externalDeviceId": "1234567890",
     "externalDeviceType": "Computer"
     },
     "user": {
          "userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
          "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"
  }

Konto erstellen Status

Verwenden Sie das Ereignis Kontoerstelllungsstatus, um Informationen und Kontext über einen eingehenden Versuch zu senden, einen neuen Kontostatus zu erstellen. Die Antwort enthält eine Entscheidung für die Kontoerstelllungsstatus API.

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

Der Wert von userId muss mit dem Wert im Payload übereinstimmen. Jeder Benutzer muss einen eindeutigen Wert haben. Hier kann ein GUID-Wert verwendet werden.

Beispiel-Payload

  {
     "metadata":{
          "signUpId":"a6221a3f-c38c-429e-8fde-3026d8c29ed3",
          "userId":"11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
          "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"
  }

Konto-Anmeldestatus

Verwenden Sie das Ereignis Kontoanmeldestatus, um Informationen und Kontext über einen eingehenden Versuch, einen neuen Kontoanmeldestatus zu erstellen, zu senden. Die Antwort enthält eine Entscheidung für die Account Login Status API.

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

Der Wert von signUpId muss mit dem Wert im Payload übereinstimmen. Jeder muss einen eindeutigen Wert haben. Hier kann ein GUID-Wert verwendet werden.

Beispiel-Payload

  {
     "metadata":{
          "loginId":"dc4ea331-a6e5-4aa0-8eba-16b4d516a07d",
          "userId":"11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
          "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"
  }

Etikett

Verwenden Sie das Ereignis Label, um zusätzliche Informationen an Fraud Protection zu senden, neben den Daten, die die Funktionen der virtuellen Betrugsanalyse und der Überwachung informieren. Die Label API liefert die zusätzlichen Informationen für das Modelltraining, das auf einem zusätzlichen festgelegten Satz von Betrugssignalen basiert. Sie sendet auch Informationen über Transaktionen, Konto- oder Zahlungsinstrumentendetails und Stornierungen.

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

Der Wert von userId muss mit dem Wert in der entsprechenden Account Login API übereinstimmen.

Beispiel-Payload

  {
     "metadata": {
          "name": "AP.Label.Metadata",
          "userId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
          "merchantTimeStamp": "2020-06-14T21:53:27.8822492-08:00",
          "trackingId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff"
     },
     "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
          }

Herzlichen Glückwunsch! Sie haben die Schulung erfolgreich abgeschlossen und sind bereit, die Funktionalitäten von Fraud Protection zum Schutz von Konten zu nutzen.

Nächste Schritte

Wie Sie auf andere Funktionalitäten von Fraud Protection zugreifen und diese nutzen können, erfahren Sie in den folgenden Dokumenten: