Hablemos sobre .Net y Azure

Categoría: Azure (Página 2 de 2)

Azure AD B2C: Primeros pasos y configuración inicial

Hace unas pocas semanas escribí este artículo contando como Azure AD B2C fue una pieza fundamental para lograr que vOpen Tech 2020 se transforme de ser una conferencia presencial a una conferencia totalmente virtual. El gran desafío era hacerlo en poco tiempo y a un bajo costo.

En este artículo te contaré, paso a paso (incluyendo capturas de pantalla), en forma simple y ágil, como comenzar a utilizar y configurar Azure AD B2C. Luego veremos en sucesivos artículos como ir personalizando nuestro Azure AD B2C para adaptarlo a nuestra marca y necesidad.

IMPORTANTE: para poder comenzar a utilizar cualquier recurso de Azure es necesario contar con una cuenta, incluso para utilizar servicios gratuitos. Si todavía no tienes una cuenta, puedes comenzar creando una cuenta gratis aquí.

Los pasos a seguir

Para poder comenzar a utilizar Azure AD B2C necesitamos realizar los siguientes 3 pasos:

  1. Crear una instancia
  2. Registrar una aplicación
  3. Crear un flujo de usuarios

Sin más preámbulos, comencemos a trabajar.

1. Crear la instancia

Lo primero que debemos hacer es crear una nueva instancia o tenant de Azure AD B2C, la cual albergará la base de datos de usuarios, configuraciones, aplicaciones, etc. Para esto hacemos clic en la opción Crear un recurso, el portal nos ofrecerá la opción de recorrer las diferentes categorías o podemos utilizar el buscador tipeando “b2c”.

Azure AD B2C – Creación de Recurso
  1. Azure Active Directory B2C será una de las primeras opciones, haremos clic en esta opción.
  2. Luego, en la página de bienvenida clicaremos en el botón crear.
  3. Antes de ir a pantalla de creación, el portal nos ofrecerá la opción de Crear un nuevo tenant o vincular uno existente a una suscripción. Tomamos la primer opción.

Dentro del ecosistema de Azure AD, una instancia se denomina tenant. Puede que se encuentre también como inquilino si el idioma es español.

Azure AD B2C – Creación y configuración de Instancia

Revisión y creación

Finalmente, en la pantalla de creación, completamos los datos requeridos y presionamos el botón para revisar y crear:

  • Nombre de la organización: es el nombre para mostrar e identificar el tenant fácilmente en caso de poseer más de uno.
  • Nombre de dominio inicial: es el nombre del subdominio dentro de Microsoft que formará parte de la ruta o DNS. En este caso, como se aprecia en la imagen, el dominio final será linkedinazureadb2c.onmicrosoft.com. Una vez creado el tenant, se puede configurar un dominio propio, como por ejemplo contoso.com.
  • País o región: centro de datos (data center) donde se desplegaran todos los recursos necesarios. Idealmente, se debe buscar la región mas cercana a los usuarios. Por ejemplo, si nuestra aplicación esta orientada a usuarios en Argentina, la recomendación es la región de Brasil.
  • Suscripción: nuestro tenant necesita estar asociado a una subscripción por temas de facturación, en caso de contar con mas de una, aquí es donde podemos elegir.
  • Grupo de recursos: el grupo de recursos para nuestro tenant. Los grupos de recursos son organizadores lógicos, no representan servicios ni recursos en si mismos, solo nos sirven para agrupar y organizar. Para crear un nuevo grupo de recursos podemos seguir este breve instructivo.

El proceso de creación puede demorar unos minutos, una vez finalizado, lo único que nos resta por hacer es navegar a nuestro nuevo tenant para comenzar a configurarlo. Para esto podemos navegar a la lista de recursos y hacer clic en nuestro tenant.

Azure AD B2C – Acceso a Instancia

La pantalla de inicio de Azure AD B2C se ve así.:

Azure AD B2C – Dashboard

2. Registrar una Aplicación

Para poder utilizar el tenant que acabamos de crear necesitamos registrar una aplicación. Pero, ¿Qué es una aplicación?

Azure AD B2C contiene información confidencial de nuestros usuarios que es utilizada por uno o más sistemas autorizados. Un requisito fundamental es que podamos compartir esta información entre el tenant y estos sistemas de forma segura, y para esto necesitamos asegurarnos que quién solicita dicha información es realmente un sistema autorizado y configurado por nosotros.

