Compartir a través de


Marco de identidad global de Azure Active Directory B2C

Azure Active Directory B2C es una solución de administración de acceso de identidades de clientes (CIAM) capaz de admitir millones de usuarios y miles de millones de autenticaciones al día. Asimismo, se encarga del escalado y la seguridad de la plataforma de autenticación, de la supervisión y del control automático de amenazas, como la denegación del servicio, la difusión de contraseñas o los ataques por fuerza bruta.

Azure Active Directory B2C (Azure AD B2C) es un servicio independiente de Id. de Microsoft Entra. Se basa en la misma tecnología que Id. de Microsoft Entra, pero con una finalidad distinta. Permite a las empresas compilar aplicaciones orientadas al cliente y, a continuación, permite el registro de aplicaciones de autoservicio.

Azure AD B2C es un servicio distribuido a nivel global formado por varios componentes:

Al crear una solución de Azure AD B2C, debe proporcionar una ubicación para hospedar el servicio. Esta ubicación solo pertenece a la región en la que se almacenarán los datos del perfil de usuario, mientras que el resto del servicio que procesa el inicio de sesión se ejecuta a nivel global.

Por lo general, se implementa un inquilino de Azure AD B2C en la región más cercana a la base de usuarios. De esta manera, se facilita el cumplimiento de las leyes de residencia de datos, ya que el perfil de usuario solo se replica en la región seleccionada. De esta manera, también se proporciona el mejor rendimiento durante el inicio de sesión, ya que las latencias de red se optimizan para el almacén de directorios.

Cuando el directorio de Azure AD B2C requiere dar servicio a usuarios de todo el mundo, la estructura regional supone un reto. Debe determinar en qué ubicación se va a crear el inquilino de Azure AD B2C. Es posible que los usuarios fuera de la región seleccionada no cumplan los requisitos de residencia de datos y también puedan experimentar una mayor latencia al comprobar las credenciales o leer los datos de perfil de usuario.

Por ejemplo, considere una aplicación que admite usuarios en Australia y Norteamérica, y el directorio Azure AD B2C se crea en la región de Norteamérica. Es posible que los usuarios que inicien sesión desde Australia tengan que esperar más tiempo para completar la autenticación.

Para cumplir mejor los requisitos de residencia de datos y mitigar los problemas de rendimiento, debe implementar varios inquilinos de Azure AD B2C. Al colocar un inquilino en cada región donde opera la empresa, las operaciones en el directorio se optimizan para la latencia. Sin embargo, al hacerlo, la solución crea otros gastos generales para configurar, administrar y proteger estos recursos confidenciales de inquilinos en cada región. Otras sobrecargas incluyen:

  • Administración de inquilinos

  • Aislamiento de inquilinos que da lugar a una experiencia de usuario final que no parece global

  • Facturación

  • Procesos de CI/CD para administrar directivas y registros de aplicaciones o claves

En este documento se proponen arquitecturas con Azure AD B2C que se adaptan mejor a las soluciones para clientes que atienden a usuarios de todo el mundo. Las soluciones cumplen los siguientes requisitos:

  • Los usuarios pueden mantener el mismo conjunto de credenciales, independientemente del lugar desde el que accedan a las aplicaciones.

  • Rendimiento y latencia coherentes independientemente de dónde se autentiquen los usuarios.

  • Facilitar a los clientes la entrega de procesos, marcos o SDK a los equipos de desarrolladores con la menor configuración posible.

  • Los perfiles de usuario se pueden mantener mientras los usuarios viajan por todo el mundo. Así, se crea más valor en el análisis que generan las interacciones del usuario en cualquier servicio.

  • Los datos de usuarios clientes se almacenan en almacenes de datos regionales.

A continuación se muestran dos enfoques que se deben tener en cuenta al implementar una plataforma de identidad mediante inquilinos de Azure AD B2C para un modelo de negocio que opera a nivel global.

  • El primer enfoque usa regiones geográficas, ya que los límites y las aplicaciones se configuran específicamente para la región.

  • El segundo enfoque tiene un límite global para las aplicaciones y usa un inquilino de Azure AD B2C adicional para orquestar la interacción entre inquilinos regionales.

Orquestación regional de inquilinos

En este modelo, las aplicaciones se hospedan por región, o bien tienen configuraciones por regiones para conectarse a un inquilino regional. Las aplicaciones envían directamente al usuario a un inquilino específico de la región. La comunicación entre inquilinos se usa para realizar autenticaciones o actualizaciones de perfiles entre inquilinos, cuando el usuario puede haber viajado a una región diferente.

Orquestación regional de inquilinos

Orquestación de inquilinos de embudo

