Tutorial: Integración de la protección contra la apropiación de cuentas de terceros con la API de autenticación nativa

Se aplica a: Círculo verde con un símbolo de marca de verificación blanca que indica que el siguiente contenido se aplica a los inquilinos externos. Inquilinos externos (más información)

Este tutorial le guía a través de la integración de proveedores de protección contra el robo de cuentas de terceros (ATO) con autenticación mediante API nativa en el identificador externo de Microsoft Entra. Mediante el uso de un firewall de aplicaciones web (WAF) para interceptar las solicitudes de autenticación, puede implementar desafíos de MFA basados en riesgos durante el inicio de sesión para protegerse frente a ataques automatizados y riesgos de cuentas.

Important

La protección de ATO de terceros para la autenticación nativa se admite a través de un WAF situado delante de los puntos de conexión de la API de autenticación nativa. Esta es la arquitectura admitida para flujos de API nativas. Id. externa de Microsoft Entra no expone una configuración del tipo RiskPreventionProvider para la autenticación nativa; la evaluación del riesgo la realiza su proveedor externo a través del WAF, y Microsoft Entra aplica el requisito de MFA resultante mediante el contexto de autenticación de Acceso condicional. Los flujos de inicio de sesión delegados por el explorador (hospedados en web) no se tratan en este tutorial.

Nota:

En este tutorial se supone que realiza manualmente solicitudes HTTP sin procesar para ejecutar el flujo de autenticación. Cuando sea posible, use un SDK de autenticación compatible y compilado por Microsoft. Consulte Tutorial: Preparación de la aplicación móvil Android para la autenticación nativa y Tutorial: Preparación de la aplicación móvil iOS/macOS para la autenticación nativa.

Prerrequisitos

Funcionamiento de la protección de ATO

Cuando un usuario intenta iniciar sesión con la autenticación nativa, la solicitud de autenticación fluye a través de un firewall de aplicaciones web (WAF) que intercepta el punto de conexión /token. Waf evalúa la solicitud con el proveedor de ATO de terceros mediante sus API de evaluación de riesgos. Si la solicitud se marca como sospechosa en función de la huella digital del dispositivo, el análisis de comportamiento u otras señales de riesgo, WAF desencadena una directiva de acceso condicional con un contexto de autenticación que requiere MFA. A continuación, el usuario debe completar el desafío de MFA antes de que continúe la autenticación.

Este enfoque permite aplicar protecciones basadas en riesgos durante el flujo de inicio de sesión nativo sin necesidad de redirecciones basadas en explorador, manteniendo la experiencia del usuario de la aplicación nativa al tiempo que protege frente a ataques de adquisición de cuentas.

Componentes de arquitectura

Esta integración implica varios componentes clave que funcionan conjuntamente para proporcionar autenticación basada en riesgos:

  • Inquilino externo: Una instancia dedicada de Microsoft Entra ID para administrar identidades externas y acceso al cliente.
  • Aplicación nativa: Una aplicación móvil o de escritorio que usa el identificador externo de Microsoft Entra (autenticación nativa) para registrar a los usuarios e iniciar sesión.
  • API nativas: Los puntos de conexión de servicio que permiten a las aplicaciones móviles y de escritorio realizar flujos de registro, inicio de sesión y autoservicio de restablecimiento de contraseña (SSPR) en la aplicación, sin una redirección del explorador.
  • Firewall de aplicaciones web (WAF): Firewall que inspecciona el tráfico HTTP entrante y saliente, intercepta las solicitudes de autenticación y coordina con el proveedor de terceros para la evaluación de riesgos.
  • Proveedor de ATO de terceros: Proveedor de terceros que ofrece servicios de detección de bots, huellas digitales de dispositivos y evaluación de riesgos.
  • Directiva de acceso condicional (CA): Directiva que especifica qué usuarios, aplicaciones y condiciones están en el ámbito y los controles necesarios para conceder acceso, desencadenados por el contexto de autenticación.
  • Contexto de autenticación: Una característica de acceso condicional que permite aplicar directivas granulares a acciones o escenarios específicos en lugar de en el nivel de aplicación.

Diagrama del flujo de autenticación basada en riesgos que muestra los pasos de aplicación nativa, WAF, proveedor de terceros y MFA.

