Compartilhar via


Coletar logs do Azure Active Directory B2C com o Application Insights

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.

Antes de começar, use o seletor Escolha um tipo de política na parte superior dessa página para escolher o tipo de política que você está configurando. O Azure Active Directory B2C oferece dois métodos para definir como os usuários interagem com seus aplicativos: por meio de fluxos de usuários predefinidos ou por meio de políticas personalizadas totalmente configuráveis. As etapas necessárias neste artigo são diferentes para cada método.

Esse recurso está disponível apenas para políticas personalizadas. Para as etapas de instalação, selecione Política personalizada no seletor anterior.

Observação

Esse recurso está em versão prévia pública.

Este artigo fornece etapas para coletar logs do Active Directory B2C (Azure AD B2C) para que você possa diagnosticar problemas com suas políticas personalizadas. O Application Insights fornece uma maneira de diagnosticar exceções e visualizar os problemas de desempenho do aplicativo. O Azure AD B2C inclui um recurso para envio de dados ao Application Insights.

Os logs de atividade detalhados descritos aqui devem ser habilitados somente durante o desenvolvimento de suas políticas personalizadas.

Aviso

Não defina o DeploymentMode para Development em ambientes de produção. Os logs coletam todas as declarações enviadas para e dos provedores de identidade. Você, como desenvolvedor, assume a responsabilidade por quaisquer dados pessoais coletados em seus logs do Application Insights. Esses logs detalhados são coletados somente quando a política é colocada no MODO DEVELOPER.

Configurar Application Insights

Se você ainda não tiver uma, crie uma instância do Application Insights em sua assinatura.

Dica

Uma única instância do Application Insights pode ser usada para vários locatários do Azure AD B2C. Em seguida, na consulta, você pode filtrar pelo locatário ou pelo nome da política. Para obter mais informações, consulte os logs em exemplos do Application Insights .

Para usar uma instância existente do Application Insights em sua assinatura, siga estas etapas:

  1. Entre no portal do Azure.
  2. Verifique se você está usando o diretório do Microsoft Entra que tem sua assinatura do Azure e não o diretório do Azure AD B2C. Selecione o ícone Diretórios + assinaturas na barra de ferramentas do portal.
  3. Nas configurações do Portal | Diretórios + assinaturas, localize o diretório do Microsoft Entra na lista Nome do Diretório e selecione Alternar.
  4. Abra o recurso application insights que você criou anteriormente.
  5. Na página Visão geral e registre a cadeia de conexão

Para criar uma instância do Application Insights em sua assinatura, siga estas etapas:

  1. Entre no portal do Azure.
  2. Verifique se você está usando o diretório do Microsoft Entra que tem sua assinatura do Azure e não o diretório do Azure AD B2C. Selecione o ícone Diretórios + assinaturas na barra de ferramentas do portal.
  3. Nas configurações do Portal | Diretórios + assinaturas, localize o diretório do Microsoft Entra na lista Nome do Diretório e selecione Alternar.
  4. Selecione Criar um recurso no menu de navegação à esquerda.
  5. Pesquise e selecione Application Insights e, em seguida, selecione Criar.
  6. Conclua o formulário, selecione Examinar + criar e, em seguida, selecione Criar.
  7. Assim que a implantação for concluída, selecione Ir para o recurso.
  8. No menu do Application Insights, em Configurar, selecione Propriedades.
  9. Registre a Cadeia de Conexão para uso em uma etapa posterior.

Configurar a política personalizada

  1. Abra o arquivo de terceira parte confiável (RP), por exemplo, SignUpOrSignin.xml.

  2. Adicione os seguintes atributos ao <TrustFrameworkPolicy> elemento:

    DeploymentMode="Development"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    
  3. Se ele ainda não existir, adicione o nó filho <UserJourneyBehaviors> ao nó <RelyingParty>. Ele deve estar localizado após <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" />. Consulte Referência de esquema RelyingParty para obter uma ordem completa dos elementos filho RelyingParty.

  4. Adicione o seguinte nó como um filho do elemento <UserJourneyBehaviors>. Certifique-se de substituir o {Your Application Insights Key} pela Cadeia de Conexão do Application Insights que você registrou anteriormente.

    <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    
    • O DeveloperMode="true" informa ao ApplicationInsights para acelerar a telemetria pelo pipeline de processamento. Bom para o desenvolvimento, mas limitado em volumes elevados. Em produção, defina DeveloperMode para false.
    • O ClientEnabled="true" envia o script do cliente do ApplicationInsights para rastrear erros do cliente e de exibição de página. Você pode exibir isso na tabela browserTimings no portal do Application Insights. Ao definir ClientEnabled= "true", você adiciona o Application Insights ao script de página e obtém intervalos de cargas de página e chamadas AJAX, contagens, detalhes de exceções do navegador e falhas do AJAX e contagens de usuário e sessão. Esse campo é opcional e é definido false como por padrão.
    • ServerEnabled="true" envia o JSON UserJourneyRecorder existente como um evento personalizado para o Application Insights.

    Por exemplo:

    <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. Carregue a política.

Consulte os logs no Application Insights

Há um pequeno atraso, normalmente menos de cinco minutos, antes que você possa ver novos logs no Application Insights.

  1. Abra o recurso do Application Insights que você criou no portal do Azure.
  2. Na página Visão geral, selecione Logs.
  3. Abra uma nova guia no Application Insights.

Aqui está uma lista de consultas que você pode usar para ver os logs:

Consulta Descrição
traces Obter todos os logs gerados pelo Azure AD B2C
traces | where timestamp > ago(1d) Obtenha todos os logs gerados pelo Azure AD B2C no último dia.
traces | where message contains "exception" | where timestamp > ago(2h) Obtenha todos os logs com erros das últimas duas horas.
traces | where customDimensions.Tenant == "contoso.onmicrosoft.com" and customDimensions.UserJourney == "b2c_1a_signinandup" Obtenha todos os logs gerados pelo locatário contoso.onmicrosoft.com do Active Directory B2C. O percurso do usuário é b2c_1a_signinandup.
traces | where customDimensions.CorrelationId == "aaaa0000-bb11-2222-33cc-444444dddddd" Obtenha todos os logs gerados pelo Active Directory B2C para a ID de correlação. Substitua a ID de correlação pela sua ID de correlação.

As entradas podem ser longas. Exporte para CSV para obter uma visão mais detalhada.

Para obter mais informações sobre consultas, consulte Visão geral das consultas de log no Azure Monitor.

Consulte os logs na extensão do VS Code

Recomendamos que você instale a extensão do Azure AD B2C para o VS Code. Com a extensão do Azure AD B2C, os logs são organizados para você pelo nome da política, ID de correlação (os insights do aplicativo apresentam o primeiro dígito da ID de correlação) e o carimbo de data/hora do log. Esse recurso ajuda você a encontrar o log relevante com base no carimbo de data/hora local e ver o percurso do usuário conforme executado pelo Azure AD B2C.

Observação

A comunidade desenvolveu a extensão do VS Code para ajudar as pessoas a implementar e manter soluções do Azure AD B2C. A extensão não tem suporte da Microsoft e é disponibilizada estritamente as-is.

Definir acesso à API do Application Insights

Depois de configurar o Application Insights e configurar a política personalizada, você precisará obter a ID da API do Application Insights e criar a Chave de API. A ID da API e a chave da API são usadas pela extensão Azure AD B2C para ler os eventos do Application Insights (telemetrias). Suas chaves de API devem ser gerenciadas como senhas. Mantenha em segredo.

Observação

A cadeia de conexão do Application Insights que você criou anteriormente é usada pelo Azure AD B2C para enviar telemetrias ao Application Insights. Você usa a Cadeia de Conexão somente na sua política do Azure AD B2C, não na extensão do VS Code.

Para obter a ID e a chave do Application Insights:

  1. No portal do Azure, abra o recurso do Application Insights para seu aplicativo.

  2. Selecione Configurar e selecioneAcesso à API.

  3. Copiar a ID do aplicativo

  4. Selecione Criar Chave de API

  5. Marque a caixa de Ler telemetria.

  6. Copie a Chave antes de fechar a folha Criar e salve a chave de API em algum lugar seguro. Se você perder a chave, precisará criar outra.

    Captura de tela que demonstra como criar a chave de acesso à API.

Configurar a extensão do VS Code do Azure AD B2C

Agora que você tem a ID e a Chave da API do Azure Application Insights, você pode configurar a extensão do VS Code para ler os logs. A extensão VS Code do Azure AD B2C fornece dois escopos para configurações:

  • Configurações Globais do Usuário – Configurações que se aplicam globalmente a qualquer instância do VS Code que você abrir.
  • Configurações do workspace – Configurações armazenadas dentro do workspace e aplicadas somente quando o workspace é aberto (usando a pasta aberta do VS Code).
  1. No explorador de Rastreamento do Azure AD B2C, clique no ícone de Configurações.

    Captura de tela que demonstra a seleção das configurações do Application Insights.

  2. Forneça a ID e a chave do Azure Application Insights.

  3. Clique em Salvar

Depois de salvar as configurações, os logs do Application Insights aparecem na janela Rastreamento do Azure AD B2C (App Insights).

Captura de tela da extensão do Azure AD B2C para vscode, apresentando o rastreio do Azure Application Insights.

Configurar o Application Insights em Produção

Para melhorar o desempenho do ambiente de produção e a melhor experiência do usuário, é importante configurar sua política para ignorar mensagens sem importância. Você também precisa assegurar que não registra informações de identificação pessoal (PII). Use a configuração a seguir em ambientes de produção, e nenhum log será enviado para seus Application Insights.

  1. Defina o DeploymentMode atributo de TrustFrameworkPolicy como 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. Defina o DeveloperMode do JourneyInsights como false.

    <UserJourneyBehaviors>
      <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="false" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    </UserJourneyBehaviors>
    
  3. Carregue e teste sua política.

Próximas etapas