Flujos de usuario en Azure Active Directory B2CUser flows in Azure Active Directory B2C

El marco de directiva extensible de Azure Active Directory (Azure AD) B2C es la fortaleza esencial del servicio.The extensible policy framework of Azure Active Directory (Azure AD) B2C is the core strength of the service. Las directivas describen totalmente las experiencias de identidad tales como el registro, el inicio de sesión y la edición de perfil.Policies fully describe identity experiences such as sign-up, sign-in, or profile editing. Para ayudarle a configurar las tareas más comunes de identidad, el portal de Azure AD B2C incluye directivas predefinidas y configurables denominadas flujos de usuario.To help you set up the most common identity tasks, the Azure AD B2C portal includes predefined, configurable policies called user flows.

¿Qué son los flujos de usuario?What are user flows?

Un flujo de usuario le permite controlar los comportamientos en sus aplicaciones al configurar los siguientes valores:A user flow enables you to control behaviors in your applications by configuring the following settings:

  • Tipos de cuenta utilizados para iniciar sesión, como cuentas de redes sociales (como Facebook) o cuentas localesAccount types used for sign-in, such as social accounts like a Facebook or local accounts
  • Atributos que se recopilarán del consumidor durante el registro, como el nombre, código postal y número de calzadoAttributes to be collected from the consumer, such as first name, postal code, and shoe size
  • Azure Multi-Factor AuthenticationAzure Multi-Factor Authentication
  • Personalización de la interfaz de usuarioCustomization of the user interface
  • Información que la aplicación recibe como notificaciones en un tokenInformation that the application receives as claims in a token

Puede crear muchos flujos de usuario de diferentes tipos en su inquilino y usarlos en sus aplicaciones según sea necesario.You can create many user flows of different types in your tenant and use them in your applications as needed. Los flujos de usuario se pueden volver a usar en todas las aplicaciones.User flows can be reused across applications. Esta flexibilidad le permite definir y modificar las experiencias de identidad con cambios mínimos o ningún cambio en el código.This flexibility enables you to define and modify identity experiences with minimal or no changes to your code. La aplicación desencadena un flujo de usuario mediante una solicitud de autenticación HTTP estándar que incluye un parámetro de flujo de usuario.Your application triggers a user flow by using a standard HTTP authentication request that includes a user flow parameter. Se recibe un token personalizado como respuesta.A customized token is received as a response.

En los ejemplos siguientes se muestra el parámetro de cadena de consulta "p" que especifica el flujo de usuario que se usará:The following examples show the "p" query string parameter that specifies the user flow to be used:

https://contosob2c.b2clogin.com/contosob2c.onmicrosoft.com/oauth2/v2.0/authorize?
client_id=2d4d11a2-f814-46a7-890a-274a72a7309e      // Your registered Application ID
&redirect_uri=https%3A%2F%2Flocalhost%3A44321%2F    // Your registered Reply URL, url encoded
&response_mode=form_post                            // 'query', 'form_post' or 'fragment'
&response_type=id_token
&scope=openid
&nonce=dummy
&state=12345                                        // Any value provided by your application
&p=b2c_1_siup                                       // Your sign-up user flow
https://contosob2c.b2clogin.com/contosob2c.onmicrosoft.com/oauth2/v2.0/authorize?
client_id=2d4d11a2-f814-46a7-890a-274a72a7309e      // Your registered Application ID
&redirect_uri=https%3A%2F%2Flocalhost%3A44321%2F    // Your registered Reply URL, url encoded
&response_mode=form_post                            // 'query', 'form_post' or 'fragment'
&response_type=id_token
&scope=openid
&nonce=dummy
&state=12345                                        // Any value provided by your application
&p=b2c_1_siin                                       // Your sign-in user flow

Versiones del flujo de usuarioUser flow versions

En Azure Portal, constantemente se agregan nuevas versiones de flujos de usuario.In the Azure portal, new versions of user flows are being added all the time. Cuando empiece a trabajar con Azure AD B2C, se recomienda que use los flujos de usuario que ya se han probado.When you get started with Azure AD B2C, tested user flows are recommended for you to use. Cuando cree un nuevo flujo de usuario, elija el que necesite de la pestaña Recomendados.When you create a new user flow, you choose the user flow that you need from the Recommended tab.

Actualmente, se recomiendan los siguientes flujos de usuario:The following user flows are currently recommended:

  • Registro e inicio de sesión: controla las experiencias de registro y de inicio de sesión con una sola configuración.Sign up and sign in - Handles both of the sign-up and sign-in experiences with a single configuration. A los usuarios se les lleva por el proceso correcto según el contexto.Users are led down the right path depending on the context. Le recomendamos que use este flujo de usuario en vez de un flujo de usuario de registro y un flujo de usuario de inicio de sesión.It's recommended that you use this user flow over a sign-up user flow or a sign-in user flow.
  • Edición de perfiles: permite a los usuarios editar su información de perfil.Profile editing - Enables users to edit their profile information.
  • Restablecimiento de contraseña: le permite configurar si es posible o no para los usuarios restablecer su contraseña y de qué forma pueden hacerlo.Password reset - Enables you to configure whether and how users can reset their password.

Vinculación de los flujos de usuarioLinking user flows

Un flujo de usuario de inicio de sesión o de registro con cuentas locales incluye el vínculo ¿Olvidó la contraseña? en la primera página de la experiencia.A sign-up or sign-in user flow with local accounts includes a Forgot password? link on the first page of the experience. Al hacer clic en este vínculo, no se desencadena automáticamente ningún flujo de usuario de restablecimiento de contraseña,Clicking this link doesn't automatically trigger a password reset user flow.

sino que se devuelve a la aplicación el código de error AADB2C90118.Instead, the error code AADB2C90118 is returned to your application. La aplicación debe controlar este código de error mediante la ejecución de un flujo de usuario específico que restablezca la contraseña.Your application needs to handle this error code by running a specific user flow that resets the password. Para ver un ejemplo, eche un vistazo a un ejemplo sencillo de ASP.NET que muestra la vinculación de flujos de usuario.To see an example, take a look at a simple ASP.NET sample that demonstrates the linking of user flows.

Almacenamiento de la dirección de correo electrónicoEmail address storage

Es posible que se necesite una dirección de correo electrónico como parte de un flujo de usuario.An email address can be required as part of a user flow. Si el usuario se autentica con un proveedor de identidades de redes sociales, la dirección de correo electrónico se almacena en la propiedad otherMails.If the user authenticates with a social identity provider, the email address is stored in the otherMails property. Si una cuenta local se basa en un nombre de usuario, la dirección de correo electrónico se almacena en una propiedad de detalles de autenticación sólida.If a local account is based on a user name, then the email address is stored in a strong authentication detail property. Si una cuenta local se basa en una dirección de correo electrónico, dicha dirección se almacena en la propiedad signInNames.If a local account is based on an email address, then the email address is stored in the signInNames property.

No se garantiza que la dirección de correo electrónico pueda comprobarse en cualquiera de estos casos.The email address isn't guaranteed to be verified in any of these cases. Un administrador de inquilinos puede deshabilitar la comprobación de correo electrónico en las directivas básicas para las cuentas locales.A tenant administrator can disable email verification in the basic policies for local accounts. Incluso si la comprobación de la dirección de correo electrónico está habilitada, las direcciones no se comprueban si provienen de un proveedor de identidades de redes sociales y aún no se cambian.Even if email address verification is enabled, addresses aren't verified if they come from a social identity provider and they haven't been changed.

Solo las propiedades otherMails y signInNames se exponen a través de Graph API de Active Directory.Only the otherMails and signInNames properties are exposed through the Active Directory Graph API. La dirección de correo electrónico en la propiedad de detalles de autenticación sólida no está disponible.The email address in the strong authentication detail property is not available.

Pasos siguientesNext steps

Para crear los flujos de usuario recomendados, siga las instrucciones en el Tutorial: Creación de un flujo de usuario.To create the recommended user flows, follow the instructions in Tutorial: Create a user flow.