Pasos de configuración

  1. Cree un flujo de inicio de sesión para un cliente externo.
  2. Cree una configuración de WAF.
  3. Habilite MFA para el inquilino.
  4. Configure el contexto de autenticación de acceso condicional.
  5. Cree una directiva de acceso condicional mediante el contexto de autenticación.
  6. Actualice la capa de WAF para interceptar solicitudes de API específicas durante el flujo de inicio de sesión.
  7. Actualiza el flujo de llamada a la API de inicio de sesión de la aplicación nativa para introducir la autenticación multifactor.

Configuración del flujo de inicio de sesión básico para el inquilino externo

  1. Si no tiene uno, cree un inquilino externo.

  2. Si aún no lo ha hecho, registre una aplicación en el Centro de administración de Microsoft Entra. Asegúrese de:

  3. Si aún no lo ha hecho, cree un flujo de usuario en el Centro de administración de Microsoft Entra. Al crear el flujo de usuario, tome nota de los atributos de usuario que configure según sea necesario. Estos atributos son los que Microsoft Entra espera que la aplicación envíe.

  4. Asocie el registro de su aplicación con el flujo de usuarios.

  5. Para el flujo de inicio de sesión, registre un usuario cliente que se usará para realizar pruebas. Alternativamente, puedes obtener este usuario de prueba después de ejecutar el flujo de registro.

Creación de una configuración de WAF

Se requiere una configuración de WAF para interceptar las solicitudes de autenticación para la evaluación de riesgos. En este tutorial se usa Cloudflare como ejemplo, pero puede usar cualquier WAF que admita la interceptación de solicitudes y la ejecución lógica personalizada.

Important

Un dominio personalizado debe estar asociado al inquilino externo antes de configurar el WAF. Sin un dominio personalizado, waf no puede interceptar las solicitudes de autenticación.

Para obtener instrucciones detalladas sobre la configuración de WAF de Cloudflare, consulte Configuración de WAF de Cloudflare con el identificador externo de Microsoft Entra.

Habilitación de la autenticación multifactor (MFA) para el inquilino

Para aplicar desafíos de autenticación multifactor (MFA) cuando se detectan intentos de inicio de sesión sospechosos, primero habilite MFA para el tenant. En este tutorial se usa OTP de correo electrónico como método de autenticación de segundo factor para los usuarios durante los inicios de sesión de riesgo.

Para obtener instrucciones detalladas sobre la configuración, consulte Habilitación de la autenticación multifactor de Microsoft Entra.

Nota:

Actualmente, la autenticación multifactor basada en riesgos para la autenticación nativa solo se puede aplicar para el procedimiento de inicio de sesión "correo electrónico con contraseña". El usuario debe tener el correo electrónico configurado como un método de autenticación seguro.

Configuración del contexto de autenticación de acceso condicional

El contexto de autenticación de acceso condicional (contexto de autenticación) permite aplicar directivas de acceso condicional en un nivel granular basado en acciones específicas o confidencialidad de datos, en lugar de simplemente en el nivel de aplicación. En este escenario, se utiliza el contexto de autenticación para desencadenar la autenticación multifactor (MFA) solo cuando el WAF determina que un intento de inicio de sesión se considera arriesgado, en lugar de requerir MFA para todos los intentos de inicio de sesión.

  1. Inicie sesión en el Centro de administración de Microsoft Entra.

  2. En la sección Acceso condicional , seleccione Contextos de autenticación y, a continuación, seleccione Nuevo contexto de autenticación.

    Captura de pantalla que muestra la página Contextos de autenticación de acceso condicional.

    Captura de pantalla que muestra el nuevo formulario de creación de contexto de autenticación.

  3. Agregue un nombre (obligatorio) y una descripción (opcional).

  4. Seleccione un identificador para el contexto de autenticación. Los identificadores van de c1 a c99. En este ejemplo, seleccione c3.

  5. Selecciona Crear.

Sugerencia

El identificador de contexto de autenticación se usa en el punto de conexión /token para indicar que el usuario usa un contexto de autenticación específico. Anote el identificador que seleccionó (por ejemplo, c3), ya que lo necesitará al configurar el proceso de WAF.