Una aplicación es la forma en la que configuraremos e identificaremos estos sistemas para garantizar un acceso seguro.

¿Cómo funciona?

Azure AD B2C – Diagrama de Secuencia

Cuando un usuario quiera registrarse o iniciar sesión en nuestro sitio web, será redireccionado a nuestro tenant. Azure AD B2C validará las credenciales del usuario (o lo registrará si fuese necesario) y luego devolverá un token JWT a nuestro sitio web para que luego sea usado para identificar al usuario. El token contiene la información del usuario que la aplicación esta autorizada a utilizar.

Nuevo registro de aplicación

Registros de Aplicaciones – Nuevo registro

Para poder registrar una nueva aplicación, debemos navegar a la sección de Registros de aplicaciones situada sobre el panel de la izquierda y luego ir a Nuevo Registro.

Registros de Aplicaciones – Registrar aplicación

Solo necesitamos completar el Nombre y vamos a agregar una URI de redirección, dejaremos los demás campos con sus valores por defecto.

En este caso elegí como nombre Sitio Web Increíble y como URI de redirección https://jwt.ms/.

La URI de redirección debe ser una dirección valida de nuestra aplicación. Estamos usando https://jwt.ms/ solo a fines prácticos hasta tanto integremos nuestras APIs y Apps.

Registros de Aplicaciones – Lista de aplicaciones

Por último, solo nos falta configurar nuestra aplicación para que retorne los tokens JWT que necesitamos, con la información del usuario o claims incluida. De lo contrario, el token estará vacío.

Para esto, tenemos que acceder a la opción de Registros de Aplicaciones y luego navegar a nuestra aplicación.

Registros de Aplicaciones – Authenticación

Una vez ahí, en la sección Autenticación, habilitamos las opciones de Access Tokens y ID Tokens que se encuentran casi al final.

Por último, guardamos los cambios.

Cuando se trata de tokens JWT, los atributos de un usuario, como nombre y apellido, se denominan Claims.

Ya tenemos nuestra aplicación con una configuración base. Más adelante volveremos para realizar configuraciones mucho mas específicas, pero para comenzar, la configuración que acabamos de realizar es suficiente.

3. Crear un flujo de usuario

Los flujos de usuario tienen un papel central dentro de Azure AD B2C ya que definen como validar la identidad de un usuario y/o registrar uno nuevo, es decir, que información se le solicita al usuario, que datos son obligatorios y cuales no, si debe ser un tipo de campo de selección múltiple, texto simple o selección simple, y todo lo relacionado a la experiencia de usuario en cuanto al proceso de autenticación. Azure AD B2C ofrece cinco flujos de usuario:

  • Registro
  • Inicio de Sesión
  • Registro e Inicio de sesión (es la combinación de los dos primeros)
  • Edición de perfil de usuario
  • Restablecimiento de contraseña
Flujo de Usuario – Nuevo flujo de usuario

Vamos a comenzar creando un nuevo flujo de usuario de Registro e Inicio de sesión.

Para esto, tenemos que ir a la sección de Flujos de Usuario sobre el panel de la izquierda y clicar sobre la opción Nuevo flujo de usuario.

Flujo de Usuario – Crear flujo de usuario

Para nuestro ejemplo usaremos el flujo Registrarse o iniciar sesión, el cual le dará al usuario la opción de registrarse en caso todavía no exista.

Muchas veces, Iniciar sesión y Registrarse se inician desde acciones separadas desde el Front End, es por eso que tenemos cada flujo en forma independiente.

Flujo de Usuario – Crear nuevo flujo de usuario

Revisión del flujo de usuario

Finalmente, llegamos a la pantalla de creación. Veamos que necesitamos en cada sección.

  • 1. Nombre – Además de ser único, debemos tener en cuenta que podemos tener mas de un flujo del mismo tipo. Por ejemplo, podemos tener dos flujos de registro.
  • 2. Proveedores de Identidad – Por el momento la única opción disponible será Email Sigup, pero aquí se listarán proveedores externos también (como LinkedIn, Google, etc.).
  • 5. Atributos de usuario – Aquí es donde incluiremos qué información del usuario recopilar y qué información incluir en los tokens. Por el momento incluiremos información básica como nombre y apellido
  • El resto de las opciones, los valores recomendados son suficiente.
