Hablemos sobre .Net y Azure

Mes: diciembre 2020

Azure AD B2C: Una gran bala de plata

El 3 de Octubre de 2020 se llevó a cabo vOpen Tech 2020, la conferencia que antes era conocida como .NET Conf y tuvo sus orígenes en Uruguay por el año 2014. A diferencia de años anteriores, esta edición tuvo dos particularidades: la primera es que fue virtual, producto de la pandemia que está presente a nivel mundial desde Marzo de 2020; y por otro lado tuve el placer de formar parte del Equipo Organizador Global que la llevó adelante.

Mi participación estuvo muy orientada a los aspectos tecnológicos, y se centró en el siguiente desafío: ¿Cómo transformar una conferencia que hasta el momento se había desarrollado en forma presencial, para adaptar todos sus procesos y aplicación móvil a un contexto virtual?

En esta publicación te compartiré mi experiencia y contaré cómo llevamos adelante este desafío, como Azure AD B2C fue clave en la implementación de la solución.

Contexto: de lo presencial a lo virtual

Uno de los grandes desafíos que tuvimos en vOpen Tech 2020 implicó cambiar de forma completa la manera de registrar e interactuar con los participantes, comparado con las ediciones anteriores que eran presenciales y en múltiples países:

  • El registro se llevaba adelante con Eventbrite y el check-in con la lectura de un código QR.
  • Tanto los asistentes como los patrocinadores tenían una aplicación móvil multi-plataforma que les permitía interactuar: registrar visitas al stand, realizar sorteos, y obtener estadísticas.

¿Cómo transformar esta experiencia llevándola al 100% online? Teníamos poco tiempo: apenas un mes para poder resolver estos aspectos, antes de comenzar con la difusión y recepción de pre-registros.

Solución: Azure AD B2C + Azure Functions como base tecnológica

Es importante aclarar que el real desafío no era construir desde cero una experiencia de registro / inicio de sesión / interacción, dado que esto requeriría mucho tiempo (código) y en consecuencia, dinero. El verdadero desafío era hacerlo bueno, bonito y barato.

Elegimos Azure AD B2C + Azure Functions para construir esta experiencia:

  • Azure AD B2C: para todo el sistema de registro, inicio de sesión y perfiles de usuario.
  • Azure Functions: para todo el sistema de back-end de notificaciones y novedades en tiempo real durante el evento virtual.

Vamos a explorar, juntos, qué es Azure AD B2C (dejaremos Azure Functions para otra publicación) y cómo pudimos utilizarla con muy poco código y esfuerzo de configuración.

¿Qué es Azure AD B2C?

Azure AD B2C es un servicio en la nube IAM (Identity Access Management o Administrador de Identidades y Acceso) pero orientado al cliente. Esta construido sobre Azure AD (de aquí todas las funcionalidades especificas de IAM), pero agrega una capa de configuración y personalización de flujos de registro e inicio de sesión que podemos exponer de cara al usuario, sin necesidad de escribir nuestro propio back-end o front-end. En pocas palabras, nos brinda un flujo de registro/inicio de sesión listo para usar sin invertir esfuerzo en desarrollo.

Pantalla de inicio de sesión de vOpen Tech
Pantalla de inicio de sesión de vOpen Tech

Aquí podemos apreciar un inicio de sesión con redes sociales, completamente configurable desde el portal de Azure AD B2C.

Adicionalmente podemos incluir inicio de sesión con usuario y contraseña con tan solo un clic.

Azure AD B2C en acción: ¿Qué nos ofrece?

Una de las características más importantes de este increíble servicio que nos ofrece Azure es que, al estar orientado al cliente final (de ahí el B2C o Business-To-Client), no necesitamos escribir código y es todo configurable desde el mismo portal. Incluso, podemos testear los diferentes flujos de forma muy simple y rápida desde el navegador.

