La API de OnDMARC es excelente para realizar tareas masivas o repetitivas que deben ejecutarse rápidamente, con frecuencia y sin errores, y no necesitas ser desarrollador ni saber programar para usarla. Aquí te explicaré cómo realizar la tarea habitual de actualizar la política de subdominio de dominios que ya están en reject, utilizando Dynamic DMARC de Red Sift, la API de OnDMARC y Make (anteriormente conocido como Integromat). En este ejemplo usamos Make, pero podrías utilizar fácilmente cualquier otra herramienta de automatización sin código, como Zapier o Retool.
Qué vamos a hacer y por qué
Cuando OnDMARC configura un registro DMARC por primera vez en un dominio que anteriormente no tenía ninguno, siempre creará una política de p=“none” (solo informes DMARC) y sp=none. Esto significa que la política de subdominio también se establece únicamente en modo de generación de informes. Es decir, si un correo electrónico procedente del dominio o de cualquiera de sus subdominios que no tenga una política específica falla la comprobación DMARC, el receptor no debería tomar ninguna acción (de bloqueo). El correo debería entregarse con normalidad y se nos debería enviar un informe DMARC para su análisis. Esto es así a menos que el subdominio tenga su propia política DMARC; puedes obtener más información en nuestra útil guía de DMARC aquí.
Esta política pasiva es ideal mientras se está configurando un dominio y sus fuentes de envío, pero una vez completado ese proceso, o si el dominio y sus subdominios no envían correo, la política debería cambiarse rápidamente a p=reject. En ese punto, los correos que fallen DMARC serán rechazados por el receptor, bloqueando los intentos de suplantación.
En nuestro ejemplo, tenemos 4 dominios en una cuenta de OnDMARC. Hemos cambiado diligentemente 3 dominios a p=reject, pero se nos ha olvidado actualizar la política de subdominio, que sigue en sp=none. El dominio restante sigue en p=none porque todavía estamos trabajando en él. Así que necesitamos volver atrás y actualizar la política de subdominio de 3 de los 4 dominios a sp=reject. Con la interfaz de OnDMARC y Dynamic DMARC, esto es bastante sencillo y llevaría unos 12 clics. Pero, ¿qué pasaría si en lugar de 3 de 4 dominios tuviéramos 36 de 73? Eso sería mucho menos divertido. Aquí entra en juego la API de OnDMARC.
Paso 1: Obtener una clave de API de OnDMARC
Primero, necesitamos obtener una clave de API para OnDMARC. Ve a Administración en el panel de Usuario y Cuenta haciendo clic en el icono de perfil en la parte superior derecha de la pantalla.


Luego haz clic en la pestaña de OnDMARC y asegúrate de seleccionar la instancia correcta en el selector de instancias. Si solo tienes acceso a una instancia de OnDMARC, no necesitas preocuparte por seleccionar la instancia correcta.
Desplázate hacia abajo hasta la tabla de claves de API en la parte inferior de la pantalla y haz clic en Añadir. Asegúrate de asignar el rol de Super Admin a esta clave durante el proceso. Copia la clave de API en un lugar seguro. Tu pantalla de claves de API debería tener ahora este aspecto:


Paso 2: Descarguemos nuestra lista de dominios desde OnDMARC
En la pantalla Mis Dominios, haz clic en el botón de exportar que se resalta a continuación y descarga tu lista de dominios como CSV.


Luego, ve a Google Sheets (o Microsoft Office 365) y súbelo a una hoja nueva. Elimina todas las columnas excepto la columna de dominio para poder centrarnos en ella. Ahora debería tener un aspecto similar a este:


Ten en cuenta que también podríamos haber obtenido la lista de dominios desde la API utilizando el endpoint de API GET /domains en lugar del método CSV.
Paso 3: Configurar Make
Ahora que tenemos nuestra hoja de control configurada, vamos a Make para configurar nuestro escenario de automatización. Si aún no tienes una cuenta, puedes crear una aquí.
Ahora ve a Escenarios y haz clic en “Crear un nuevo escenario”. Añade el primer módulo y selecciona el módulo de Google Sheets “Obtener valores de rango”. Si es tu primera vez, Make te pedirá que te autentiques con Google Sheets antes de continuar.
Una vez hecho esto, configuramos el módulo para que obtenga el rango correcto de filas de nuestro archivo y pestaña específicos de Google Sheets. Debería tener este aspecto:


Podemos probarlo haciendo clic derecho en el módulo y seleccionando “Ejecutar solo este módulo” para comprobar el resultado.
Como era de esperar, obtenemos un paquete por fila, que contiene cada dominio. Esto nos permite recorrer cada dominio de la lista en los pasos siguientes.
A continuación, haremos una llamada a la API de OnDMARC, primero para comprobar la configuración actual de Dynamic DMARC, y luego para actualizarla si es necesario. Comprobamos la configuración actual antes de actualizarla porque solo queremos actualizar la política de subdominio a reject para los dominios cuya política de nivel superior esté en reject.
Para obtener la configuración de política Dynamic DMARC existente, utilizaremos el endpoint GET domainDMARC. Este recupera la configuración actual de Dynamic DMARC de un dominio específico en la instancia de OnDMARC.
Paso 4: Realizar nuestra primera llamada a la API de OnDMARC
Crea un nuevo módulo, enlazándolo con el primer módulo de Google Sheets, y selecciona la app HTTP y la acción “Realizar una solicitud con autenticación básica” como se muestra a continuación:


En el campo URL, escribe la URL base de la API para tu región, seguida de la extensión “/domain/{domain}/dmarc”. Puedes obtener la URL base correcta en la parte superior de la documentación de la API; varía según la ubicación de tu instancia (UE, Reino Unido o EE. UU.). Para la instancia del Reino Unido, tendría este aspecto: https://api.ondmarc.com/domain/{domain}/dmarc
Ahora sustituye {domain} por una referencia a la columna de dominio en la hoja de Google Sheets del módulo anterior, de esta manera:
Asegúrate de establecer el Método en GET, y luego podemos pasar al siguiente paso de configuración de esta llamada a la API: Autorización. Para que la llamada a la API funcione, deberá estar autorizada mediante tu clave de API. Para ello, necesitamos añadir un encabezado de Autorización.
Dale al elemento 1 de la sección de encabezados el nombre “Authorization”, y en el campo de valor, escribe Api-Key, seguido de un espacio, seguido de la clave de API que guardaste en el paso 1. Asegúrate de seguir estos pasos exactamente como se indica, ya que distinguen entre mayúsculas y minúsculas. El resultado final debería tener el aspecto de la captura de pantalla anterior.
Como último paso, establece el tipo de Cuerpo en Raw, el tipo de Contenido en JSON (application/json), y establece “Analizar respuesta” en sí, luego haz clic en Aceptar para guardar.
Ahora ejecutemos todo el escenario para probarlo.
Gran éxito. Al analizar el resultado, la API devuelve un objeto de datos que contiene un Array llamado “entries”; el primer elemento (elemento 1) contiene la política de nivel superior y el tercer elemento (elemento 3) contiene la política de subdominio. Para evitarnos la manipulación de arrays, asumiremos con seguridad que los elementos siempre llegarán en este orden, y crearemos asignaciones simples para nuestros filtros.
Volviendo a nuestra hoja de Google Sheets, en el encabezado de la columna B, escribe “p=” y en la columna C escribe “previous sp=”, en la D añadamos “Update status code” y en la E “new sp=”. El resultado debería tener este aspecto:
Ahora vamos a crear nuestra primera escritura de vuelta a Google Sheets para registrar la configuración actual en nuestra hoja con fines de confirmación. Añade un módulo de Google Sheets “Actualizar fila” y configúralo de la siguiente manera:
Observa la referencia al número de fila del primer módulo; esto garantiza que los resultados se añadan a la fila correcta. Y en las columnas B y C nos referimos a los valores de los elementos 1 y 3 del array “Entries” que devolvió la API de OnDMARC. Si ahora ejecutamos el escenario, los resultados deberían tener este aspecto:


Ahora podemos ver claramente que los dominios de las filas 2, 4 y 5 necesitan que su política de subdominio se ajuste a reject, pero no el de la fila 3. Continuemos con el siguiente paso.
Paso 5: Filtrar y realizar nuestra llamada de actualización a la API
Ahora vamos a crear un módulo de enrutador (router) para crear dos posibles rutas para nuestro escenario. Haz clic en el signo + junto al último módulo del escenario y busca “Router”. En la primera ruta, filtraremos para dejar pasar únicamente las filas donde la política p= tenga el valor “reject”, y en la segunda, todos los demás resultados.


Configuremos el primer filtro haciendo clic en la primera ruta después del enrutador. Nombra el filtro y configúralo de la siguiente manera:
Esto significa que solo se dejarán pasar por esta ruta los elementos donde la política sea p=reject. En la segunda ruta, configuramos el filtro inverso:
Observa el operador “No es igual a”.
Configuremos primero la segunda ruta, ya que es la más sencilla. Aquí no necesitamos actualizar la política; simplemente escribiremos de vuelta en la fila que no se necesitaba ninguna actualización. Clona el módulo de Actualizar fila y arrástralo a la segunda ruta, edítalo para que quede configurado así:


Recuerda que la columna D es nuestro campo “Update status code”.
Ahora centremos nuestra atención en la primera ruta, donde realizaremos una llamada de actualización a la API de OnDMARC. En lugar de configurar un nuevo módulo HTTP desde cero, clona y renombra el primero, y luego arrástralo a la ruta. Las rutas deberían tener este aspecto:
Ahora necesitamos modificar la llamada a la API porque ya no queremos obtener la configuración actual, sino que queremos enviar una nueva configuración. Usaremos el mismo endpoint de la API, pero en lugar de una llamada GET, usaremos una llamada PATCH, con información adicional en el cuerpo para especificar los cambios de configuración que queremos. Configúralo de la siguiente manera:
Recuerda cambiar el Método a PATCH, mantener los mismos encabezados de Autorización, e incluir lo siguiente en el contenido o cuerpo de la solicitud:
[{
"key": "sp",
"value": "reject"
}]Esto actualiza la política de subdominio del dominio en cuestión, dejando todo lo demás igual.
Ahora, añadamos una última escritura de confirmación a Google Sheets. Clona, renombra y arrastra el módulo de Google Sheets “Actualizar una fila” desde la ruta anterior, y configúralo así:


Esto escribirá el código de estado de la respuesta en la columna D, y si el estado es exitoso (código 200), entonces el valor actualizado (“reject”) se escribirá en la columna E, de lo contrario se dejará en blanco.
El escenario completo debería tener este aspecto:


¡Ejecutémoslo!
Si todo está configurado correctamente, los dominios en reject deberían seguir la ruta 1, y los que no están en reject deberían dirigirse por la ruta 2. Y aquí está el resultado en Google Sheets, perfecto:


Conclusión
Este es un gran ejemplo de un caso de uso real para la API de OnDMARC. Vimos cómo cualquiera puede aprovecharla utilizando software de hojas de cálculo como Google Sheets o Microsoft Office 365 como hoja de control, y Make o Zapier como herramienta de automatización para realizar las llamadas a la API. En este ejemplo, usamos la API para actualizar de forma condicional la configuración de Dynamic DMARC de una serie de dominios, pero también es posible realizar cualquier otra acción. Para obtener algunas ideas, puedes consultar la documentación de la API de OnDMARC o simplemente recordar que todo lo que puedes hacer manualmente en la interfaz probablemente también tenga un endpoint de API equivalente que te permita orquestarlo de forma automática.
Nadim serves as Red Sift’s Senior Vice President for Revenue and Business Operations, ensuring the company remains aligned with and responsive to customer needs today and in the future.




