Creación de una solución de identidad global con un enfoque basado en embudos
En este artículo se describen los escenarios del enfoque de diseño basado en embudos. Antes de empezar a diseñar, se recomienda revisar las funcionalidades y el rendimiento del enfoque de diseño basado en embudos y regiones. Este artículo le ayudará a determinar qué diseño puede ajustarse mejor a su organización.
Los diseños se encargan de:
- Registrarse e iniciar sesión en la cuenta local
- Registrarse e iniciar sesión en la cuenta federada
- Autenticación de cuentas locales para los usuarios que inician sesión desde fuera de su región registrada, compatible con la autenticación basada en la API entre inquilinos
- Autenticacar cuentas federadas para los usuarios que inician sesión desde fuera de su región registrada, que es compatible con la búsqueda basada en la API entre inquilinos
- Impide el registro desde varias regiones diferentes
- Las aplicaciones de cada región tienen un único punto de conexión para conectarse
Casos de uso de inicio de sesión en la cuenta local
Los siguientes casos de uso son típicos de un entorno global de Azure AD B2C. Los casos de uso de cuentas locales también cubren las cuentas donde viaja el usuario. Se proporciona un diagrama y los pasos del flujo de trabajo para cada caso de uso.
Registro de usuario local
En este caso de uso se muestra la manera en que un usuario de su país o región de origen realiza un registro con una cuenta local de Azure AD B2C.
Un usuario de Europa, Oriente Medio y África (EMEA) intenta registrarse en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C basado en criterios definidos mediante la federación de OpenId. Puede ser una búsqueda basada en Application clientId.
El usuario intenta registrarse. En el proceso de registro se comprueba la tabla de búsqueda global para determinar si el usuario existe en cualquiera de los inquilinos regionales de Azure AD B2C.
El usuario no se encuentra en la tabla de búsqueda global. La cuenta de usuario se escribe en Azure AD B2C y se crea un registro en la tabla de búsqueda global para realizar un seguimiento de la región en la que se registró el usuario.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Intentos de registro de usuarios locales existentes
En este caso de uso se muestra cómo se bloquea a un usuario que vuelve a registrar el mismo correo electrónico desde su propio país o región, o bien desde una región diferente.
El usuario de EMEA intenta registrarse en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en Application clientId.
El usuario intenta registrarse. En el proceso de registro se comprueba la tabla de búsqueda global para determinar si el usuario existe en cualquiera de los inquilinos regionales de Azure AD B2C.
El correo electrónico del usuario se encuentra en la tabla de búsqueda global, lo que indica que el usuario ha registrado este correo electrónico en la solución en algún momento anterior.
Al usuario se le presenta un error, que indica que su cuenta existe.
Inicio de sesión de usuario local
En este caso de uso se muestra cómo un usuario de su país o región de origen realiza un inicio de sesión con una cuenta local de Azure AD B2C.
El usuario de EMEA intenta registrarse en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario introduce las credenciales en el inquilino regional.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Inicio de sesión del usuario que está de viaje
En este caso de uso se muestra la manera en que un usuario puede viajar entre regiones y mantener su perfil de usuario y credenciales almacenadas en el inquilino regional correspondiente a su registro.
Un usuario de Norteamérica (NOAM) intenta iniciar sesión en myapp.fr mientras se encuentra de vacaciones en Francia. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario introduce las credenciales en el inquilino regional.
El inquilino regional realiza una búsqueda en la tabla de búsqueda global, ya que el correo electrónico del usuario no se encontró en el directorio Azure AD B2C de EMEA.
El correo electrónico del usuario se encuentra registrado en el inquilino de Azure AD B2C de NOAM.
El inquilino de Azure AD B2C de EMEA realiza un flujo ROPC de Microsoft Entra contra el inquilino de AZURE AD B2C de NOAM para comprobar las credenciales.
Nota:
Esta llamada también capturará un token para que el usuario realice una llamada Graph API. El inquilino de Azure AD B2C de EMEA realiza una llamada Graph API al inquilino de Azure AD B2C de NOAM a fin de capturar el perfil de usuario. Esta llamada se autentica mediante el token de acceso a Graph API que se adquiere en el último paso.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
El usuario local ha olvidado la contraseña
En este caso de uso se muestra la manera en que un usuario puede restablecer la contraseña cuando se encuentra en su país o región de origen.
El usuario de EMEA intenta registrarse en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario llega al inquilino de Azure AD B2C de EMEA y selecciona contraseña olvidada. El usuario escribe y comprueba el correo electrónico.
Se realiza una búsqueda de correo electrónico para determinar en qué inquilino regional se encuentra el usuario.
El usuario proporciona una contraseña nueva.
La contraseña nueva se escribe en el inquilino de Azure AD B2C de EMEA.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
El usuario que está de viaje ha olvidado la contraseña
En este caso de uso se muestra la manera en que un usuario puede restablecer la contraseña cuando viaja fuera de la región en la que registró la cuenta.
Un usuario de NOAM intenta iniciar sesión en myapp.fr, ya que se encuentra de vacaciones en Francia. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario llega al inquilino de Azure AD B2C de EMEA y selecciona contraseña olvidada. El usuario escribe y comprueba el correo electrónico.
Se realiza una búsqueda de correo electrónico para determinar en qué inquilino regional se encuentra el usuario.
El correo electrónico existe en el inquilino de Azure AD B2C de Noam. El usuario proporciona una contraseña nueva.
La nueva contraseña se escribe en el inquilino de Azure AD B2C de NOAM a través de una llamada Graph API.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Cambio de contraseña de usuario local
En este caso de uso se muestra la manera en que un usuario puede cambiar la contraseña después de haber iniciado sesión en la región en la que registró la cuenta.
Un usuario de EMEA intenta cambiar la contraseña después de iniciar sesión en myapp.fr.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario llega al inquilino de Azure AD B2C de EMEA y el conjunto de cookies de inicio de sesión único (SSO) le permite cambiar la contraseña de inmediato.
La nueva contraseña se escribe en la cuenta de usuario en el inquilino de Azure AD B2C de EMEA.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Cambio de contraseña del usuario que está de viaje
En este caso de uso se muestra la manera en que un usuario puede cambiar la contraseña después de haber iniciado sesión lejos de la región en la que registró la cuenta.
El usuario de NOAM intenta cambiar la contraseña después de iniciar sesión en myapp.fr.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario llega al inquilino de Azure AD B2C de EMEA y el conjunto de cookies de inicio de sesión único le permite cambiar la contraseña de inmediato.
El correo electrónico del usuario se encuentra en el inquilino de NOAM después de comprobar la tabla de búsqueda global.
La nueva contraseña se escribe en la cuenta de usuarios del inquilino de Azure AD B2C de NOAM mediante la llamada MS Graph API.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Autenticaciones del proveedor de identidades federadas
Los siguientes casos de uso muestran ejemplos de uso del uso de identidades federadas para registrarse o iniciar sesión como un cliente de Azure AD B2C.
Registro del id. federado local
En este caso de uso se muestra la manera en que un usuario se registra en el servicio desde su región local mediante un id. federado.
El usuario de EMEA intenta registrarse en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario opta por iniciar sesión con un proveedor de identidades federado (IdP).
Realice una búsqueda en la tabla de búsqueda global.
Si la vinculación de la cuenta está en el ámbito: puede continuar si el identificador del IdP federado o el correo electrónico que devolvió el IdP federado no existen en la tabla de búsqueda.
Si la vinculación de la cuenta no está en el ámbito: puede continuar si el identificador del IdP que ha devuelto el IdP federado no existe en la tabla de búsqueda.
Escriba la cuenta de usuarios en el inquilino de Azure AD B2C de EMEA.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Inicio de sesión de usuario federado local
En este caso de uso se muestra la manera en que un usuario de su región local inicia sesión en el servicio mediante un id. federado.
El usuario de EMEA intenta registrarse en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario opta por iniciar sesión con un proveedor de identidades federado.
Realice una búsqueda en la tabla de búsqueda global y confirme que el id. federado del usuario está registrado en EMEA.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Inicio de sesión de usuario federado que está de viaje
En este caso de uso se muestra cómo un usuario puede iniciar sesión en su cuenta con un IdP federado, mientras se encuentra fuera de la región en la que se registró.
Un usuario de NOAM intenta iniciar sesión en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario opta por iniciar sesión con un proveedor de identidades federado.
Nota:
Use el mismo id. de aplicación del registro de aplicaciones en el IdP social en todos los inquilinos regionales de Azure AD B2C. De esta manera se garantiza que el id. que devuelve el IdP social siempre es el mismo.
Realice una búsqueda en la tabla de búsqueda global y determine que el id. federado del usuario está registrado en NOAM.
Puede leer los datos de la cuenta del inquilino de Azure AD B2C de NOAM mediante MS Graph API.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Vinculación de cuentas con criterios de coincidencia
En este caso de uso se muestra cómo los usuarios pueden realizar la vinculación de cuentas cuando se cumplen los criterios de coincidencia. Los criterios de coincidencia suelen ser las direcciones de correo electrónico de los usuarios. Cuando los criterios coincidentes de un inicio de sesión desde un nuevo proveedor de identidades tienen el mismo valor para una cuenta existente en Azure AD B2C, el proceso de vinculación de la cuenta puede comenzar.
El usuario de EMEA intenta registrarse en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario selecciona iniciar sesión con un proveedor de identidades federado o un IdP social.
Se realiza una búsqueda en la tabla de búsqueda global del id. que ha devuelto el IdP federado.
Cuando el id. no existe, pero el correo electrónico del IdP federado existe en Azure AD B2C de EMEA, se trata de un caso de uso de vinculación de cuentas.
Puede leer usuario del directorio y determinar los métodos de autenticación que están habilitados en la cuenta. Muestre una pantalla para que el usuario inicie sesión con un método de autenticación existente en esta cuenta.
Una vez que el usuario demuestre que posee la cuenta en Azure AD B2C, agregue el nuevo id. social a la cuenta existente y el id. social a la cuenta en la tabla de búsqueda global.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.
Vinculación de cuentas de usuario que está de viaje con criterios de coincidencia
En este caso de uso se muestra la manera en que los usuarios que no son locales pueden realizar la vinculación de cuentas cuando se cumplen los criterios de coincidencia. Los criterios de coincidencia suelen ser las direcciones de correo electrónico de los usuarios. Cuando los criterios coincidentes de un inicio de sesión desde un nuevo proveedor de identidades tienen el mismo valor para una cuenta existente en Azure AD B2C, el proceso de vinculación de la cuenta puede comenzar.
Un usuario de NOAM intenta iniciar sesión en myapp.fr. Si no se envía al usuario a su instancia de aplicación local, el administrador de tráfico aplica un redireccionamiento.
El usuario llega al inquilino global de Azure AD B2C de embudo. Este inquilino está configurado para redirigir a un inquilino regional de Azure AD B2C en función de algunos criterios mediante la federación de OpenId. Puede ser una búsqueda basada en el ClientId de la aplicación.
El usuario selecciona iniciar sesión con un proveedor de identidades federado o un IdP social.
Se realiza una búsqueda en la tabla de búsqueda global del id. que ha devuelto el IdP federado.
Cuando el id. no existe y el correo electrónico del IdP federado existe en otra región, se trata de un caso de uso de vinculación de cuentas de un usuario que está de viaje.
Cree un vínculo de id_token_hint que afirme las notificaciones que recopilan actualmente los usuarios. Inicie un recorrido en el inquilino de Azure AD B2C de NOAM mediante la federación. El usuario demuestra que posee la cuenta a través del inquilino de Azure AD B2C de NOAM.
Nota:
Este método se usa para volver a utilizar la lógica de vinculación de cuentas existente en el inquilino principal y reducir las llamadas API externas a fin de manipular la colección de identidades. Puede encontrar un ejemplo de directiva personalizada que usa id_token_hint aquí.
Una vez que el usuario demuestre que posee la cuenta en Azure AD B2C, agregue el nuevo id. social a la cuenta existente mediante una llamada Graph API al inquilino de Azure AD B2C de NOAM. Agregue el id. social a la cuenta en la tabla de búsqueda global.
El inquilino regional devuelve un token al inquilino de embudo.
El inquilino de embudo emite un token a la aplicación.