Dela via


Spåra användarbeteende i Azure AD B2C med hjälp av Application Insights

Viktigt!

Från och med den 1 maj 2025 är Azure AD B2C inte längre tillgängligt att köpa för nya kunder. Läs mer i våra vanliga frågor och svar.

Innan du börjar använder du väljaren Välj en principtyp överst på den här sidan för att välja den typ av princip som du konfigurerar. Azure Active Directory B2C erbjuder två metoder för att definiera hur användare interagerar med dina program: via fördefinierade användarflöden eller genom fullständigt konfigurerbara anpassade principer. De steg som krävs i den här artikeln skiljer sig åt för varje metod.

Den här funktionen är endast tillgänglig för anpassade principer. För installationsinstruktioner väljer du Anpassad princip i ovanstående väljare.

I Azure Active Directory B2C (Azure AD B2C) kan du skicka händelsedata direkt till Application Insights med hjälp av anslutningssträngen som tillhandahålls till Azure AD B2C. Med en teknisk Application Insights-profil kan du få detaljerade och anpassade händelseloggar för dina användarresor till:

  • Få insikter om användarbeteende.
  • Felsöka dina egna principer i utveckling eller produktion.
  • Utvärdera prestanda.
  • Skapa meddelanden från Application Insights.

Anmärkning

Den här funktionen är i offentlig förhandsversion.

Översikt

Om du vill aktivera anpassade händelseloggar lägger du till en teknisk Application Insights-profil. I den tekniska profilen definierar du Application Insights-anslutningssträngen, händelsenamnet och anspråken som ska registreras. Om du vill publicera en händelse lägger du till den tekniska profilen som ett orkestreringssteg i en användarresa.

Tänk på följande när du använder Application Insights:

  • Det är en kort fördröjning, vanligtvis mindre än fem minuter, innan nya loggar är tillgängliga i Application Insights.
  • Med Azure AD B2C kan du välja vilka anspråk som ska registreras. Inkludera inte anspråk med personuppgifter.
  • Om du vill registrera en användarsession kan du använda ett korrelations-ID för att förena händelser.
  • Anropa den tekniska Profilen för Application Insights direkt från en användarresa eller en underresa. Använd inte en teknisk Application Insights-profil som en teknisk valideringsprofil.

Förutsättningar

Skapa en Application Insights-resurs

När du använder Application Insights med Azure AD B2C behöver du bara skapa en resurs och hämta anslutningssträngen. Mer information finns i Skapa en Application Insights-resurs.

  1. Logga in på Azure-portalen.
  2. Om du har åtkomst till flera klienter väljer du ikonen Inställningar på den översta menyn för att växla till din Microsoft Entra-ID-klient från menyn Kataloger + prenumerationer .
  3. Välj Skapa en resurs i det övre vänstra hörnet av Azure-portalen och sök sedan efter och välj Application Insights.
  4. Välj Skapa.
  5. Som Namn anger du ett namn för resursen.
  6. Som Programtyp väljer du ASP.NET webbprogram.
  7. För Resursgrupp väljer du en befintlig grupp eller anger ett namn för en ny grupp.
  8. Välj Skapa.
  9. Öppna den nya Application Insights-resursen, expandera Essentials och kopiera anslutningssträngen.

Skärmbild som visar anslutningssträngen på fliken Översikt för Application Insights.

Definiera anspråk

Ett tillstånd ger tillfällig lagring av data under en Azure AD B2C-policykörning. Du deklarerar dina anspråk i elementet ClaimsSchema.

  1. Öppna tilläggsfilen för policyn. Filen kan se ut ungefär som SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. Sök efter elementet BuildingBlocks . Om du inte ser elementet lägger du till det.

  3. Leta upp elementet ClaimsSchema . Om du inte ser elementet lägger du till det.

  4. Lägg till följande anspråk i elementet 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>
    

Lägga till nya tekniska profiler

Tekniska profiler kan betraktas som funktioner i den anpassade policyn. Dessa funktioner använder metoden för teknisk profilinkludering , där en teknisk profil innehåller en annan teknisk profil och ändrar inställningar eller lägger till nya funktioner. I följande tabell definieras de tekniska profiler som används för att öppna en session och publicera händelser.

Teknisk profil Aktivitet
AppInsights-Common Den vanliga tekniska profilen med typisk konfiguration. Den innehåller anslutningssträngen för Application Insights, en samling attribut att registrera, och utvecklarläge. De andra tekniska profilerna inkluderar den gemensamma tekniska profilen och lägger till fler anspråk, till exempel händelsenamnet.
AppInsights-SignInRequest Registrerar en SignInRequest-händelse med en uppsättning anspråk när en inloggningsbegäran har tagits emot.
AppInsights-UserSignUp Registrerar en UserSignUp-händelse när användaren utlöser registreringsalternativet i en registrerings- eller inloggningsresa.
AppInsights-SignInComplete Registrerar en SignInComplete-händelse vid lyckad autentisering, när en token har skickats till det förlitande partprogrammet.

Öppna filenTrustFrameworkExtensions.xml från startpaketet. Lägg till de tekniska profilerna i elementet 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>

Viktigt!

Ändra anslutningssträngen i den AppInsights-Common tekniska profilen till det GUID som application insights-resursen tillhandahåller.

Lägg till de tekniska profilerna som orkestreringssteg

Lägg till nya orkestreringssteg som refererar till de tekniska profilerna.

Viktigt!

När du har lagt till de nya orkestreringsstegen numrerar du om stegen sekventiellt utan att hoppa över några heltal från 1 till N.

  1. Identifiera den policyfil som innehåller din användarupplevelse, till exempel SocialAndLocalAccounts/SignUpOrSignin.xml, och öppna den sedan.

  2. Anropa AppInsights-SignInRequest som det andra orkestreringssteget. Det här steget spårar att en registrerings- eller inloggningsbegäran har tagits emot.

    <!-- Track that we have received a sign in request -->
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="TrackSignInRequest" TechnicalProfileReferenceId="AppInsights-SignInRequest" />
      </ClaimsExchanges>
    </OrchestrationStep>
    
  3. Innan orkestreringssteget SendClaims lägger du till ett nytt steg som anropar AppInsights-UserSignup. Den aktiveras när användaren väljer registreringsknappen i en registrerings- eller inloggningsprocess. Du kan behöva uppdatera orkestreringssteget Order="8" för att se till att du inte hoppar över något heltal från det första till det sista orkestreringssteget.

    <!-- 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>
    
  4. Efter orkestreringssteget SendClaims ska du anropa AppInsights-SignInComplete. Det här steget visar en slutförd resa. Du kan behöva uppdatera orkestreringssteget, Order="10", för att se till att du inte hoppar över något heltal från det första till det sista orkestreringssteget.

    <!-- 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>
    

Ladda upp din fil, kör policyn och visa händelser

Spara och ladda upp filenTrustFrameworkExtensions.xml . Anropa sedan principen för förlitande part från ditt program eller använd Kör nu i Azure-portalen. Vänta tills dina händelser är tillgängliga i Application Insights.

  1. Öppna Application Insights-resursen i din Microsoft Entra-klientorganisation.
  2. Välj Användning och sedan Händelser.
  3. Ange Under tiden till Senaste timme och Genom till 3 minuter. Du kan behöva uppdatera fönstret för att se resultatet.

Skärmbild som visar Application Insights-händelsestatistik.

Samla in mer data

För att passa dina affärsbehov kanske du vill registrera fler anspråk. Om du vill lägga till ett anspråk definierar du först ett anspråk och lägger sedan till anspråket i insamlingen av indataanspråk. Anspråk som du lägger till den tekniska profilen AppInsights-Common visas i alla händelser. Anspråk som du lägger till i en specifik teknisk profil visas endast i det sammanhanget. Indataelementet innehåller följande attribut:

  • ClaimTypeReferenceId är referensen till en anspråkstyp.
  • PartnerClaimType är namnet på egenskapen som visas i Azure Insights. Använd syntaxen för {property:NAME}, där NAME är en egenskap som läggs till i händelsen.
  • DefaultValue är ett fördefinierat värde som ska registreras, till exempel ett händelsenamn. Om ett anspråk som används i användarresan är tomt används standardvärdet. Anspråket identityProvider anges till exempel av federationens tekniska profiler, till exempel Facebook. Om anspråket är tomt anger det att användaren har loggat in med ett lokalt konto. Standardvärdet är därför inställt på Lokal. Du kan också registrera en anspråkslösare med ett kontextuellt värde, till exempel program-ID:t eller användarens IP-adress.

Manipulera anspråk

Du kan använda omvandlingar av inparametrar för att ändra dessa eller generera nya innan du skickar dem till Application Insights. I följande exempel inkluderar den tekniska profilen transformeringen av inmatningskrav CheckIsAdmin.

<TechnicalProfile Id="AppInsights-SignInComplete">
  <InputClaimsTransformations>  
    <InputClaimsTransformation ReferenceId="CheckIsAdmin" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isAdmin" PartnerClaimType="{property:IsAdmin}"  />
    ...
  </InputClaims>
  <IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>

Lägga till händelser

Om du vill lägga till en händelse skapar du en ny teknisk profil som innehåller den AppInsights-Common tekniska profilen. Lägg sedan till den nya tekniska profilen som ett orkestreringssteg i användarresan. Använd elementet Villkor för att utlösa händelsen när du är redo. Rapportera till exempel bara händelsen när användare kör via multifaktorautentisering.

<TechnicalProfile Id="AppInsights-MFA-Completed">
  <InputClaims>
     <InputClaim ClaimTypeReferenceId="EventType" PartnerClaimType="eventName" DefaultValue="MFA-Completed" />
  </InputClaims>
  <IncludeTechnicalProfile ReferenceId="AppInsights-Common" />
</TechnicalProfile>

Viktigt!

När du lägger till en händelse i användarresan bör du komma ihåg att numrera om orkestreringsstegen sekventiellt.

<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>

Aktivera utvecklarläge

När du använder Application Insights för att definiera händelser kan du ange om utvecklarläget är aktiverat. Utvecklarläget styr hur händelser buffrads. I en utvecklingsmiljö med minimal händelsevolym resulterar aktivering av utvecklarläge i att händelser skickas omedelbart till Application Insights. Standardvärdet är false. Aktivera inte utvecklarläge i produktionsmiljöer.

Om du vill aktivera utvecklarläge ändrar du DeveloperMode metadata till true i den AppInsights-Common tekniska profilen:

<TechnicalProfile Id="AppInsights-Common">
  <Metadata>
    ...
    <Item Key="DeveloperMode">true</Item>
  </Metadata>
</TechnicalProfile>

Inaktivera telemetri

Om du vill inaktivera Application Insights-loggar ändrar du DisableTelemetry metadata till true i den AppInsights-Common tekniska profilen:

<TechnicalProfile Id="AppInsights-Common">
  <Metadata>
    ...
    <Item Key="DisableTelemetry">true</Item>
  </Metadata>
</TechnicalProfile>

Nästa steg

Lär dig hur du skapar anpassade KPI-instrumentpaneler med Hjälp av Azure Application Insights.