Compartir a través de


Configuración de protección de cuentas de cliente

Microsoft Dynamics 365 Fraud Protection incluye capacidades de protección de cuentas para ayudarlo a evaluar si se está produciendo alguna actividad sospechosa en su ecosistema empresarial. Estas capacidades incluyen capacidades de evaluación de riesgos que puede utilizar para bloquear o desafiar intentos fraudulentos de crear cuentas o comprometer cuentas existentes. A continuación, encontrará algunos ejemplos:

  • API para la evaluación de riesgos en tiempo real
  • Una regla y una experiencia de lista que puede utilizar para optimizar su estrategia de riesgo de acuerdo con las necesidades de su negocio
  • Supervisar paneles que puede usar para supervisar la efectividad y las tendencias de la protección contra el fraude en su ecosistema

La protección de la cuenta cubre tres tipos de eventos del ciclo de vida de la cuenta: creación de cuenta, inicio de sesión de cuenta y evaluación personalizada. Para cada tipo de evento hay varias líneas de defensa:

  • Detección eficiente de bots: Cuando Fraud Protection detecta un intento automatizado de utilizar una lista de credenciales comprometidas o fuerza bruta para crear o modificar cuentas, su primera línea de defensa es la dinámica y sólida detección de bot. Esta inteligencia artificial (IA) adaptativa avanzada genera rápidamente una puntuación que se asigna a la probabilidad de que un bot esté iniciando el evento.
  • Evaluación reforzada en tiempo real: Como su próxima línea de defensa, Fraud Protection utiliza modelos de inteligencia artificial para generar un puntaje de evaluación de riesgos. Puede utilizar esta puntuación con reglas para aprobar, impugnar, rechazar o revisar los intentos de inicio de sesión y registro, según las necesidades comerciales.

Objetivos de este documento

Este documento le guía a través de las siguientes actividades:

Requisitos previos

Antes de comenzar las actividades de este documento, debe completar las tareas siguientes:

Paso 1: implementar las API de protección de la cuenta

Para aprovechar la serie completa de las características de Fraud Protection, envíe los datos de transacciones a las API en tiempo real.

  • En la experiencia de evaluación, puede analizar los resultados de usar Fraud Protection.
  • En la experiencia Protección , también puede cumplir decisiones basadas en las reglas que ha configurado.

Puede usar diferentes API de protección de cuentas dependiendo de cómo elija utilizar Fraud Protection. Algunos ejemplos de estas API: AccountCreation, AccountLogin, AccountCreationStatus, AccountLoginStatus, AccountUpdate, Label y Custom Events.

Para más información sobre los eventos admitidos, consulte la API de Dynamics 365 Fraud Protection.

Paso 2: Crear aplicaciones de Microsoft Entra

Importante

Para completar este paso, debe ser administrador de aplicaciones, administrador de aplicaciones en la nube o administrador global en el inquilino de Microsoft Entra.

Para adquirir los tokens necesarios para llamar a las API, use Protección contra fraudes para configurar aplicaciones de Microsoft Entra.

Configuración de una aplicación de Microsoft Entra

  1. En el portal protección contra fraudes, en el panel de navegación izquierdo, seleccione Configuración y, a continuación, seleccione Control de acceso.

  2. Seleccione Acceso a la aplicación. En la lista desplegable + Asignar roles de aplicación, seleccione Crear nueva aplicación y rellene los campos para crear la aplicación. Los campos siguientes son obligatorios:

    • Nombre para mostrar de la aplicación - Introduzca un nombre descriptivo para la aplicación. La longitud máxima es de 93 caracteres.

    • Método de autenticación - Seleccione si un certificado o secreto (protegido mediante contraseña) se usará para autenticación.

      • Seleccione Certificado y luego seleccione Elegir archivo para cargar la clave pública. Al adquirir tokens, necesita la clave privada coincidente.
      • Seleccione Secreto para generar automáticamente una contraseña después de crear la aplicación. Los secretos no son tan seguros como certificados.
  3. Seleccione los roles de API que desea asignar a esta aplicación en la lista desplegable Roles . El rol Risk_API está seleccionado de forma predeterminada. Puede editar roles de API en cualquier momento.

  • Risk_API: las aplicaciones entra asignadas Risk_API roles pueden llamar a los puntos de conexión de api de evaluación y observación de protección contra fraudes.
  • Provisioning_API: las aplicaciones entra asignadas Provisioning_API roles pueden llamar al punto de conexión de la API de aprovisionamiento de Protección contra fraudes, lo que permite la creación, actualización y eliminación de entornos no raíz.

Importante

Puede editar roles de API para una aplicación Entra existente en cualquier momento. Para obtener más información, consulte el artículo Configuración del acceso a aplicaciones de Microsoft Entra.

  1. Cuando haya terminado de rellenar los campos, seleccione Crear aplicación.

La página Confirmación resume el nombre y el identificador de la aplicación, así como la huella digital del certificado o el secreto, en función del método de autenticación seleccionado.

Importante

Guarde la información sobre la huella digital o el secreto para referencias futuras. Esta información solo se muestra una vez.

Crear aplicaciones adicionales

Puede crear tantas aplicaciones como necesite para ejecutar llamadas API en los entornos de producción.

  1. En la pestaña Acceso a la aplicación, seleccione Crear nueva aplicación en la lista desplegable Asignar roles de aplicación en la barra de navegación superior.
  2. Complete los campos para crear su aplicación y luego seleccione Crear aplicación.

Llamar a las API en tiempo real de Fraud Protection

Use la información de esta sección para integrar los sistemas con Fraud Protection.

