Tutorial: Creación de flujos de usuario y directivas personalizadas en Azure Active Directory B2C

Antes de comenzar, use el selector Elección de un tipo de directiva para elegir el tipo de directiva que va a configurar. Azure Active Directory B2C ofrece dos métodos para definir el modo en que los usuarios interactúan con las aplicaciones: por medio de flujos de usuario predefinidos o de directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.

En las aplicaciones, puede que tenga flujos de usuario que permitan a los usuarios registrarse, iniciar sesión o administrar su perfil. Puede crear varios flujos de usuario de diferentes tipos en un inquilino de Azure Active Directory B2C (Azure AD B2C) y usarlos en las aplicaciones según sea necesario. Los flujos de usuario se pueden volver a usar en todas las aplicaciones.

Un flujo de usuario permite determinar cómo interactúan los usuarios con la aplicación cuando realizan acciones como iniciar sesión, registrarse, editar un perfil o restablecer una contraseña. En este artículo aprenderá a:

Las directivas personalizadas son archivos de configuración que definen el comportamiento del inquilino de Azure Active Directory B2C (Azure AD B2C). En este artículo aprenderá a:

  • Creación de un flujo de usuario de registro e inicio de sesión
  • Habilitar el autoservicio de restablecimiento de contraseña
  • Creación de un flujo de usuario de edición de perfil

Importante

Hemos cambiado la manera en que hacemos referencia a las versiones del flujo de usuario. Anteriormente, se ofrecían las versiones V1 (para entornos de producción) y V1.1 y V2 (preliminares). Ahora hemos consolidado los flujos de usuario en dos versiones: flujos de usuario recomendados, con las características más recientes, y flujos de usuario estándar (heredado) . Todos los flujos de usuario de las versiones preliminares heredadas (V1.1 y V2) se encuentran en desuso. Para más información, consulte Versiones de flujos de usuario de Azure Active Directory B2C. Estos cambios solo se aplican a la nube pública de Azure. Otros entornos seguirán usando el control de versiones de flujos de usuario heredado.

Requisitos previos

Creación de un flujo de usuario de registro e inicio de sesión

Este flujo de usuario de registro y de inicio de sesión controla las experiencias de registro y de inicio de sesión del cliente con una sola configuración. A los usuarios se les lleva por el proceso correcto según el contexto.

  1. Inicie sesión en Azure Portal.

  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.

  3. En Azure Portal, busque y seleccione Azure AD B2C.

  4. En Directivas, seleccione Flujos de usuario y Nuevo flujo de usuario.

    User flows page in portal with New user flow button highlighted

  5. En la página Crear un flujo de usuario, seleccione el flujo de usuario Registrarse e iniciar sesión.

    Select a user flow page with Sign-up and sign-in flow highlighted

  6. En Seleccione una versión, elija Recomendada y, luego, seleccione Crear. Más información sobre las versiones del flujo de usuario.

    Create user flow page in Azure portal with properties highlighted

  7. Escriba un nombre para el flujo de usuario. Por ejemplo, signupsignin1.

  8. En Proveedores de identidades, seleccione Registro por correo electrónico.

  9. En Atributos de usuario y notificaciones de token, elija los atributos y las notificaciones que quiere recopilar y enviar desde el usuario durante el registro. Por ejemplo, seleccione Mostrar más y elija los atributos y las notificaciones de País o región, Nombre para mostrar y Código postal. Seleccione Aceptar.

    Attributes and claims selection page with three claims selected

  10. Seleccione Crear para agregar el flujo de usuario. El prefijo B2C_1_ se antepone automáticamente al nombre.

Prueba del flujo de usuario

  1. Seleccione el flujo de usuario que ha creado para abrir su página de información general.

  2. En la parte superior de la página de información general del flujo de usuario, seleccione Ejecutar flujo de usuario. Se abre un panel en el lado derecho de la página.

  3. En Aplicación, seleccione la aplicación web que quiere probar, como la denominada webapp1. La dirección URL de respuesta debe mostrar https://jwt.ms.

  4. Seleccione Ejecutar flujo de usuario y, a continuación, seleccione Registrarse ahora.

    Run user flow page in portal with Run user flow button highlighted

  5. Escriba una dirección de correo electrónico válida, seleccione Enviar código de verificación, escriba el código de verificación que reciba y seleccione Comprobar código.

  6. Escriba la contraseña nueva y confírmela.

  7. Seleccione su país y región, escriba el nombre que quiere que aparezca, escriba un código postal y seleccione Crear. El token se devuelve al https://jwt.ms y debe mostrarse.

  8. Ahora puede ejecutar el flujo de usuario nuevo y debe ser capaz de iniciar sesión con la cuenta que ha creado. El token devuelto incluye las notificaciones que seleccionó para país/región, nombre y código postal.

Nota:

Actualmente, la experiencia "Ejecutar flujo de usuario" no es compatible con el tipo de dirección URL de respuesta de SPA que usa el flujo de código de autorización. Para usar la experiencia "Ejecutar flujo de usuario" con estos tipos de aplicaciones, registre una dirección URL de respuesta de tipo "Web" y habilite el flujo implícito tal como se describe aquí.

Habilitar el autoservicio de restablecimiento de contraseña

Para habilitar el autoservicio de restablecimiento de contraseña para el flujo de usuario de registro o inicio de sesión:

  1. Seleccione el flujo de usuario de registro o de inicio de sesión que creó.
  2. En el menú de la izquierda, en Configuración, seleccione Propiedades.
  3. En Configuración de la contraseña, seleccione Autoservicio de restablecimiento de contraseña.
  4. Seleccione Guardar.

Prueba del flujo de usuario

  1. Seleccione el flujo de usuario que ha creado para abrir su página de información general y, luego, Ejecutar flujo de usuario.
  2. En Aplicación, seleccione la aplicación web que quiere probar, como la denominada webapp1. La dirección URL de respuesta debe mostrar https://jwt.ms.
  3. Seleccione Ejecutar flujo de usuario.
  4. En la página de registro o inicio de sesión, seleccione ¿Olvidó la contraseña?
  5. Compruebe la dirección de correo electrónico de la cuenta que creó anteriormente y, luego seleccione Continuar.
  6. Ahora tiene la oportunidad de cambiar la contraseña para el usuario. Cambie la contraseña y seleccione Continuar. El token se devuelve al https://jwt.ms y debe mostrarse.

Creación de un flujo de usuario de edición de perfil

Si desea permitir que los usuarios editen sus perfiles en la aplicación, debe usar un flujo de usuario de edición de perfiles.

  1. En el menú de la página de información general del inquilino de Azure AD B2C, seleccione Flujos de usuario y Nuevo flujo de usuario.
  2. En la página Crear un flujo de usuario, seleccione el flujo de usuario Edición de perfiles.
  3. En Seleccione una versión, elija Recomendada y, luego, seleccione Crear.
  4. Escriba un nombre para el flujo de usuario. Por ejemplo, profileediting1.
  5. En Proveedores de identidades, en Cuentas locales, seleccione Registro por correo electrónico.
  6. En Atributos de usuario, elija los atributos que desee que el cliente pueda modificar en su perfil. Por ejemplo, seleccione Mostrar más y elija los atributos y las notificaciones de Nombre para mostrar y Puesto. Seleccione Aceptar.
  7. Seleccione Crear para agregar el flujo de usuario. El prefijo B2C_1_ se antepone automáticamente al nombre.

Prueba del flujo de usuario

  1. Seleccione el flujo de usuario que ha creado para abrir su página de información general.
  2. En la parte superior de la página de información general del flujo de usuario, seleccione Ejecutar flujo de usuario. Se abre un panel en el lado derecho de la página.
  3. En Aplicación, seleccione la aplicación web que quiere probar, como la denominada webapp1. La dirección URL de respuesta debe mostrar https://jwt.ms.
  4. Seleccione Ejecutar flujo de usuario y, a continuación, inicie sesión con la cuenta que creó anteriormente.
  5. Ahora tiene la oportunidad de cambiar el nombre para mostrar y el puesto del usuario. Seleccione Continuar. El token se devuelve al https://jwt.ms y debe mostrarse.

Sugerencia

En este artículo se explica cómo configurar el inquilino manualmente. Puede automatizar todo el proceso con este artículo. La automatización implementará el paquete de inicio SocialAndLocalAccountsWithMFA de Azure AD B2C, que proporcionará los recorridos de registro e inicio de sesión, restablecimiento de contraseña y edición de perfil. Para automatizar el tutorial siguiente, visite la aplicación de configuración de IEF y siga las instrucciones.

Agregar claves de firma y cifrado para aplicaciones de Identity Experience Framework

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.
  3. En Azure Portal, busque y seleccione Azure AD B2C.
  4. En la página de información general, en Directivas, seleccione Identity Experience Framework.

Crear la clave de firma

  1. Seleccione Claves de directiva y luego Agregar.
  2. En Opciones, elija Generate.
  3. En Nombre, escriba TokenSigningKeyContainer. Es posible que se agregue automáticamente el prefijo B2C_1A_.
  4. En Tipo de clave, seleccione RSA.
  5. En Uso de claves, seleccione Firma.
  6. Seleccione Crear.

Crear la clave de cifrado

  1. Seleccione Claves de directiva y luego Agregar.
  2. En Opciones, elija Generate.
  3. En Nombre, escriba TokenEncryptionKeyContainer. Es posible que se agregue automáticamente el prefijo B2C_1A_.
  4. En Tipo de clave, seleccione RSA.
  5. En Uso de la clave, seleccione Cifrado.
  6. Seleccione Crear.

Registro de las aplicaciones del marco de experiencia de identidad

Azure AD B2C requiere que registre dos aplicaciones que se usen para registrar usuarios e iniciar su sesión con cuentas locales: IdentityExperienceFramework (una API web) y ProxyIdentityExperienceFramework (una aplicación nativa) con permiso delegado de la aplicación IdentityExperienceFramework. Los usuarios pueden registrarse con una dirección de correo electrónico o un nombre de usuario y una contraseña para acceder a las aplicaciones registradas en el inquilino, lo que crea una "cuenta local". Las cuentas locales existen solo en el inquilino de Azure AD B2C.

Solo tiene que registrar estas dos aplicaciones en el inquilino de Azure AD B2C una vez.

Registrar la aplicación IdentityExperienceFramework

Para registrar una aplicación en el inquilino de Azure AD B2C, puede usar la experiencia Registros de aplicaciones.

  1. Seleccione Registros de aplicaciones y luego Nuevo registro.
  2. En Nombre, escriba IdentityExperienceFramework.
  3. En Tipos de cuenta admitidos, seleccione Solo las cuentas de este directorio organizativo.
  4. En URI de redirección, seleccione Web y, a continuación, escriba https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com, donde your-tenant-name es el nombre de dominio del inquilino de Azure AD B2C.
  5. En Permisos, active la casilla Conceda consentimiento del administrador a los permisos openid y offline_access.
  6. Seleccione Registrar.
  7. Anote el Id. de aplicación (cliente) para usarlo en un paso posterior.

A continuación, exponga la API agregando un ámbito:

  1. En el menú de la izquierda, en Administrar, seleccione Exponer una API.
  2. Seleccione agregar un ámbito y, a continuación, Guardar y continuar para aceptar el URI de identificador de aplicación predeterminado.
  3. Escriba los valores siguientes para crear un ámbito que permita la ejecución de la directiva personalizada en el inquilino de Azure AD B2C:
    • Nombre de ámbito: user_impersonation
    • Nombre para mostrar del consentimiento del administrador: Access IdentityExperienceFramework
    • Descripción del consentimiento del administrador: Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  4. Seleccione Agregar ámbito.

Registrar la aplicación ProxyIdentityExperienceFramework

  1. Seleccione Registros de aplicaciones y luego Nuevo registro.
  2. En Nombre, escriba ProxyIdentityExperienceFramework.
  3. En Tipos de cuenta admitidos, seleccione Solo las cuentas de este directorio organizativo.
  4. En URI de redirección, use la lista desplegable para seleccionar Cliente público o nativo (móvil & escritorio).
  5. En URI de redirección, escriba myapp://auth.
  6. En Permisos, active la casilla Conceda consentimiento del administrador a los permisos openid y offline_access.
  7. Seleccione Registrar.
  8. Anote el Id. de aplicación (cliente) para usarlo en un paso posterior.

A continuación, especifique que la aplicación se debe tratar como un cliente público:

  1. En el menú izquierdo, en Administrar, seleccione Autenticación.
  2. En Configuración avanzada, en la sección Permitir flujos de clientes públicos, establezca Habilite los siguientes flujos móviles y de escritorio en .
  3. Seleccione Guardar.
  4. Asegúrese de que "allowPublicClient": true esté establecido en el manifiesto de aplicación:
    1. En el menú izquierdo, en Administrar, seleccione Manifiesto para abrir el manifiesto de aplicación.
    2. Busque la clave allowPublicClient y asegúrese de que su valor esté establecido en true.

Ahora, conceda permisos al ámbito de la API que expuso anteriormente en el registro de IdentityExperienceFramework:

  1. En el menú de la izquierda, en Administrar, seleccione Permisos de API.
  2. En Permisos configurados, seleccione Agregar un permiso.
  3. Seleccione la pestaña Mis API y, después, seleccione la aplicación IdentityExperienceFramework.
  4. En Permiso, seleccione el ámbito user_impersonation que definió anteriormente.
  5. Seleccione Agregar permisos. Como se indicó, espere unos minutos antes de continuar con el paso siguiente.
  6. Seleccione Conceder consentimiento de administrador para <el nombre del inquilino)>.
  7. Seleccione .
  8. Seleccione Actualizar y compruebe que aparece "Granted for..." (Concedido para...) en Estado para el ámbito.

Paquete de inicio de directivas personalizadas

Las directivas personalizadas son un conjunto de archivos XML que se cargan en el inquilino de Azure AD B2C para definir perfiles técnicos y recorridos de usuario. Proporcionamos paquetes de inicio con varias directivas predefinidas para que pueda empezar a trabajar rápidamente. Cada uno de estos paquetes de inicio contiene el menor número de perfiles técnicos y recorridos del usuario necesarios para lograr los escenarios descritos:

  • LocalAccounts: habilita el uso solo de cuentas locales.
  • SocialAccounts: habilita el uso solo de cuentas sociales (o federadas).
  • SocialAndLocalAccounts: habilita el uso de cuentas locales y sociales.
  • SocialAndLocalAccountsWithMFA: habilita opciones sociales, locales y de autenticación multifactor.

Cada paquete de inicio contiene lo siguiente:

  • Archivo base: se requieren algunas modificaciones en el archivo base. Ejemplo: TrustFrameworkBase.xml
  • Archivo de localización: este archivo es donde se realizan los cambios de localización. Por ejemplo: TrustFrameworkLocalization.xml
  • Archivo de extensión: este archivo es donde se hace la mayoría de los cambios de configuración. Ejemplo: TrustFrameworkExtensions.xml
  • Archivos de usuario de confianza: archivos específicos de la tarea a los que llama la aplicación. Ejemplos: SignUpOrSignin.xml, ProfileEdit.xml, PasswordReset.xml.

En este artículo, editará los archivos de directivas personalizadas XML del paquete de inicio SocialAndLocalAccounts. Si necesita un editor XML, pruebe Visual Studio Code, un editor multiplataforma ligero.

Obtención del paquete de inicio

Obtenga los paquetes de inicio de directivas personalizadas en GitHub y, luego, actualice los archivos XML del paquete de inicio SocialAndLocalAccounts con el nombre del inquilino de Azure AD B2C.

  1. Descargue el archivo .zip o clone el repositorio:

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. En todos los archivos del directorio SocialAndLocalAccounts, reemplace la cadena yourtenant por el nombre de su inquilino de Azure AD B2C.

    Por ejemplo, si el nombre del inquilino de B2C es contosotenant, todas las instancias de yourtenant.onmicrosoft.com se convierten en contosotenant.onmicrosoft.com.

Agregar identificadores de aplicación a la directiva personalizada

Agregue los identificadores de aplicación al archivo de extensiones TrustFrameworkExtensions.xml.

  1. Abra SocialAndLocalAccounts/TrustFrameworkExtensions.xml y busque el elemento <TechnicalProfile Id="login-NonInteractive">.
  2. Reemplace ambas instancias de IdentityExperienceFrameworkAppId por el identificador de la aplicación IdentityExperienceFramework que creó antes.
  3. Reemplace ambas instancias de ProxyIdentityExperienceFrameworkAppId por el identificador de la aplicación ProxyIdentityExperienceFramework que creó antes.
  4. Guarde el archivo.

Incorporación de Facebook como proveedor de identidades

El paquete de inicio SocialAndLocalAccounts incluye el inicio de sesión con la red social Facebook. No se requiere Facebook para el uso de directivas personalizadas, pero aquí se usa para mostrar cómo se puede habilitar el inicio de sesión social federado en una directiva personalizada. Si no necesita habilitar el inicio de sesión social federado, use en su lugar el paquete de inicio LocalAccounts y omita la sección Add Facebook as an identity provider (Agregar Facebook como proveedor de identidades).

Creación de una aplicación de Facebook

Siga los pasos descritos en Creación de una aplicación de Facebook para obtener el identificador de aplicación de Facebook y el secreto de la aplicación. Omita los requisitos previos y el restablecimiento de los pasos descritos en Configuración del registro y el inicio de sesión con una cuenta de Facebook.

Crear la clave de Facebook

Agregue el secreto de la aplicación de la aplicación de Facebook como una clave de directiva. Puede usar el secreto de aplicación de la aplicación que creó como parte de los requisitos previos de este artículo.

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.
  3. En Azure Portal, busque y seleccione Azure AD B2C.
  4. En la página de información general, en Directivas, seleccione Identity Experience Framework.
  5. Seleccione Claves de directiva y luego Agregar.
  6. En Opciones, elija Manual.
  7. En Nombre, escriba FacebookSecret. Es posible que se agregue automáticamente el prefijo B2C_1A_.
  8. En Secreto, escriba el secreto de aplicación de la aplicación de Facebook de developers.facebook.com. Este valor es el secreto, no el identificador de la aplicación.
  9. En Uso de claves, seleccione Firma.
  10. Seleccione Crear.

Actualización del paquete de inicio de directivas personalizadas TrustFrameworkExtensions.xml

En el archivo SocialAndLocalAccounts/TrustFrameworkExtensions.xml , sustituya el valor de client_id por el identificador de aplicación de Facebook y guarde los cambios.

<TechnicalProfile Id="Facebook-OAUTH">
  <Metadata>
  <!--Replace the value of client_id in this technical profile with the Facebook app ID"-->
    <Item Key="client_id">00000000000000</Item>

Cargar las directivas

  1. Seleccione el elemento de menú Identity Experience Framework en el inquilino de B2C en Azure Portal.
  2. Seleccione Cargar directiva personalizada.
  3. En este orden, cargue los archivos de directiva:
    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml

A medida que cargue los archivos, Azure agregará el prefijo B2C_1A_ a cada uno.

Sugerencia

Si el editor XML admite la validación, valide los archivos con el archivo de esquema XML TrustFrameworkPolicy_0.3.0.0.xsd que se encuentra en el directorio raíz del paquete de inicio. La validación del esquema XML identifica los errores antes de realizar la carga.

Prueba de la directiva personalizada

  1. En Directivas personalizadas, seleccione B2C_1A_signup_signin.
  2. En Seleccionar aplicación en la página de información general de la directiva personalizada, seleccione la aplicación web que quiere probar, como la denominada webapp1.
  3. Asegúrese de que la URL de respuesta sea https://jwt.ms.
  4. Seleccione Ejecutar ahora.
  5. Regístrese con una dirección de correo electrónico.
  6. Vuelva a seleccionar Ejecutar ahora.
  7. Inicie sesión con la misma cuenta para confirmar que tiene una configuración correcta.
  8. Seleccione Ejecutar ahora de nuevo y elija Facebook para iniciar sesión con Facebook y probar la directiva personalizada.

Pasos siguientes

En este artículo, ha aprendido cómo:

  • Crear un flujo de usuario de registro e inicio de sesión
  • Creación de un flujo de usuario de edición de perfil
  • Creación de un flujo de usuario de restablecimiento de contraseña

A continuación, obtenga información sobre cómo usar Azure AD B2C para iniciar sesión y registrar usuarios en una aplicación. Siga los vínculos de las aplicaciones de ejemplo a continuación:

También puede obtener más información en la serie de profundización en la arquitectura de Azure AD B2C.