Creación de una directiva de acceso condicional mediante el contexto de autenticación

  1. Inicie sesión en el centro de administración de Microsoft Entra como mínimo con el perfil de Administrador de acceso condicional.

  2. Vaya a Entra ID>Acceso condicional>Directivas, y luego seleccione + Nueva directiva.

    Captura de pantalla que muestra la página Directivas de acceso condicional con la nueva opción de directiva.

  3. Escriba un nombre para la directiva y seleccione el usuario o grupo de usuarios específico (o todos los usuarios) a los que afecta la directiva. El usuario debe tener correo electrónico como un método de autenticación seguro si desea aplicar MFA de correo electrónico con las API de autenticación nativas.

    Captura de pantalla que muestra las opciones de asignación de usuario y nombre de directiva.

    Captura de pantalla que muestra la selección del usuario para la directiva de acceso condicional.

  4. En Recursos de destino, seleccione Contexto de autenticación en la lista desplegable y, a continuación, seleccione el contexto de autenticación que creó anteriormente.

  5. En Asignar, seleccione la acción que se debe aplicar al usuario (por ejemplo, requerir autenticación multifactor). Seleccione Seleccionar, establezca Habilitar directiva en Activado y, a continuación, seleccione Crear.

    Captura de pantalla que muestra los controles de permisos y la configuración de habilitación de directivas.

En este momento, tiene una directiva de acceso condicional configurada para requerir autenticación multifactor (MFA) para el usuario seleccionado cuando inicie sesión en cualquiera de las aplicaciones del inquilino.

Configurar trabajador de WAF para la evaluación de riesgos

En esta sección se describe cómo configurar el WAF para interceptar las solicitudes /token y realizar la evaluación de riesgos con el proveedor de ATO de terceros.

Actualización de la capa de WAF para interceptar solicitudes de API específicas durante el flujo de inicio de sesión

En este tutorial se usa un WAF de Cloudflare. Las instrucciones de configuración de WAF de Cloudflare se proporcionan en la sección Creación de una configuración de WAF de este tutorial.

  1. Inicie sesión en la cuenta de Cloudflare para el dominio externo (mencionado en el paso Crear una configuración de WAF) asociado al inquilino externo con al menos privilegios de administrador de dominio .

  2. Vaya a Rutas de trabajo y seleccione Crear aplicación.

    Captura de pantalla que muestra la página Rutas de trabajos de Cloudflare.

    Captura de pantalla que muestra la opción Crear aplicación en Cloudflare.

  3. Seleccione Iniciar con Hola mundo.

    Captura de pantalla de las opciones de creación de aplicaciones de Cloudflare que muestran los botones GitHub, GitLab, Hola mundo, plantilla y carga de archivos estáticos.

  4. Asigne al trabajador el nombre y seleccione Implementar. Captura de pantalla de la pantalla de implementación de Cloudflare Workers que muestra el nombre del trabajo, la vista previa del código y el botón Implementar para la configuración de Hola mundo.

  5. Una vez implementado el worker, seleccione la pestaña Configuración. Seleccione +Agregar en Dominios y Rutas.

    Captura de pantalla de la pestaña Configuración con la sección Dominios y rutas y un vínculo visible +Agregar para agregar rutas.

  6. Seleccione Ruta. Captura de pantalla de la configuración de Dominios & Rutas con opciones de dominio personalizado y ruta para asignar un endpoint de Worker.

  7. Seleccione el dominio en Zona. Agregue el siguiente valor en el campo Ruta :

    *<custom_domain>/<external_tenant_id(guid)>/oauth2/v2.0/token*

    Seleccione Fail Closed para el modo de fallo.

    Captura de pantalla que muestra la configuración de ruta con la configuración de la zona y el modo de error.

  8. Seleccione Agregar ruta.

Si la configuración del WAF está configurada correctamente, el worker intercepta todas las solicitudes al endpoint /token del cliente externo. Configure la lógica del trabajador para determinar cuáles solicitudes debe desafiar MFA y para evaluar los riesgos con el proveedor externo de evaluación de riesgos.

Configuración de la lógica de trabajo para la evaluación de riesgos

Configure la lógica del trabajador en:

  1. Extraiga información relevante de la solicitud de autenticación (huella digital del dispositivo, dirección IP, datos de comportamiento).
  2. Envíe estos datos a la API de evaluación de riesgos del proveedor de ATO de terceros.
  3. Evalúe la puntuación de riesgo devuelta por el proveedor.
  4. Si la puntuación de riesgo supera el umbral, modifique la solicitud para incluir el contexto de autenticación que desencadena MFA.
  5. Reenvíe la solicitud al punto de conexión /token de Microsoft Entra.

Sugerencia

Para obtener un ejemplo completo de implementación de Android SDK mediante la protección ATO basada en WAF, consulte la aplicación de muestra de protección ATO de LexisNexis Risk Solutions.

