Udostępnij za pośrednictwem


Śledzenie zachowania użytkownika w usłudze Azure AD B2C przy użyciu Szczegółowe informacje aplikacji

Przed rozpoczęciem użyj selektora Wybierz typ zasad, aby wybrać typ konfigurowanych zasad. Usługa Azure Active Directory B2C oferuje dwie metody definiowania sposobu interakcji użytkowników z aplikacjami: za pomocą wstępnie zdefiniowanych przepływów użytkowników lub w pełni konfigurowalnych zasad niestandardowych. Kroki wymagane w tym artykule są różne dla każdej metody.

Ta funkcja jest dostępna tylko dla zasad niestandardowych. Aby uzyskać instrukcje konfiguracji, wybierz pozycję Zasady niestandardowe w poprzednim selektorze.

W usłudze Azure Active Directory B2C (Azure AD B2C) dane zdarzenia można wysyłać bezpośrednio do aplikacji Szczegółowe informacje przy użyciu klucza instrumentacji dostarczonego do usługi Azure AD B2C. Za pomocą profilu technicznego Szczegółowe informacje aplikacji można uzyskać szczegółowe i dostosowane dzienniki zdarzeń dla podróży użytkownika do:

  • Uzyskaj szczegółowe informacje na temat zachowania użytkownika.
  • Rozwiązywanie problemów z własnymi zasadami w środowisku deweloperskim lub produkcyjnym.
  • Mierzenie wydajności.
  • Tworzenie powiadomień na podstawie Szczegółowe informacje aplikacji.

Omówienie

Aby włączyć niestandardowe dzienniki zdarzeń, dodaj profil techniczny aplikacji Szczegółowe informacje. W profilu technicznym zdefiniujesz klucz instrumentacji aplikacji Szczegółowe informacje, nazwę zdarzenia i oświadczenia do zarejestrowania. Aby opublikować wydarzenie, dodaj profil techniczny jako krok aranżacji w podróży użytkownika.

W przypadku korzystania z Szczegółowe informacje aplikacji należy wziąć pod uwagę następujące kwestie:

  • Istnieje krótkie opóźnienie, zazwyczaj krótsze niż pięć minut, zanim nowe dzienniki będą dostępne w usłudze Application Szczegółowe informacje.
  • Usługa Azure AD B2C umożliwia wybranie oświadczeń do zarejestrowania. Nie dołączaj roszczeń do danych osobowych.
  • Aby zarejestrować sesję użytkownika, możesz użyć identyfikatora korelacji do ujednolicenia zdarzeń.
  • Wywołaj profil techniczny aplikacji Szczegółowe informacje bezpośrednio z podróży użytkownika lub podróży podrzędnej. Nie używaj profilu technicznego Szczegółowe informacje aplikacji jako profilu technicznego weryfikacji.

Wymagania wstępne

Tworzenie zasobu usługi Application Insights

W przypadku korzystania z usługi Application Szczegółowe informacje z usługą Azure AD B2C wystarczy utworzyć zasób i uzyskać klucz instrumentacji. Aby uzyskać informacje, zobacz Tworzenie zasobu Szczegółowe informacje aplikacji.

  1. Zaloguj się w witrynie Azure Portal.
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy Microsoft Entra ID z menu Katalogi i subskrypcje.
  3. Wybierz pozycję Utwórz zasób w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz pozycję Aplikacja Szczegółowe informacje.
  4. Wybierz pozycję Utwórz.
  5. W polu Nazwa wprowadź nazwę zasobu.
  6. W polu Typ aplikacji wybierz pozycję ASP.NET aplikacji internetowej.
  7. W polu Grupa zasobów wybierz istniejącą grupę lub wprowadź nazwę nowej grupy.
  8. Wybierz pozycję Utwórz.
  9. Otwórz nowy zasób application Szczegółowe informacje, rozwiń pozycję Podstawy i skopiuj klucz instrumentacji.

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

Definiowanie oświadczeń

Oświadczenie zapewnia tymczasowe przechowywanie danych podczas wykonywania zasad usługi Azure AD B2C. Oświadczenia są deklarowane w elemecie ClaimsSchema.

  1. Otwórz plik rozszerzeń zasad. Plik może wyglądać podobnie do SocialAndLocalAccounts/TrustFrameworkExtensions.xmlpliku .

  2. Wyszukaj element BuildingBlocks. Jeśli element nie jest widoczny, dodaj go.

  3. Znajdź element ClaimsSchema. Jeśli element nie jest widoczny, dodaj go.

  4. Dodaj następujące oświadczenia do elementu 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>
    

Dodawanie nowych profilów technicznych

Profile techniczne można traktować jako funkcje w zasadach niestandardowych. Te funkcje korzystają z podejścia do dołączania profilu technicznego, w którym profil techniczny zawiera inny profil techniczny i zmienia ustawienia lub dodaje nowe funkcje. W poniższej tabeli zdefiniowano profile techniczne używane do otwierania sesji i publikowania zdarzeń.

Profil techniczny Zadanie
App Szczegółowe informacje-Common Typowy profil techniczny z typową konfiguracją. Obejmuje on klucz instrumentacji application Szczegółowe informacje, kolekcję oświadczeń do rejestrowania i trybu dewelopera. Inne profile techniczne obejmują wspólny profil techniczny i dodaj więcej oświadczeń, takich jak nazwa zdarzenia.
App Szczegółowe informacje-SignInRequest Rejestruje zdarzenie SignInRequest z zestawem oświadczeń po odebraniu żądania logowania.
App Szczegółowe informacje-UserSignUp Rejestruje zdarzenie UserSignUp, gdy użytkownik wyzwoli opcję rejestracji w podróży rejestracji lub logowania.
App Szczegółowe informacje-SignInComplete Rejestruje zdarzenie SignInComplete po pomyślnym uwierzytelnieniu, gdy token został wysłany do aplikacji jednostki uzależnionej.

Otwórz plik TrustFrameworkExtensions.xml z pakietu startowego. Dodaj profile techniczne 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>

Ważne

Zmień klucz instrumentacji w AppInsights-Common profilu technicznym na identyfikator GUID, który zapewnia zasób aplikacji Szczegółowe informacje.

Dodawanie profilów technicznych jako kroków orkiestracji

Dodaj nowe kroki aranżacji, które odwołują się do profilów technicznych.

Ważne

Po dodaniu nowych kroków aranżacji ponownie przenumeruj kroki sekwencyjnie bez pomijania liczb całkowitych z zakresu od 1 do N.

  1. Wywołaj AppInsights-SignInRequest jako drugi krok aranżacji. Ten krok śledzi, że odebrano żądanie rejestracji lub logowania.

    <!-- Track that we have received a sign in request -->
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="TrackSignInRequest" TechnicalProfileReferenceId="AppInsights-SignInRequest" />
      </ClaimsExchanges>
    </OrchestrationStep>
    
  2. Przed wykonaniem SendClaims kroku aranżacji dodaj nowy krok, który wywołuje metodę AppInsights-UserSignup. Zostanie ono wyzwolone, gdy użytkownik wybierze przycisk rejestracji w podróży do rejestracji lub logowania.

    <!-- 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. Po kroku aranżacji wywołaj metodę SendClaimsAppInsights-SignInComplete. Ten krok przedstawia pomyślnie ukończoną podróż.

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

Przekazywanie pliku, uruchamianie zasad i wyświetlanie zdarzeń

Zapisz i przekaż plik TrustFrameworkExtensions.xml . Następnie wywołaj zasady jednostki uzależnionej z aplikacji lub użyj polecenia Uruchom teraz w witrynie Azure Portal. Poczekaj, aż zdarzenia będą dostępne w Szczegółowe informacje aplikacji.

  1. Otwórz zasób Szczegółowe informacje aplikacji w dzierżawie firmy Microsoft Entra.
  2. Wybierz pozycję Użycie, a następnie wybierz pozycję Zdarzenia.
  3. Ustaw wartość W ciągu ostatniej godziny i przez 3 minuty. Może być konieczne odświeżenie okna, aby wyświetlić wyniki.

Screenshot that shows Application Insights event statistics.

Zbieranie większej ilości danych

Aby dopasować się do potrzeb biznesowych, możesz zarejestrować więcej oświadczeń. Aby dodać oświadczenie, najpierw zdefiniuj oświadczenie, a następnie dodaj oświadczenie do kolekcji oświadczeń wejściowych. Oświadczenia dodane do aplikacji Szczegółowe informacje-Wspólny profil techniczny są wyświetlane we wszystkich zdarzeniach. Oświadczenia dodane do określonego profilu technicznego są wyświetlane tylko w tym przypadku. Element oświadczenia wejściowego zawiera następujące atrybuty:

  • ClaimTypeReferenceId jest odwołaniem do typu oświadczenia.
  • PartnerClaimType to nazwa właściwości wyświetlanej w usłudze Azure Szczegółowe informacje. Użyj składni {property:NAME}, gdzie NAME jest właściwością dodaną do zdarzenia.
  • DefaultValue to wstępnie zdefiniowana wartość do zarejestrowania, taka jak nazwa zdarzenia. Jeśli oświadczenie używane w podróży użytkownika jest puste, zostanie użyta wartość domyślna. Na przykład identityProvider oświadczenie jest ustawiane przez profile techniczne federacji, takie jak Facebook. Jeśli oświadczenie jest puste, oznacza to, że użytkownik zalogował się przy użyciu konta lokalnego. W związku z tym wartość domyślna jest ustawiona na Wartość lokalna. Możesz również zarejestrować rozpoznawanie oświadczeń z wartością kontekstową, taką jak identyfikator aplikacji lub adres IP użytkownika.

Manipulowanie oświadczeniami

Przekształcenia oświadczeń wejściowych umożliwiają modyfikowanie oświadczeń wejściowych lub generowanie nowych przed wysłaniem ich do aplikacji Szczegółowe informacje. W poniższym przykładzie profil techniczny zawiera CheckIsAdmin przekształcenie oświadczeń wejściowych.

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

Dodawanie zdarzeń

Aby dodać zdarzenie, utwórz nowy profil techniczny zawierający AppInsights-Common profil techniczny. Następnie dodaj nowy profil techniczny jako krok aranżacji do podróży użytkownika. Użyj elementu Warunek wstępny, aby wyzwolić zdarzenie, gdy wszystko będzie gotowe. Na przykład zgłoś zdarzenie tylko wtedy, gdy użytkownicy będą uruchamiać uwierzytelnianie wieloskładnikowe.

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

Ważne

Podczas dodawania zdarzenia do podróży użytkownika pamiętaj, aby sekwencyjnie zmienić kolejność kroków aranżacji.

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

Włączanie trybu dewelopera

W przypadku używania Szczegółowe informacje aplikacji do definiowania zdarzeń można wskazać, czy tryb dewelopera jest włączony. Tryb dewelopera kontroluje sposób buforowania zdarzeń. W środowisku deweloperów z minimalnym woluminem zdarzeń włączenie trybu dewelopera powoduje natychmiastowe wysyłanie zdarzeń do aplikacji Szczegółowe informacje. Wartość domyślna to false. Nie włączaj trybu deweloperskiego w środowiskach produkcyjnych.

Aby włączyć tryb dewelopera, zmień DeveloperMode metadane na true w AppInsights-Common profilu technicznym:

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

Wyłączanie telemetrii

Aby wyłączyć dzienniki Szczegółowe informacje aplikacji, zmień DisableTelemetry metadane na true w AppInsights-Common profilu technicznym:

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

Następne kroki

Dowiedz się, jak tworzyć niestandardowe pulpity nawigacyjne wskaźników KPI przy użyciu aplikacja systemu Azure Szczegółowe informacje.