Cómo manejar el Multi-Factor Authentication (MFA) de Active Directory en Azure

El Multi-Factor Authentication (MFA) es una medida de seguridad crucial para proteger las cuentas y los datos en entornos de Azure. Sin embargo, al activar el MFA en tu cuenta de Azure, es posible que te enfrentes a desafíos al ejecutar ciertos scripts, como el respaldo automatizado de bases de datos. En este artículo, exploraremos cómo abordar el problema del MFA activado en una cuenta de Azure y proporcionaremos una solución práctica para realizar el respaldo de bases de datos en entornos productivos.

El desafío del MFA en Azure

Cuando ejecutas un script de respaldo de bases de datos en Azure con el MFA activado, es probable que te encuentres con el siguiente error:

"Unable to obtain authentication token using the credentials provided. If your Active Directory tenant administrator has configured Multi-Factor Authentication or if your account is a Microsoft Account, please remove the username and password from the connection string, and then retry."

Como medida de seguridad, se recomienda activar el MFA en todas las cuentas, especialmente al configurar y automatizar el respaldo de entornos productivos. Sin embargo, esto requiere modificaciones en el script original para permitir la autenticación mediante un access.token en lugar de un usuario y contraseña.

Texto del párrafo.png

Solución para el respaldo de bases de datos en entornos con MFA

A continuación, presentamos una solución práctica para adaptar el script de respaldo de bases de datos en entornos de Azure con MFA activado.

  • Guardá los datos sensibles en variables de entorno dentro de Automation Account: Es importante evitar exponer información confidencial, como contraseñas o tokens, directamente en el código del script. Utiliza variables de entorno dentro de Azure Automation para almacenar estos datos y acceder a ellos de forma segura.
  • Importá el módulo 'SqlServer': Este módulo proporciona cmdlets para interactuar con SQL Server y Azure Analysis Services desde PowerShell. Asegurate de importarlo al inicio de tu script.
  • Ajustá la autenticación: En lugar de utilizar el método tradicional de autenticación mediante usuario y contraseña, utiliza el cmdlet "Get-AzAccessToken" para obtener un token de autenticación válido. Este token te permitirá conectarte al servicio de Azure incluso con el MFA activado en tu cuenta.
  • Construí la cadena de conexión: Utilizá la información obtenida en los pasos anteriores, como el nombre del servidor de Analysis Services, las credenciales almacenadas en Azure Automation y el tenant ID, para construir la cadena de conexión necesaria para interactuar con el servicio de Azure.
  • Realizá el respaldo de las bases de datos: Utilizá un bucle "foreach" para iterar a través de las bases de datos y realizar el respaldo según tus necesidades específicas. Puedes personalizar esta sección del script para configurar las opciones de respaldo, como la frecuencia y el formato de los archivos de respaldo.

Conclusiones

Automatizar el respaldo de bases de datos en entornos de Azure con MFA activado puede ser un desafío, pero siguiendo las mejores prácticas y modificaciones descritas en este artículo, podrás superar esta dificultad. Al utilizar el "Automation Account" y un "Runbook" de PowerShell, podrás asegurar copias de respaldo confiables y actualizadas. Adoptar prácticas de seguridad, como el uso de variables de entorno y autenticación mediante tokens, fortalece la protección de los datos sensibles.

Rodrigo Cuello
Rodrigo Cuello

DevOps Engineer