Hola, en este post veremos cómo realizar la creación de un directorio B2C, las configuraciones para agregar una aplicación, la creación de una autenticación Open ID para delegar la autenticación a los usuarios utilizando los servicios de Microsoft y mediante correo electrónico.
Prerrequisitos:
- Una suscripción de Microsoft Azure.
- Tener el rol de global administrator en el directorio del Azure AD
Disclaimer: Dada la constante actualización de las tecnologías de Cloud Computing algunos pasos pueden ser diferentes al momento de leer el artículo, haré el esfuerzo por mantenerlo actualizado, pero podría haber algunas diferencias entre lo que se muestre a continuación y la consola de Azure al momento de la implementación.
Antes de ir a la parte práctica recomiendo este video de John Savill en el que muestra la diferencia y beneficios de Azure AD (aka B2B) y Azure AD B2C:
Registro de una aplicación en el Azure AD
- Ingresar a https://portal.azure.com e ir al recurso de Azure Active Directory en All Services.
- Ir hacia App Registrations y despues dar click en +New Registration
- Le damos un nombre a nuestra aplicación y en los radio buttons seleccionamos la opción de acuerdo a que tipos de usuarios desean ingresar a nuestra aplicación.
- En la parte de abajo dejamos el valor como web y vamos a armar la URL para preparar la conexión con el directorio del Azure AD B2C el cual tiene esta sintaxis: https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp en donde your-B2C-tenant-name será el nombre que le pondremos a nuestro directorio Azure AD B2C, el cual puede ser dado de esta manera: https://vvillar.b2clogin.com/vvillar.onmicrosoft.com/oauth2/authresp y despues dar click en Register.
- Guardar los valores de Application (client) ID el cual se usará más adelante
- Después crearemos un secret que será utilizado por el Azure AD B2C, para ello ir a Certificates & Secrets > New client secret, aparecerá una ventana en donde le pondremos un nombre al secret y seleccionar la fecha de expiración y dar click en Add
- Copiar el Client Secret (si se sale de la ventana el client secret no se volverá a visualizar)
Creación del Azure Active Directory B2C
- Como paso siguiente vamos a crear el directorio B2C, Ir a +Create a Resource y buscar Azure Active Directory B2C
- Aparecerá una nueva ventana, dar click en Create
- En la siguiente ventana tendremos dos opciones que en realidad son dos pasos, el primero es crear el directorio (tenant) del Azure AD B2C, dar click en Create a new Azure AD B2C Tenant
- Damos un nombre a nuestro directorio y el nombre de dominio, en el país podemos dejarlo en United States o seleccionar nuestro país si aparece en la lista. Dar click en Create
- Como paso siguiente vamos a vincular el directorio de Azure AD B2C creado con nuestra suscripción. Cerrar la ventana y dar click en Link an existing Azure AD B2C Tenant to my Azure subscription, aparecerá una ventana en donde escogeremos nuestro directorio, la suscripción, y el resource group (se puede utilizar uno existente o crear uno nuevo).
- Para ir a directorio B2C dar en Azure AD B2C Settings y nos llevará al directorio B2C
Añadir una aplicación de tipo Azure AD B2C
Ahora vamos a añadir una aplicación de tipo Azure AD B2C que nos permita poder manejar diferentes proveedores de identidad y solicitar y proveer a la aplicación de información del usuario.
- Dentro del directorio de Azure AD B2C ir a Applications y click en Add
- Dar un nombre a la aplicación, en WebApp / Wen API dar click en Yes, en Reply URL ingresar https://jwt.ms (es una aplicación que nos permitirá ver los atributos de un usuario), click en Create.
Añadir a un proveedor de identidades de Open ID
- Dentro de del Azure AD B2C seleccionar Identity providers y después New OpenID Connect provider, se abrirá una ventana, allí indicar los siguientes valores:
- Name: VVillar Azure AD
- Metadata url: https://login.microsoftonline.com/<El dominio del Azure AD (no el de B2C)>/.well-known/openid-configuration
- Client ID: El client ID que copiamos
- Client secret:El client secret que copiamos
- User ID: oid
- Display name:
name
- Given name: given_name
- Surname: family_name
- Email: unique_name Dar click en Save
- Para probar el proveedor vamos a crear un flujo para simular la autenticación del usuario para ello ir a User flows (policies) y click en New user flow
- En la siguiente ventana dar click en Sign up and sign in, damos un nombre, seleccionamos email y Open ID; después seleccionamos la información que vamos a recabar y la cual vamos a brindar a la aplicación y después damos click en Create.
Ejecutando el flujo para la autenticación
Ahora vamos a probar la autenticación de la aplicación que creamos y el proveedor de identidad de Open ID que se conecta con el Azure AD y el de email.
- En User Flows dar click al flujo que creamos llamado B2C_1_login.
- En la parte superior dar click en Run user flow, aparecerá una ventana lateral y verificar los valores en la imagen y dar click en el botón Run user flow
- Aparecerá una nueva ventana con los dos tipos de autenticación, la de correo y Azure AD (con Open ID), dar click en VVillar Azure AD para probar el primer tipo de autenticación.
- Nos solicitará dar permisos a la aplicación para leer información del perfil e información básica de la organización.
- Con ello ingresaremos a la página de https://jwt.ms con los atributos de nuestro usuario
- Cuando damos click en la opción de correo nos indicará para crear un usuario junto con un password y nombre.