Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 nas nossas Perguntas Frequentes.
Antes de começar, use o seletor Escolha um tipo de política na parte superior desta página para escolher o tipo de política que você está configurando. O Azure Ative Directory B2C oferece dois métodos para definir como os usuários interagem com seus aplicativos: por meio de fluxos de usuário predefinidos ou por meio de políticas personalizadas totalmente configuráveis. As etapas exigidas neste artigo são diferentes para cada método.
Este recurso está disponível apenas para políticas personalizadas. Para as etapas de configuração, selecione Política personalizada no seletor anterior.
No Azure Ative Directory B2C (Azure AD B2C), você pode enviar dados de eventos diretamente para o Application Insights usando a cadeia de conexão fornecida ao Azure AD B2C. Com um perfil técnico do Application Insights, pode obter logs de eventos detalhados e personalizados para os percursos dos seus utilizadores:
- Obtenha informações sobre o comportamento do usuário.
- Solucione problemas de suas próprias políticas em desenvolvimento ou produção.
- Meça o desempenho.
- Crie notificações a partir do Application Insights.
Observação
Este recurso está em pré-visualização pública.
Visão geral
Para habilitar logs de eventos personalizados, adicione um perfil técnico do Application Insights. No perfil técnico, você define a cadeia de conexão do Application Insights, o nome do evento e as declarações a serem registradas. Para publicar um evento, adicione o perfil técnico como uma etapa de orquestração em uma jornada do usuário.
Ao usar o Application Insights, considere o seguinte:
- Há um pequeno atraso, geralmente inferior a cinco minutos, antes que novos logs estejam disponíveis no Application Insights.
- O Azure AD B2C permite que você escolha quais declarações registrar. Não inclua reclamações com dados pessoais.
- Para gravar uma sessão de usuário, você pode usar uma ID de correlação para unificar eventos.
- Chame o perfil técnico do Application Insights diretamente a partir de uma jornada do usuário ou de uma subjornada. Não use um perfil técnico do Application Insights como um perfil técnico de validação.
Pré-requisitos
- Conclua as etapas em Iniciar com políticas personalizadas no Active Directory B2C. Este tutorial orienta você sobre como atualizar arquivos de política personalizados para usar sua configuração de locatário do Azure AD B2C.
- Se você ainda não registrou um aplicativo Web, registre um usando as etapas em registrar um aplicativo Web.
Criar um recurso Application Insights
Quando você usa o Application Insights com o Azure AD B2C, tudo o que você precisa fazer é criar um recurso e obter a cadeia de conexão. Para obter informações, consulte Criar um recurso do Application Insights.
- Inicie sessão no portal Azure.
- Se tiver acesso a várias instâncias, selecione o ícone Configurações no menu superior para mudar para a sua instância do Microsoft Entra ID no menu Diretórios + assinaturas.
- Escolha Criar um recurso no canto superior esquerdo do portal do Azure e, em seguida, procure e selecione Application Insights.
- Selecione Criar.
- Em Nome, insira um nome para o recurso.
- Em Tipo de Aplicativo, selecione ASP.NET aplicativo Web.
- Em Grupo de Recursos, selecione um grupo existente ou insira um nome para um novo grupo.
- Selecione Criar.
- Abra o novo recurso do Application Insights, expanda Essentials e copie a cadeia de conexão.
Definir declarações
Uma declaração fornece armazenamento temporário de dados durante a execução de uma política do Azure AD B2C. Você declara suas declarações no elemento ClaimsSchema.
Abra o arquivo de extensões da sua política. O arquivo pode ser semelhante a
SocialAndLocalAccounts/TrustFrameworkExtensions.xml.Procure o elemento BuildingBlocks . Se não vir o elemento, adicione-o.
Localize o elemento ClaimsSchema . Se não vir o elemento, adicione-o.
Adicione as seguintes declarações ao elemento ClaimsSchema :
<ClaimType Id="EventType"> <DisplayName>Event type</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="EventTimestamp"> <DisplayName>Event timestamp</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="PolicyId"> <DisplayName>Policy Id</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="Culture"> <DisplayName>Culture ID</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="CorrelationId"> <DisplayName>Correlation Id</DisplayName> <DataType>string</DataType> </ClaimType> <ClaimType Id="federatedUser"> <DisplayName>Federated user</DisplayName> <DataType>boolean</DataType> </ClaimType> <ClaimType Id="parsedDomain"> <DisplayName>Domain name</DisplayName> <DataType>string</DataType> <UserHelpText>The domain portion of the email address.</UserHelpText> </ClaimType> <ClaimType Id="userInLocalDirectory"> <DisplayName>userInLocalDirectory</DisplayName> <DataType>boolean</DataType> </ClaimType>
Adicionar novos perfis técnicos
Os perfis técnicos podem ser considerados funções na política personalizada. Essas funções usam a abordagem de inclusão de perfil técnico , onde um perfil técnico inclui outro perfil técnico e altera configurações ou adiciona novas funcionalidades. A tabela a seguir define os perfis técnicos usados para abrir uma sessão e postar eventos.
| Perfil técnico | Tarefa |
|---|---|
| AppInsights-Common | O perfil técnico comum com configuração típica. Ele inclui a cadeia de ligação do Application Insights, uma coleção de declarações a registar e o modo de desenvolvedor. Os outros perfis técnicos incluem o perfil técnico comum e adicionam mais declarações, como o nome do evento. |
| AppInsights-SignInRequest | Registra um evento SignInRequest com um conjunto de declarações quando uma solicitação de entrada foi recebida. |
| AppInsights-UserSignUp | Registra um evento UserSignUp quando o usuário aciona a opção de inscrição em uma jornada de inscrição ou login. |
| AppInsights-SignInComplete | Registra um evento SignInComplete após a autenticação bem-sucedida, quando um token foi enviado para o aplicativo de terceira parte confiável. |
Abra o arquivo TrustFrameworkExtensions.xml do pacote inicial. Adicione os perfis técnicos ao elemento ClaimsProvider :
<ClaimsProvider>
<DisplayName>Application Insights</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AppInsights-Common">
<DisplayName>Application Insights</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.Insights.AzureApplicationInsightsProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<!-- The ApplicationInsights connection string, which you use for logging the events -->
<Item Key="ConnectionString">xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</Item>
<Item Key="DeveloperMode">false</Item>
<Item Key="DisableTelemetry ">false</Item>
</Metadata>
<InputClaims>
<!-- Properties of an event are added through the syntax {property:NAME}, where NAME is the property being added to the event. DefaultValue can be either a static value or a value that's resolved by one of the supported DefaultClaimResolvers. -->
<InputClaim ClaimTypeReferenceId="EventTimestamp" PartnerClaimType="{property:EventTimestamp}" DefaultValue="{Context:DateTimeInUtc}" />
<InputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="{property:TenantId}" DefaultValue="{Policy:TrustFrameworkTenantId}" />
<InputClaim ClaimTypeReferenceId="PolicyId" PartnerClaimType="{property:Policy}" DefaultValue="{Policy:PolicyId}" />
<InputClaim ClaimTypeReferenceId="CorrelationId" PartnerClaimType="{property:CorrelationId}" DefaultValue="{Context:CorrelationId}" />
<InputClaim ClaimTypeReferenceId="Culture" PartnerClaimType="{property:Culture}" DefaultValue="{Culture:RFC5646}" />
</InputClaims>
</TechnicalProfile>
<TechnicalProfile Id="AppInsights-SignInRequest">
<InputClaims>
<!-- An input claim with a PartnerClaimType="eventName" is required. This is used by the AzureApplicationInsightsProvider to create an event with the specified value. -->
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="SignInRequest" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
<TechnicalProfile Id="AppInsights-UserSignUp">
<InputClaims>
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="UserSignUp" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
<TechnicalProfile Id="AppInsights-SignInComplete">
<InputClaims>
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="SignInComplete" />
<InputClaim ClaimTypeReferenceId="federatedUser" PartnerClaimType="{property:FederatedUser}" DefaultValue="false" />
<InputClaim ClaimTypeReferenceId="parsedDomain" PartnerClaimType="{property:FederationPartner}" DefaultValue="Not Applicable" />
<InputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="{property:IDP}" DefaultValue="Local" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Importante
Altere a cadeia de conexão no AppInsights-Common perfil técnico para o GUID fornecido pelo recurso do Application Insights.
Adicione os perfis técnicos como etapas de orquestração
Adicione novas etapas de orquestração que se refiram aos perfis técnicos.
Importante
Depois de adicionar as novas etapas de orquestração, renumere as etapas sequencialmente sem pular nenhum número inteiro de 1 para N.
Identifique o arquivo de política que contém sua jornada de usuário, como
SocialAndLocalAccounts/SignUpOrSignin.xml, e abra-o.Chame
AppInsights-SignInRequestcomo segundo passo de orquestração. Esta etapa rastreia se uma solicitação de inscrição ou entrada foi recebida.<!-- Track that we have received a sign in request --> <OrchestrationStep Order="2" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="TrackSignInRequest" TechnicalProfileReferenceId="AppInsights-SignInRequest" /> </ClaimsExchanges> </OrchestrationStep>Antes da etapa de orquestração, adicione uma nova etapa que chame
SendClaims. Ele é acionado quando o usuário seleciona o botão de inscrição em uma jornada de inscrição ou login. Talvez seja necessário atualizar a etapa de orquestração,Order="8"para garantir que você não pule nenhum número inteiro da primeira para a última etapa de orquestração.<!-- Handles the user selecting the sign-up link in the local account sign-in page The `SendClaims` orchestration step comes after this one, --> <OrchestrationStep Order="8" Type="ClaimsExchange"> <Preconditions> <Precondition Type="ClaimsExist" ExecuteActionsIf="false"> <Value>newUser</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> <Precondition Type="ClaimEquals" ExecuteActionsIf="true"> <Value>newUser</Value> <Value>false</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> </Preconditions> <ClaimsExchanges> <ClaimsExchange Id="TrackUserSignUp" TechnicalProfileReferenceId="AppInsights-UserSignup" /> </ClaimsExchanges> </OrchestrationStep>Após a etapa de orquestração
SendClaims, chameAppInsights-SignInComplete. Esta etapa mostra uma jornada concluída com sucesso. Talvez seja necessário atualizar a etapa de orquestração,Order="10"para garantir que você não pule nenhum número inteiro da primeira para a última etapa de orquestração.<!-- Track that we have successfully sent a token The `SendClaims` orchestration step come before this one, --> <OrchestrationStep Order="10" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="TrackSignInComplete" TechnicalProfileReferenceId="AppInsights-SignInComplete" /> </ClaimsExchanges> </OrchestrationStep>
Carregue o ficheiro, execute a política e veja eventos
Salve e carregue o arquivoTrustFrameworkExtensions.xml . Em seguida, chame a política de parte confiável do seu aplicativo ou use Executar Agora no portal do Azure. Aguarde até que seus eventos estejam disponíveis no Application Insights.
- Abra o recurso Application Insights em seu locatário do Microsoft Entra.
- Selecione Utilização e, em seguida, selecione Eventos.
- Defina Durante para Última hora e Até3 minutos. Talvez seja necessário atualizar a janela para ver os resultados.
Recolher mais dados
Para atender às suas necessidades comerciais, convém registrar mais reclamações. Para adicionar uma declaração, primeiro defina uma declaração e, em seguida, adicione a declaração à coleção de declarações de entrada. As declarações adicionadas ao perfil técnico AppInsights-Common aparecem em todos os eventos. As declarações adicionadas a um perfil técnico específico aparecem apenas nesse evento. O elemento input claim contém os seguintes atributos:
- ClaimTypeReferenceId é a referência a um tipo de declaração.
-
PartnerClaimType é o nome da propriedade que aparece no Azure Insights. Utilize a sintaxe de
{property:NAME}, ondeNAMEé uma propriedade que está a ser adicionada ao evento. -
DefaultValue é um valor predefinido a ser registrado, como um nome de evento. Se uma declaração usada na jornada do usuário estiver vazia, o valor padrão será usado. Por exemplo, a
identityProviderdeclaração é definida pelos perfis técnicos da federação, como o Facebook. Se a declaração estiver vazia, indica que o utilizador iniciou sessão com uma conta local. Assim, o valor padrão é definido como Local. Você também pode registrar um resolvedor de declarações com um valor contextual, como o ID do aplicativo ou o endereço IP do usuário.
Manipular declarações
Você pode usar transformações de declarações de entrada para modificar as declarações de entrada ou gerar novas antes de enviá-las para o Application Insights. No exemplo a seguir, o perfil técnico inclui a transformação de declarações de entrada CheckIsAdmin.
<TechnicalProfile Id="AppInsights-SignInComplete">
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CheckIsAdmin" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="isAdmin" PartnerClaimType="{property:IsAdmin}" />
...
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
Adicionar eventos
Para adicionar um evento, crie um novo perfil técnico que inclua o AppInsights-Common perfil técnico. Em seguida, adicione o novo perfil técnico como uma etapa de orquestração ao percurso do utilizador. Use o elemento Pré-condição para acionar o evento quando estiver pronto. Por exemplo, relate o evento somente quando os utilizadores passarem pela autenticação multifator.
<TechnicalProfile Id="AppInsights-MFA-Completed">
<InputClaims>
<InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="MFA-Completed" />
</InputClaims>
<IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>
Importante
Ao adicionar um evento à jornada do usuário, lembre-se de renumerar as etapas de orquestração sequencialmente.
<OrchestrationStep Order="8" Type="ClaimsExchange">
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>isActiveMFASession</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="TrackUserMfaCompleted" TechnicalProfileReferenceId="AppInsights-MFA-Completed" />
</ClaimsExchanges>
</OrchestrationStep>
Ativar o modo de desenvolvedor
Ao usar o Application Insights para definir eventos, você pode indicar se o modo de desenvolvedor está habilitado. O modo de desenvolvedor controla como os eventos são armazenados em buffer. Em um ambiente de desenvolvimento com volume mínimo de eventos, habilitar o modo de desenvolvedor resulta em eventos enviados imediatamente para o Application Insights. O valor predefinido é false. Não habilite o modo de desenvolvedor em ambientes de produção.
Para habilitar o DeveloperMode modo de desenvolvedor, altere os true metadados para AppInsights-Common no perfil técnico:
<TechnicalProfile Id="AppInsights-Common">
<Metadata>
...
<Item Key="DeveloperMode">true</Item>
</Metadata>
</TechnicalProfile>
Desativar telemetria
Para desativar os logs do DisableTelemetry Application Insights, altere os true metadados para AppInsights-Common no perfil técnico:
<TechnicalProfile Id="AppInsights-Common">
<Metadata>
...
<Item Key="DisableTelemetry">true</Item>
</Metadata>
</TechnicalProfile>
Próximos passos
Saiba como criar painéis de KPI personalizados usando o Azure Application Insights.