¿Qué mas nos ofrece?

  • Personalización de los atributos de usuarios, Azure AD B2C nos ofrece una lista extensiva de atributos estándar como nombre, apellido, país, etc., o la posibilidad de crear nuestros propios atributos, como Nivel de Inglés por citar un ejemplo. También nos ofrece la habilidad de personalizar la forma en la que mostramos esos atributos (texto libre, selección múltiple, combos, check-boxes, etc.).
  • Integración con redes sociales y servicios externos como Facebook, LinkedIn, Google, Twitter, Github y más. Además, soporta integraciones con cualquier servicio que soporte el protocolo OpenID Connect.
  • Internacionalización, más de 50 idiomas disponibles y la posibilidad de crear un diccionario a medida.
  • Identidad y estilo, diseño de la interfaz de usuario 100% personalizable. De este modo, no tenemos que sacrificar la identidad de nuestra marca o negocio.
  • Administración de perfiles de usuario, además del registro e inicio de sesión, existen flujos para que los usuarios puedan autogestionar la información de sus perfiles.
  • Seguridad, escalabilidad, resiliencia y robustez, ya que Azure AD B2C está montado sobre Azure AD, tenemos disponibles funcionalidades como MFA (Múltiple Factor de Autenticación o Multi-Factor Authentication), validación de correo electrónico, certificados, reportes, exportación a Excel y muchos etcéteras más.

Costos de Azure B2C

Este es quizás el tópico mas importante en lo que tiene que ver con Azure AD B2C, ya que no entender en profundidad como se factura el servicio puede generar gastos que perjudiquen de sobremanera el negocio.

Previo a Noviembre del 2019, el servicio se cobraba utilizando el modelo Por Autenticación, es decir, por cada inicio de sesión de cada usuario durante el mes en curso. Por ejemplo, si dos usuarios realizan 50 inicio de sesiones cada uno durante el mes, se facturan 100 unidades.

En Noviembre del 2019, Azure introdujo el concepto de MAU (Monthly Active Users o Usuarios Mensualmente Activos) para facturar el servicio. ¿Cómo funciona este nuevo modelo?

A diferencia del modelo Por Autenticación, el modelo MAU se factura por usuario activo durante el mes en curso. Siguiendo con el ejemplo anterior, si tenemos dos usuarios que realizan 50 inicio de sesiones cada uno durante un mes, se facturan 2 unidades.

El costo de cada MAU se calcula de la siguiente forma:

  • Los primeros 50000 son totalmente gratis
  • A partir de los 50000, USD 0.00325 por MAU

Como podemos apreciar, es un servicio de muy bajo costo, que incluso nos deja margen para pruebas e investigación. No solo es barato en términos de dinero, sino también en términos de desarrollo, ya que nos permite tener un login multi idioma con registro de usuario, gestión de perfiles e integración con redes sociales en menos de una hora. Si!!! En menos de una hora!!!

Les comparto el webinar “Azure AD B2C para mortales” que realicé en Viernes de Azure para Azure en Español gracias a los genios de Pablo Ariel Di Loreto y Guillermo Bellmann.

Próximos pasos…

En el próximo artículo compartiré un paso a paso de como configurar y comenzar a utilizar nuestro Azure AD B2C, como personalizar nuestros usuarios, idiomas y como implementar nuestro propio estilo y así mantener nuestra identidad intacta.

Eso sí, te pido un poco de paciencia.

Si necesitas asesoramiento o ayuda, si tenés dudas o no sabes cómo comenzar, o te interesa conocer/aprender sobre otros servicios de Azure, contáctame y vemos juntos como encontrar la solución que necesitas.

Lanzamiento .NET 5: Entity Framework Core

En Noviembre del 2020, Microsoft hizo el release oficial de .NET 5, dando así el anteúltimo paso hacia la unificación con .NET Framework.

Este nuevo release introdujo una increíble cantidad de nuevas funcionalidades y mejoras, y como no podía ser de otra manera, EntityFramework también fue parte del espectáculo.

Junto con el equipo de ConoSur.Tech, llevamos adelante una serie de charlas para contarte todas las novedades con lujo de detalles.

En esta oportunidad, en la sesión exclusiva de EntityFramework que compartí con Angel García, estuve hablando sobre los conceptos principales y cómo comenzar a utilizar este framework.

Lanzamiento .NET 5 – Introducción a EntityFramework

Si querés ver el código completo de los ejemplos, lo podrás encontrar en mi GitHub.

© 2021 Facu The Rock

Tema por Anders NorenArriba ↑