Ś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
- Wykonaj kroki opisane w artykule Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.
- Jeśli jeszcze tego nie zrobiono, zarejestruj aplikację internetową.
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.
- Zaloguj się w witrynie Azure Portal.
- 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.
- 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.
- Wybierz pozycję Utwórz.
- W polu Nazwa wprowadź nazwę zasobu.
- W polu Typ aplikacji wybierz pozycję ASP.NET aplikacji internetowej.
- W polu Grupa zasobów wybierz istniejącą grupę lub wprowadź nazwę nowej grupy.
- Wybierz pozycję Utwórz.
- Otwórz nowy zasób application Szczegółowe informacje, rozwiń pozycję Podstawy i skopiuj klucz instrumentacji.
Definiowanie oświadczeń
Oświadczenie zapewnia tymczasowe przechowywanie danych podczas wykonywania zasad usługi Azure AD B2C. Oświadczenia są deklarowane w elemecie ClaimsSchema.
Otwórz plik rozszerzeń zasad. Plik może wyglądać podobnie do
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
pliku .Wyszukaj element BuildingBlocks. Jeśli element nie jest widoczny, dodaj go.
Znajdź element ClaimsSchema. Jeśli element nie jest widoczny, dodaj go.
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.
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>
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>
Po kroku aranżacji wywołaj metodę
SendClaims
AppInsights-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.
- Otwórz zasób Szczegółowe informacje aplikacji w dzierżawie firmy Microsoft Entra.
- Wybierz pozycję Użycie, a następnie wybierz pozycję Zdarzenia.
- Ustaw wartość W ciągu ostatniej godziny i przez 3 minuty. Może być konieczne odświeżenie okna, aby wyświetlić wyniki.
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}
, gdzieNAME
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.