Flujo de Usuario – Lista de flujos de usuario

Ya lo tenemos listo! Ya estamos en condiciones de comenzar a utilizar nuestro flujo y registrar un nuevo usuario. Navegando nuevamente a la sesión de Flujos de usuario, veremos nuestro nuevo flujo de usuario recientemente creado donde podremos hacer clic para ver el detalle y las opciones disponibles.

¿Cómo lo probamos?

Flujo de Usuario – Dashboard

Ahora nos toca la parte divertida y fascinante. Ya tenemos todo lo necesario configurado, vamos a ver cómo probarlo. Para esto debemos navegar hasta el flujo de usuario y veremos una acción Ejecutar flujo de usuario.

Flujo de Usuario – Ejecutar flujo de usuario

Al hacer clic se desplegará una nueva ventana sobre la derecha, por el momento utilizaremos todas las opciones recomendadas y presionaremos Ejecutar flujo de usuario.

Flujo de Usuario – Inicio de sesión

Al hacerlo, se abrirá en otra ventana nuestro nuevo y flamante inicio de sesión solicitando email y contraseña. Además tenemos disponible la opción para recupero de contraseña (Forgot your password?)

Si prestamos atención, debajo del botón Sign in veremos la opción para registrarse (Sign up now) que nos llevará al flujo de registro de usuario.

Flujo de Usuario – Registro de usuario

El flujo de registro de usuario, incluye validación de email con código de verificación. Azure AD B2C enviara un código al mail ingresado que luego será requerido antes de continuar con el registro, garantizando por un lado que no se trata de un bot, y por el otro que es un mail válido.

También requiere como información adicional al mail y la contraseña los dos atributos adicionales que seleccionamos cuando configuramos el flujo: Nombre y Apellido.

Felicitaciones!!! Acabamos de crear nuestra primer experiencia de usuario utilizando Azure AD B2C. Claro que todavía falta bastante. Seguramente queremos que el flujo funcione con el idioma que nuestros usuario hablan, incluso múltiples idiomas, y no solo en inglés (idioma por defecto), o queremos recolectar información personalizada como “Años de experiencia” y que la cantidad de opciones sea finita. Y por supuesto, queremos nuestra marca y estilo por sobre todas las cosas.

Todo eso es posible y lo iremos descubriendo en sucesivos artículos!

Conclusiones

  • El artículo es un poco extenso! Si, sé que se hizo largo, pero me pareció interesante que como primer paso tengamos algo limitado, pero funcional. Y para eso era necesario cubrir estos tres pasos básicos.
  • Cero código! Esto es importantísimo, no tuvimos la necesidad de escribir código e hicimos todo desde el mismo portal, sin requerir equipamiento especial. Solo con un navegador y conexión a internet.
  • Fácil y rápido! A pesar de lo extenso del articulo, no lleva más de 15 minutos seguir todos estos pasos para configurar todo. ¿Cuánto tiempo nos hubiera tomado hacer esto por nuestros propios medios?
  • Cero costo! No necesitamos hacer ninguna erogación de dinero. Con lo cual, tenemos un ambiente de desarrollo (y por qué no de pruebas también) virtualmente gratis.

Próximos pasos…

En el próximo articulo te voy a contar cómo configurar los atributos de usuario y cómo personalizarlos, veremos cómo crear atributos de selección múltiple (listas de check box), listas desplegables (combo box), selección simple (radio buttons), etc.

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.

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.

Azure Functions en la vida real

Cuándo hablamos de serverless y orientación a eventos, Azure Functions es uno de los primeros servicios en los que se suele pensar.

Este potente servicio, diseñado para escalar sin límites, nos ofrece un sin fin de posibilidades a un costo realmente muy bajo.

Sin embargo, si todavía no tenemos experiencia en el mundo serverless, puede resultar confuso encontrar casos de uso simples donde poder hacer uso.

En esta sesión te cuento cómo podemos comenzar a sacar provecho de Azure Functions con cuatro casos de uso simples y útiles.

Azure Functions en la vida real

Para ver el código completo de los ejemplos, te dejo el repo de github aquí.

Entradas siguientes »

© 2021 Facu The Rock

Tema por Anders NorenArriba ↑