Ids e información necesarios

  • Punto final de API - El URI para su entorno aparece en el icono Información de la cuenta en el panel de información de Fraud Protection.
  • Identificador del directorio (inquilino) - El identificador del directorio es el identificador único global (GUID) del dominio de un inquilino en Azure. Aparece en el portal de Azure y en el icono Información de la cuenta del panel de información de Fraud Protection.
  • Id. de aplicación (cliente): el identificador de aplicación identifica la aplicación De Microsoft Entra que creó para llamar a las API. Puede encontrar este id. en la página de confirmación que aparece después de seleccionar Crear aplicación en la página Administracion de API. También puede encontrarlo más adelante, en Registros de aplicaciones, en el portal de Azure. Habrá un identificador por cada aplicación que cree.
  • Certificado de huella digital o secreto - Puede encontrar la huella digital del certificado o el secreto en la página de confirmación que aparece después de seleccionar Crear aplicación en la página Admnistración de API.
  • ID de instancia: el id. de instancia es el identificador único global (GUID) para su entorno en Fraud Protection. Aparece en el icono Integración, en el panel de información de Fraud Protection.

Generar un símbolo de acceso

Debe generar este token y proporcionarlo con cada llamada a API. Tenga en cuenta que los símbolos de acceso tienen una vida útil limitada. Se recomienda almacenar en caché y volver a usar cadad token de acceso hasta que llegue la hora de obtener uno nuevo. Los ejemplos de código de C# siguientes muestran cómo puede adquirir un token mediante su certificado o secreto. Reemplace los marcadores de posición con su propia información.

Huella digital del CERTIFICADO

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

Secreto

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

Respuesta

En segundo plano, el código anterior genera una solicitud HTTP y recibe una respuesta que se parece al siguiente ejemplo.

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

Para obtener más información sobre los tokens de acceso, consulte la siguiente documentación de Azure:

Llamar a las API

  1. Pase los encabezados HTTP necesarios siguientes en cada solicitud.
Nombre de encabezado Valor de encabezado
Autorización

Utilice el siguiente formato para este encabezado: Portador accesstoken

En este formato, accesstoken es el token devuelto por el identificador de Entra de Microsoft.

x-ms-correlation-id Envíe un nuevo valor GUID en cada conjunto de llamadas API que se hacen juntas.
Content-Type application/json
x-ms-dfpenvid Envíe el valor GUID de su ID de instancia.
  1. Genere una carga basada en eventos. Complete los datos de evento con información relevante del sistema.

    Para más información sobre los eventos admitidos, consulte la API de Dynamics 365 Fraud Protection.

  2. Combine el encabezado (que incluye el token de acceso) y la carga, y después envíelos a su extremo de Fraud Protection. (El punto final de API es el URI para su entorno y aparece en el icono Información de la cuenta en el panel de información de Fraud Protection).

Para obtener más información acerca de las API, consulte API de Dynamics 365 Fraud Protection.

Paso 3: comprender los eventos de protección de la cuenta

Crear cuenta

Utilice el evento Crear cuenta para enviar información y contexto sobre un intento entrante de crear una nueva cuenta. La respuesta contiene una decisión para la API de creación de cuentas.

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

El valor de signUpId debe ser único por solicitud. Debe coincidir con el valor de la sección de metadatos del ejemplo siguiente.

Importante

El valor de deviceContextId debe coincidir con el valor de ID de sesión en la configuración de huellas digitales del dispositivo.

Carga de ejemplo

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

Inicio de sesión de cuenta

Utilice el evento Inicio de sesión de cuenta para enviar información y contexto sobre un intento entrante de crear un nuevo inicio de sesión de cuenta. La respuesta contiene una decisión para la API de inicio de sesión de cuentas.

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

El valor de userId debe coincidir con el valor de la carga útil. Cada usuario debe tener un valor único. Aquí se puede utilizar un valor GUID.

Importante

El valor de deviceContextId debe coincidir con el valor de ID de sesión en la configuración de huellas digitales del dispositivo.

Carga de ejemplo

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

Estado de creación de cuenta

Utilice el evento Estado de creación de cuenta para enviar información y contexto sobre un intento entrante de crear un nuevo estado de cuenta. La respuesta contiene una decisión para la API de estado de creación de cuentas.

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

El valor de userId debe coincidir con el valor de la carga útil. Cada usuario debe tener un valor único. Aquí se puede utilizar un valor GUID.

Carga de ejemplo

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

Estado de inicio de sesión de cuenta

Utilice el evento Estado de inicio de sesión de cuenta para enviar información y contexto sobre un intento entrante de crear un nuevo estado de inicio de sesión de cuenta. La respuesta contiene una decisión para la API de estado de inicio de sesión de cuentas.

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

El valor de signUpId debe coincidir con el valor de la carga útil. Cada usuario debe tener un valor único. Aquí se puede utilizar un valor GUID.

Carga de ejemplo

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

Etiqueta

Use el evento Etiqueta para enviar información adicional a Fraud Protection, además de datos informativos al analista de fraudes virtuales y las características de supervisión. La API de etiqueta proporciona información adicional para el entrenamiento de modelos basada en un conjunto adicional de signos de fraudes. También envía información sobre transacciones, detalles de cuentas o instrumentos de pago y reversiones.

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

El valor de userId debe coincidir con el valor en la API de inicio de sesión de cuenta correspondiente.

Carga de ejemplo

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

¡Enhorabuena! Ha completado con éxito la capacitación y está listo para usar las capacidades protección de cuentas de Fraud Protection.

Pasos siguientes

Para obtener información sobre cómo acceder y utilizar otras funcionalidades de Fraud Protection, consulte los siguientes documentos: