Sledování chování uživatelů v Azure AD B2C pomocí služby Application Přehledy

Než začnete, pomocí selektoru Zvolit typ zásady zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.

Tato funkce je dostupná jenom pro vlastní zásady. Pro kroky nastavení vyberte v předchozím selektoru vlastní zásady .

V Azure Active Directory B2C (Azure AD B2C) můžete odesílat data událostí přímo do aplikačního Přehledy pomocí instrumentačního klíče poskytnutého Azure AD B2C. Pomocí technického profilu aplikace Přehledy můžete získat podrobné a přizpůsobené protokoly událostí pro cesty uživatelů k:

  • Získejte přehled o chování uživatelů.
  • Řešení potíží s vlastními zásadami při vývoji nebo v produkčním prostředí
  • Měření výkonu
  • Vytváření oznámení z Přehledy aplikace

Přehled

Pokud chcete povolit vlastní protokoly událostí, přidejte Přehledy technický profil aplikace. V technickém profilu definujete klíč instrumentace aplikace Přehledy, název události a deklarace identity, které se mají zaznamenat. Pokud chcete publikovat událost, přidejte technický profil jako krok orchestrace na cestě uživatele.

Pokud používáte Přehledy aplikace, zvažte následující:

  • Existuje krátké zpoždění, obvykle méně než pět minut, než budou nové protokoly k dispozici v Přehledy aplikace.
  • Azure AD B2C umožňuje zvolit, které deklarace identity se mají zaznamenávat. Nezahrnujte deklarace identity s osobními údaji.
  • Pokud chcete zaznamenat uživatelskou relaci, můžete k sjednocení událostí použít ID korelace.
  • Volejte Přehledy technického profilu aplikace přímo z cesty uživatele nebo dílčí cesty. Jako technický profil ověřování nepoužívejte aplikační Přehledy technický profil.

Předpoklady

Vytvoření prostředku Application Insights

Když používáte application Přehledy s Azure AD B2C, stačí vytvořit prostředek a získat instrumentační klíč. Informace najdete v tématu Vytvoření prostředku Přehledy aplikace.

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do tenanta Microsoft Entra ID.
  3. V levém horním rohu webu Azure Portal zvolte Vytvořit prostředek a pak vyhledejte a vyberte Přehledy aplikace.
  4. Vyberte Vytvořit.
  5. Jako Název zadejte název prostředku.
  6. Jako typ aplikace vyberte ASP.NET webové aplikace.
  7. V části Skupina prostředků vyberte existující skupinu nebo zadejte název nové skupiny.
  8. Vyberte Vytvořit.
  9. Otevřete nový prostředek Přehledy aplikace, rozbalte základní informace a zkopírujte instrumentační klíč.

Screenshot that shows the Instrumentation Key on the Application Insights Overview tab.

Definování deklarací identity

Deklarace identity poskytuje dočasné úložiště dat během provádění zásad Azure AD B2C. Deklarace identity deklarujete v elementu ClaimsSchema.

  1. Otevřete soubor s příponami zásad. Soubor může vypadat podobně jako SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. Vyhledejte element BuildingBlocks . Pokud prvek nevidíte, přidejte ho.

  3. Vyhledejte element ClaimsSchema. Pokud prvek nevidíte, přidejte ho.

  4. Do elementu ClaimsSchema přidejte následující deklarace identity:

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

Přidání nových technických profilů

Technické profily se dají považovat za funkce ve vlastních zásadách. Tyto funkce používají přístup k zahrnutí technického profilu, kde technický profil obsahuje jiný technický profil a mění nastavení nebo přidává nové funkce. Následující tabulka definuje technické profily, které se používají k otevření relace a publikování událostí.

Technický profil Úkol
Běžná aplikace Přehledy Společný technický profil s typickou konfigurací. Zahrnuje klíč instrumentace aplikace Přehledy, kolekci deklarací identity, která se má zaznamenávat, a režim vývojáře. Ostatní technické profily zahrnují společný technický profil a přidávají další deklarace identity, jako je název události.
Aplikace Přehledy-SignInRequest Zaznamenává událost SignInRequest se sadou deklarací identity při přijetí žádosti o přihlášení.
Aplikace Přehledy-UserSignUp Zaznamenává událost UserSignUp, když uživatel aktivuje možnost registrace v cestě registrace nebo přihlášení.
Aplikace Přehledy-SignInComplete Zaznamenává událost SignInComplete při úspěšném ověření, když byl token odeslán do aplikace předávající strany.

Otevřete soubor TrustFrameworkExtensions.xml z úvodní sady. Přidejte technické profily do elementu 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 instrumentation key, which you use for logging the events -->
        <Item Key="InstrumentationKey">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>

Důležité

Změňte klíč instrumentace v technickém AppInsights-Common profilu na identifikátor GUID, který váš prostředek Přehledy aplikace poskytuje.

Přidánítechnickýchch

Přidejte nové kroky orchestrace, které odkazují na technické profily.

Důležité

Po přidání nových kroků orchestrace přečíslujte kroky postupně bez vynechání celých čísel od 1 do N.

  1. Volání AppInsights-SignInRequest jako druhého kroku orchestrace Tento krok sleduje, že byla přijata žádost o registraci nebo přihlášení.

    <!-- Track that we have received a sign in request -->
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="TrackSignInRequest" TechnicalProfileReferenceId="AppInsights-SignInRequest" />
      </ClaimsExchanges>
    </OrchestrationStep>
    
  2. SendClaims Před krok orchestrace přidejte nový krok, který volá AppInsights-UserSignup. Aktivuje se, když uživatel vybere tlačítko pro registraci nebo přihlášení.

    <!-- Handles the user selecting the sign-up link in the local account sign-in page -->
    <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>
    
  3. SendClaims Po kroku orchestrace zavolejte AppInsights-SignInComplete. Tento krok ukazuje úspěšně dokončenou cestu.

    <!-- Track that we have successfully sent a token -->
    <OrchestrationStep Order="10" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="TrackSignInComplete" TechnicalProfileReferenceId="AppInsights-SignInComplete" />
      </ClaimsExchanges>
    </OrchestrationStep>
    

Nahrání souboru, spuštění zásady a zobrazení událostí

Uložte a nahrajte soubor TrustFrameworkExtensions.xml . Potom volejte zásadu předávající strany z vaší aplikace nebo použijte spustit na webu Azure Portal. Počkejte, až budou události dostupné v Přehledy aplikace.

  1. Otevřete prostředek Application Přehledy v tenantovi Microsoft Entra.
  2. Vyberte Využití a pak vyberte Události.
  3. Nastavte během poslední hodiny a do 3 minut. Možná budete muset okno aktualizovat, aby se zobrazily výsledky.

Screenshot that shows Application Insights event statistics.

Shromažďování dalších dat

Pro potřeby vaší firmy můžete chtít zaznamenávat další deklarace identity. Pokud chcete přidat deklaraci identity, nejprve definujte deklaraci identity a pak ji přidejte do vstupní kolekce deklarací identity. Deklarace identity, které přidáte do aplikace Přehledy- Společný technický profil se zobrazí ve všech událostech. Deklarace identity, které přidáte do konkrétního technického profilu, se zobrazí pouze v této události. Vstupní element deklarace identity obsahuje následující atributy:

  • ClaimTypeReferenceId je odkaz na typ deklarace identity.
  • PartnerClaimType je název vlastnosti, která se zobrazí v Azure Přehledy. Použijte syntaxi {property:NAME}, kde je vlastnost, která NAME se přidává do události.
  • DefaultValue je předdefinovaná hodnota, která se má zaznamenat, například název události. Pokud je deklarace identity použitá v cestě uživatele prázdná, použije se výchozí hodnota. Deklarace identity je například identityProvider nastavena technickými profily federace, jako je Facebook. Pokud je deklarace identity prázdná, znamená to, že se uživatel přihlásil pomocí místního účtu. Výchozí hodnota je tedy nastavena na Hodnotu Local. Překladač deklarací identity můžete také zaznamenat s kontextovou hodnotou, jako je ID aplikace nebo IP adresa uživatele.

Manipulace s deklaracemi identity

Transformace vstupních deklarací identity můžete použít ke změně vstupních deklarací identity nebo k vygenerování nových deklarací identity před jejich odesláním do aplikace Přehledy. V následujícím příkladu zahrnuje technický profil CheckIsAdmin vstupní transformaci deklarací identity.

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

Přidání událostí

Pokud chcete přidat událost, vytvořte nový technický profil, který obsahuje AppInsights-Common technický profil. Potom do cesty uživatele přidejte nový technický profil jako krok orchestrace. K aktivaci události, když jste připravení, použijte element Předběžné předpoklady. Například nahlásit událost pouze v případě, že uživatelé běží prostřednictvím vícefaktorového ověřování.

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

Důležité

Když do cesty uživatele přidáte událost, nezapomeňte postupně přečíslovat kroky orchestrace.

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

Povolení vývojářského režimu

Když k definování událostí použijete Přehledy aplikace, můžete určit, jestli je povolený vývojářský režim. Režim vývojáře řídí způsob ukládání událostí do vyrovnávací paměti. Ve vývojovém prostředí s minimálním objemem událostí umožníte vývojářskému režimu okamžitě odesílat události do aplikace Přehledy. Výchozí hodnota je false. Nepovolujte vývojářský režim v produkčních prostředích.

Pokud chcete povolit vývojářský režim, změňte DeveloperMode metadata na true v technickém AppInsights-Common profilu:

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

Zakázání telemetrie

Pokud chcete zakázat protokoly Přehledy aplikací, změňte DisableTelemetry metadata na true v technickém AppInsights-Common profilu:

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

Další kroky

Naučte se vytvářet vlastní řídicí panely klíčových ukazatelů výkonu pomocí Aplikace Azure Přehledy.