En este modelo, un inquilino de Azure AD B2C canaliza a los usuarios a inquilinos regionales de Azure AD B2C. El inquilino de embudo funciona como un orquestador de redireccionamiento a otros inquilinos de Azure AD B2C. Esto se controla mediante un componente del servicio Azure AD B2C distribuido a nivel global, por lo que el rendimiento no se ve afectado. Esta redirección se realiza mediante federaciones de proveedores de identidad de OpenId Connect.

La comunicación entre inquilinos se usa para realizar autenticaciones o actualizaciones de perfiles entre inquilinos. El inquilino de embudo proporciona a las aplicaciones un único punto de conexión con el que comunicarse.

Orquestación de inquilinos de embudo

La arquitectura con la que decida modelar la solución requiere tomar decisiones basadas en los intercambios entre los dos modelos que se describen. Por ejemplo, el modelo de embudo permite mantener una única instancia de aplicaciones. En la sección siguiente se describen las funcionalidades, los criterios de selección y el rendimiento que pueden influir en el diseño que elija.

Funcionalidades y consideraciones

En la tabla siguiente se describen las funcionalidades que se proporcionan mediante un diseño regional frente a otro basado en embudos:

Capacidad Basado en regiones Basado en embudos
Admite el registro y el inicio de sesión de la cuenta local Casilla Casilla
Admite el registro y el inicio de sesión de cuentas federadas Casilla Casilla
Admite la autenticación de cuentas locales para los usuarios que inician sesión desde fuera de la región registrada Casilla Casilla
Admite la autenticación de cuentas federadas para los usuarios que inician sesión desde fuera de la región registrada mediante una búsqueda basada en la API entre inquilinos Casilla Casilla
Impide el registro desde varias regiones diferentes Casilla Casilla
Las aplicaciones de cada región disponen de un conjunto de puntos de conexión para conectarse Casilla
Todas las aplicaciones se conectan a un único conjunto de puntos de conexión, independientemente de la región en que se hospeden Casilla
Admite directivas de acceso condicional específicas. Casilla
Optimizado para el costo. Casilla

En función de las funcionalidades, se deben tener en cuenta las siguientes consideraciones:

  • Al usar el enfoque basado en regiones, la consideración principal consiste en que el enfoque requiere que las aplicaciones que abarcan varias regiones tengan las configuraciones correspondientes para cada inquilino regional de Azure AD B2C.

  • Al usar el enfoque basado en embudos

    • Existe un costo de doble token

    • Se ha introducido una redirección HTTP adicional

    • Se requieren dominios personalizados en muchos inquilinos

    • El acceso condicional se aplica en el nivel de inquilino, no en el de aplicación

    • El cierre de sesión único a través de varios IdP puede plantear problemas

El enfoque que elija dependerá del número de aplicaciones que hospede y de los requisitos específicos de acceso a las aplicaciones.

Rendimiento

La ventaja de rendimiento que supone el uso de varios inquilinos, ya sea en la configuración regional o en la que se basa en embudos, supondrá una mejora con respecto al uso de un único inquilino de Azure AD B2C para empresas que operan a nivel global.

Cuando se utiliza el enfoque basado en embudos, el arrendatario del embudo se encuentra en una región específica y sirve a los usuarios de forma global. Dado que la operación de inquilinos de embudo utiliza un componente global del servicio Azure AD B2C, mantiene un nivel constante de rendimiento independientemente de dónde inicien sesión los usuarios.

Captura de pantalla que muestra la arquitectura de Azure AD B2C.

Tal y como se muestra en el diagrama anterior, el inquilino de Azure AD B2C en el enfoque basado en embudos solo usará el motor de directivas para realizar el redireccionamiento a inquilinos regionales de Azure AD B2C. El componente, motor de directivas de Azure AD B2C, se distribuye a nivel global. Por tanto, el embudo no está limitado desde el punto de vista del rendimiento, independientemente de dónde se aprovisione el inquilino de embudo de Azure AD B2C. Se produce una pérdida de rendimiento debido a la redirección adicional entre los inquilinos de embudo y regionales en el enfoque basado en embudos.

En el enfoque basado en regiones, como cada usuario se dirige a su instancia de Azure AD B2C más local, el rendimiento es coherente para todos los usuarios que inician sesión.

Los inquilinos regionales realizarán llamadas de directorio al Almacén de directorios, que es el único componente regionalizado en las arquitecturas basadas en embudo y en regiones.

Sólo se produce latencia adicional cuando el usuario ha realizado una autenticación en una región distinta de aquella en la que se había registrado. Esto se debe a que las llamadas se realizan entre regiones para llegar al almacén de directorios, donde reside su perfil para completar la autenticación.

Pasos siguientes