Integración de proveedores de terceros

En este tutorial se usa LexisNexis Risk Solutions como proveedor de ATO de terceros. La API de consulta de sesión proporcionada por LexisNexis se usa para la evaluación de riesgos. Consulte la siguiente documentación de LexisNexis:

Actualización del flujo de llamadas de la API de inicio de sesión de la aplicación nativa para admitir MFA

El flujo de inicio de sesión estándar mediante puntos de conexión de API nativos se describe en la documentación de referencia de la API de autenticación nativa. Este flujo no invoca MFA de forma predeterminada. En esta sección se describe cómo actualizar la aplicación nativa para admitir MFA basado en riesgos.

En este tutorial, invocará MFA basado en riesgos mediante el contexto de autenticación configurado en los pasos anteriores.

Nota:

Actualmente, MFA basado en riesgos solo se puede aplicar para el flujo "Correo electrónico con contraseña".

El siguiente flujo usa waf como capa para evaluar el riesgo de las llamadas /token.

Flujo lógico para iniciar MFA

  1. Invoque /token con el contexto de autenticación definido para el flujo de MFA.

  2. El /initiate punto de conexión sigue usando un CredentialToken como objeto de estado para el flujo de autenticación de primer factor.

  3. El /challenge punto de conexión sigue usando un CredentialToken como objeto de estado para el flujo de autenticación de primer factor.

  4. En /token, el riesgo se evalúa en la capa de WAF. Si la capa WAF decide analizar la solicitud mediante un desafío, se realiza una nueva /token llamada con la AuthContext configurada para el flujo MFA ("c3" en este ejemplo).

  5. El /introspect punto de conexión lee los métodos de CredentialVerificationInputState y los devuelve al usuario.

  6. El /challenge punto de conexión elige el método de autenticación fuerte utilizado para el desafío, leyendo los métodos de autenticación segura de CredentialVerificationInputState y comparándolos con los tipos de desafíos de la solicitud. Cuando se selecciona un método y se pasa a EC UCV para la operación de desafío, el identificador y el tipo del método seleccionado se escriben en CredentialVerificationIntermediateState.

  7. El /token punto de conexión lee el identificador y el tipo de método de autenticación segura de CredentialVerificationIntermediateStatey lo pasa a la operación de comprobación de UCV de EC, junto con el valor de oob de la solicitud. Cuando EC UCV se devuelve correctamente, el /token controlador aparece y se combina CredentialVerificationIntermediateState en CredentialToken. Al hacerlo, FlowToken en StsRequest se actualiza con los detalles de MFA. StsRequest se ejecuta a través del pipeline para completar el proceso de autenticación.

Sugerencia

La aplicación nativa debe estar preparada para controlar el flujo de MFA cuando se desencadene. Asegúrese de que su aplicación pueda llamar al /introspect endpoint, manejar el OTP de correo electrónico para /challenge y enviar el valor de OTP en la llamada final /token.

Prueba del flujo de un extremo a otro

Una vez finalizada la configuración, valide la integración:

  1. Inicie sesión con un usuario de cliente de prueba desde un contexto de bajo riesgo (por ejemplo, un dispositivo conocido y una dirección IP). El inicio de sesión debería completarse sin una solicitud de MFA.
  2. Repita el inicio de sesión desde un contexto que el proveedor de ATO de terceros clasifique como arriesgado (por ejemplo, un nuevo dispositivo, una dirección IP anónima o un tráfico de bot simulado según las instrucciones de prueba del proveedor). El WAF debe activar el contexto de autenticación de Acceso condicional, y tu aplicación debe recibir un desafío que requiera MFA mediante OTP por correo electrónico antes de emitir los tokens.
  3. Confirme que la /token respuesta después de MFA contiene los tokens de acceso e identificador esperados, y que la telemetría de inicio de sesión en el panel del inquilino y del proveedor refleja la decisión de riesgo.

Si MFA no se desencadena según lo previsto, compruebe que el usuario tiene el correo electrónico configurado como un método de autenticación seguro, la directiva de acceso condicional tiene como destino el contexto de autenticación correcto (por ejemplo, c3) y el trabajo de WAF invoca la API de riesgo del proveedor y reenvía el contexto de autenticación en la /token llamada.

Pasos siguientes

Ahora que ha integrado la protección de ATO con autenticación nativa, explore estos recursos relacionados: