Compartir a través de


Recopilación de registros de Azure Active Directory B2C con Application Insights

Importante

A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para ser adquirido por nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.

Antes de empezar, use el selector Elegir un tipo de directiva en la parte superior de esta página para elegir el tipo de directiva que está configurando. Azure Active Directory B2C ofrece dos métodos para definir cómo interactúan los usuarios con las aplicaciones: a través de flujos de usuario predefinidos o mediante directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.

Esta característica está disponible solo para directivas personalizadas. Para conocer los pasos de configuración, seleccione Directiva personalizada en el selector anterior.

Nota:

Esta característica está en versión preliminar pública.

En este artículo se proporcionan pasos para recopilar registros de Active Directory B2C (Azure AD B2C) para que pueda diagnosticar problemas con las directivas personalizadas. Application Insights proporciona un modo de diagnosticar excepciones y visualizar problemas de rendimiento de la aplicación. Azure AD B2C incluye una característica para enviar datos a Application Insights.

Los registros de actividad detallados que se describen aquí solo deben habilitarse durante el desarrollo de las directivas personalizadas.

Advertencia

No establezca el DeploymentMode a Development en entornos de producción. Los registros recopilan todas las reclamaciones enviadas a y desde proveedores de identidad. Como desarrollador asume la responsabilidad de los datos personales recopilados en los registros de Application Insights. Estos registros detallados se recopilan solo cuando la directiva se coloca en MODO DE DESARROLLADOR.

Configurar Application Insights

Si aún no tiene una, cree una instancia de Application Insights en su suscripción.

Sugerencia

Se puede usar una sola instancia de Application Insights para varios inquilinos de Azure AD B2C. A continuación, en la consulta, puede filtrar por el arrendatario o por el nombre de la política. Para más información, consulte los registros en ejemplos de Application Insights .

Para usar una instancia existente de Application Insights en la suscripción, siga estos pasos:

  1. Inicie sesión en Azure Portal.
  2. Asegúrese de que usa el directorio de Microsoft Entra que tiene la suscripción de Azure y no el de Azure AD B2C. Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
  3. En la configuración del portal | Directorios y suscripciones página, busque el directorio Microsoft Entra en la lista Nombre del directorio y, a continuación, seleccione Cambiar.
  4. Abra el recurso de Application Insights que creó anteriormente.
  5. En la página Información general y registre la cadena de conexión.

Para crear una instancia de Application Insights en la suscripción, siga estos pasos:

  1. Inicie sesión en Azure Portal.
  2. Asegúrese de que usa el directorio de Microsoft Entra que tiene la suscripción de Azure y no el de Azure AD B2C. Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
  3. En la configuración del portal | Directorios y suscripciones página, busque el directorio Microsoft Entra en la lista Nombre del directorio y, a continuación, seleccione Cambiar.
  4. Seleccione Crear un recurso en el menú de navegación izquierdo.
  5. Busque y seleccione Application Insights y, a continuación, seleccione Crear.
  6. Complete el formulario, seleccione Revisar y crear y, a continuación, seleccione Crear.
  7. Una vez completada la implementación, seleccione Ir al recurso.
  8. En Configurar en el menú de Application Insights, seleccione Propiedades.
  9. Registre la cadena de conexión para usarla en un paso posterior.

Configuración de la directiva personalizada

  1. Abra el archivo de usuario de confianza (RP), por ejemplo SignUpOrSignin.xml.

  2. Agregue los atributos siguientes al <TrustFrameworkPolicy> elemento :

    DeploymentMode="Development"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    
  3. Si aún no existe, agregue un <UserJourneyBehaviors> nodo secundario al <RelyingParty> nodo. Debe ubicarse después de <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" />. Consulte la referencia del esquema RelyingParty para ver el orden completo de los elementos secundarios de RelyingParty.

  4. Agregue el siguiente nodo como elemento secundario del <UserJourneyBehaviors> elemento . Asegúrese de reemplazar {Your Application Insights Key} por la cadena de conexión de Application Insights que registró anteriormente.

    <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    
    • DeveloperMode="true" indica a Application Insights que acelere la telemetría a través de la canalización de procesamiento. Es bueno para el desarrollo, pero está restringido en volúmenes elevados. En producción, establezca el DeveloperMode en false.
    • ClientEnabled="true" envía el script del lado cliente de ApplicationInsights para realizar un seguimiento de la vista de página y de los errores del lado cliente. Puede verlo en la tabla browserTimings en el portal de Application Insights. Al establecer ClientEnabled= "true", se agrega Application Insights al script de página y se obtienen tiempos de carga de página y llamadas AJAX, recuentos, detalles de excepciones del explorador y errores de AJAX, y recuentos de usuarios y sesiones. Este campo es opcional y se establece false en de forma predeterminada.
    • ServerEnabled="true" envía el JSON UserJourneyRecorder existente como un evento personalizado a Application Insights.

    Por ejemplo:

    <TrustFrameworkPolicy
      ...
      TenantId="fabrikamb2c.onmicrosoft.com"
      PolicyId="SignUpOrSignInWithAAD"
      DeploymentMode="Development"
      UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    >
    ...
    <RelyingParty>
      <DefaultUserJourney ReferenceId="UserJourney ID from your extensions policy, or equivalent (for example: SignUpOrSigninWithAzureAD)" />
      <Endpoints>
         <!--points to refresh token journey when app makes refresh token request-->
         <Endpoint Id="Token" UserJourneyReferenceId="RedeemRefreshToken" />
      </Endpoints>
      <UserJourneyBehaviors>
        <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
      </UserJourneyBehaviors>
      ...
    </TrustFrameworkPolicy>
    
  5. Cargue la política.

Consulte los registros en Application Insights.

Hay un breve retraso, normalmente menos de cinco minutos, antes de poder ver nuevos registros en Application Insights.

  1. Abra el recurso de Application Insights que creó en Azure Portal.
  2. En la página Información general , seleccione Registros.
  3. Abra una nueva pestaña en Application Insights.

Esta es una lista de consultas que puede usar para ver los registros:

Consulta Descripción
traces Obtención de todos los registros generados por Azure AD B2C
traces | where timestamp > ago(1d) Obtenga todos los registros generados por Azure AD B2C para el último día.
traces | where message contains "exception" | where timestamp > ago(2h) Obtiene todos los registros con errores de las últimas dos horas.
traces | where customDimensions.Tenant == "contoso.onmicrosoft.com" and customDimensions.UserJourney == "b2c_1a_signinandup" Obtiene todos los registros generados por el inquilino contoso.onmicrosoft.com de Azure AD B2C, y el recorrido del usuario es b2c_1a_signinandup.
traces | where customDimensions.CorrelationId == "aaaa0000-bb11-2222-33cc-444444dddddd" Obtenga todos los registros generados por Azure AD B2C para un identificador de correlación. Reemplace el identificador de correlación por su propio identificador de correlación.

Las entradas pueden ser largas. Exporte a CSV para obtener un aspecto más detallado.

Para más información sobre las consultas, consulte Introducción a las consultas de registro en Azure Monitor.

Consulte los registros en la extensión de VS Code.

Se recomienda instalar la extensión de Azure AD B2C para VS Code. Con la extensión de Azure AD B2C, los registros se organizan automáticamente por el nombre de la directiva, el identificador de correlación (application Insights presenta el primer dígito del identificador de correlación) y la marca de tiempo del registro. Esta característica le ayuda a encontrar el registro pertinente en función de la marca de tiempo local y ver el recorrido del usuario como lo ejecuta Azure AD B2C.

Nota:

La comunidad ha desarrollado la extensión vs Code para ayudar a las personas a implementar y mantener soluciones de Azure AD B2C. La extensión no es compatible con Microsoft y se pone a disposición estrictamente como es.

Establecimiento del acceso a la API de Application Insights

Después de configurar Application Insights y configurar la directiva personalizada, debe obtener el identificador de API de Application Insights y crear la clave de API. La extensión de Azure AD B2C usa tanto el identificador de API como la clave de API para leer los eventos (telemetría) de Application Insights. Las claves de API deben administrarse como contraseñas. Manténgalo secreto.

Nota:

Azure AD B2C usa la cadena de conexión de Application Insights que creó anteriormente para enviar datos de telemetría a Application Insights. Usa la Cadena de Conexión solo en tu directiva de Azure AD B2C, no en la extensión de VS Code.

Para obtener el identificador y la clave de Application Insights:

  1. En Azure Portal, abra el recurso de Application Insights para la aplicación.

  2. Seleccione Configurar y, a continuación, seleccione Acceso de API.

  3. Copia del identificador de la aplicación

  4. Seleccione Create API Key (Crear clave de API).

  5. Active la casilla Leer telemetría .

  6. Copie la clave antes de cerrar el panel de creación de clave API y guárdela en algún lugar seguro. Si pierde la clave, debe crear otra.

    Captura de pantalla que muestra cómo crear una clave de acceso de API.

Configuración de la extensión de VS Code de Azure AD B2C

Ahora que tiene el identificador y la clave de la API de Azure Application Insights, puede configurar la extensión de VS Code para leer los registros. La extensión de VS Code de Azure AD B2C proporciona dos ámbitos para la configuración:

  • Configuración global de usuario : configuración que se aplica globalmente a cualquier instancia de VS Code que abra.
  • Configuración del área de trabajo: la configuración almacenada dentro del área de trabajo y solo se aplica cuando se abre el área de trabajo (mediante la carpeta abierta de VS Code).
  1. En el explorador de seguimiento de Azure AD B2C, haga clic en el icono Configuración.

    Captura de pantalla que muestra cómo seleccionar la configuración de Application Insights.

  2. Proporcione el identificador y la clave de Azure Application Insights.

  3. Haga clic en Guardar.

Después de guardar la configuración, los registros de Application Insights aparecen en la ventana Azure AD B2C Trace (App Insights).

Captura de pantalla de la extensión de Azure AD B2C para vscode, que presenta el seguimiento de Azure Application Insights.

Configuración de Application Insights en producción

Para mejorar el rendimiento del entorno de producción y mejorar la experiencia del usuario, es importante configurar la directiva para omitir los mensajes que no son importantes. También debe asegurarse de que no registra información de identificación personal (PII). Use la siguiente configuración en entornos de producción y no se envíe ningún registro a Application Insights.

  1. Establezca el DeploymentMode atributo de TrustFrameworkPolicy en Production.

    <TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0"
    TenantId="yourtenant.onmicrosoft.com"
    PolicyId="B2C_1A_signup_signin"
    PublicPolicyUri="http://yourtenant.onmicrosoft.com/B2C_1A_signup_signin"
    DeploymentMode="Production"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights">
    
  2. Establezca el DeveloperMode de JourneyInsights en false.

    <UserJourneyBehaviors>
      <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="false" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    </UserJourneyBehaviors>
    
  3. Cargue y pruebe la directiva.

Pasos siguientes