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:
Directorio
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 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.
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 |
![]() |
![]() |
Admite el registro y el inicio de sesión de cuentas federadas |
![]() |
![]() |
Admite la autenticación de cuentas locales para los usuarios que inician sesión desde fuera de la región registrada |
![]() |
![]() |
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 |
![]() |
![]() |
Impide el registro desde varias regiones diferentes |
![]() |
![]() |
Las aplicaciones de cada región disponen de un conjunto de puntos de conexión para conectarse |
![]() |
|
Todas las aplicaciones se conectan a un único conjunto de puntos de conexión, independientemente de la región en que se hospeden |
![]() |
|
Admite directivas de acceso condicional específicas. |
![]() |
|
Optimizado para el costo. |
![]() |
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.
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
Configuración basada en regiones de prueba de concepto de identidad global de Azure AD B2C
Configuración basada en embudos de prueba de concepto de identidad global de Azure AD B2C
Creación de una solución de identidad global con un enfoque basado en embudos
Creación de una solución de identidad global con un enfoque basado en regiones