Añade un segundo factor de autenticación a tus aplicaciones con el MFA de Microsoft Azure

Es importante que algunas de las operaciones que los usuarios llevan a cabo en nuestras aplicaciones tengan un nivel de seguridad superior al que pueda ser un simple login al inicio de la misma. Es por ello que hoy te quiero contar cómo puedes utilizar Azure Multi-factor Authentication como segundo factor a través del SDK que proporciona la plataforma.

Lo primero que debes hacer es dar de alta un provider de MFA en el portal clásico de azure y asociarlo al Azure Active Directory que elijas.

Create MFA provider
Create MFA provider

Una vez creado, aparecéra la opción de acceder al portal de MFA a través del botón MANAGE que aparece en la parte inferior.

MFA - Manage
MFA – Manage

Este botón te llevará a un nuevo portal donde podrás descargar un código de ejemplo en diferentes lenguajes (Perl, Ruby, PHP, ASP.NET y Java), haz clic sobre el enlace y descarga para este ejemplo el SDK para ASP.NET 2.0 C#.

MFA portal - SDK
MFA portal – SDK

Al descargar dicho zip obtendrás un código de ejemplo con las clases necesarias para llamar al servicio, además de un certificado generado especificamente para tu proveedor de MFA. Después de desbloquear y descomprimir el proyecto, puedes abrirlo con Visual Studio a través de la opción Open > Web Site…

 

Visual Studio - Open - Web Site
Visual Studio – Open – Web Site

Si ejecutas el sitio web, es posible que te encuentres con algunos errores inicialmente:

MFA - SDK ASP.NET - Errors
MFA – SDK ASP.NET – Errors

Estos son de fácil solución, ya que lo único que ocurre es que no encuentra la clase PfAuthParams que se encuentra en el archivo pf_auth.cs. Para hacer funcionar el ejemplo, podemos crear la carpeta App_Code y reubicar dicho archivo en ella.

Visual Studio - Open - Web Site
Visual Studio – Open – Web Site

De esta forma, el code behind de la página web será capaz de resolverlo. Por otro lado es necesario modificar el código fuente para decirle dónde puede localizar el certificado generado dentro del zip, ya que en el código lo buscará en C:\\cert_key.p12 como aparece en las diferentes opciones en el archivo example.aspx.cs

MFA - PfAuthParams.CertFilePath
MFA – PfAuthParams.CertFilePath

Si queremos dejarlo por el momento donde está, para comprobar el funcionamiento del servicio, podemos cambiar la ruta de la propiedad CertFilePath a la dirección absoluta del certificado que se encuentra en pf\certs\cert_key.p12

Pero eso no es todo, como último punto hay un valor que no está parametrizado y es el código del país donde nos encontramos. Si estás en España, el código que debes añadir es el 34 en la constante CountryCode del archivo pf_auth.cs

MFA - pf_auth.cs - CountryCode
MFA – pf_auth.cs – CountryCode

¡Ya estás listo para lanzar el sitio web y probar MFA! Arráncalo e introduce los siguientes valores:

MFA – Test options

Al seleccionar esta opción recibirás un mensaje de texto al número de teléfono que hayas introducido con la siguiente información:

MFA – OPT SMS One Way

El texto del mensaje puede ser modificado si así lo deseas, cambiando el valor de la propiedad pfAuthParams.SmsText.

Con estos pasos ya puedes comenzar a jugar y valorar todas las posibilidades que te ofrece Azure Multi-Factor Authentication e integrarlo con tus desarrollos.

¡Saludos!