Aracılığıyla paylaş


Uygulama Analizler kullanarak Azure AD B2C'de kullanıcı davranışını izleme

Başlamadan önce, ayarladığınız ilke türünü seçmek için İlke türü seçin seçicisini kullanın. Azure Active Directory B2C, kullanıcıların uygulamalarınızla nasıl etkileşim kurduğunu tanımlamak için iki yöntem sunar: önceden tanımlanmış kullanıcı akışları veya tam olarak yapılandırılabilir özel ilkeler aracılığıyla. Bu makalede gerekli adımlar her yöntem için farklıdır.

Bu özellik yalnızca özel ilkeler için kullanılabilir. Kurulum adımları için, önceki seçicide Özel ilke'yi seçin.

Azure Active Directory B2C'de (Azure AD B2C), Azure AD B2C'ye sağlanan izleme anahtarını kullanarak olay verilerini doğrudan Uygulama Analizler gönderebilirsiniz. Uygulama Analizler teknik profiliyle, kullanıcı yolculuğunuz için ayrıntılı ve özelleştirilmiş olay günlüklerini alabilirsiniz:

  • Kullanıcı davranışı hakkında içgörüler elde edin.
  • Geliştirmede veya üretimde kendi ilkelerinizle ilgili sorunları giderin.
  • Performansı ölçme.
  • Uygulama Analizler'ndan bildirimler oluşturun.

Genel Bakış

Özel olay günlüklerini etkinleştirmek için bir Uygulama Analizler teknik profili ekleyin. Teknik profilde Application Analizler izleme anahtarını, olay adını ve kaydedilecek talepleri tanımlarsınız. Olay göndermek için teknik profili kullanıcı yolculuğunda düzenleme adımı olarak ekleyin.

Uygulama Analizler kullanırken aşağıdakileri göz önünde bulundurun:

  • Application Analizler'da yeni günlükler kullanılabilir duruma gelmeden önce genellikle beş dakikadan kısa bir gecikme olur.
  • Azure AD B2C, hangi taleplerin kaydedileceğini seçmenize olanak tanır. Kişisel verilere talep eklemeyin.
  • Kullanıcı oturumunu kaydetmek için, olayları birleştirmek için bağıntı kimliğini kullanabilirsiniz.
  • Uygulama Analizler teknik profilini doğrudan bir kullanıcı yolculuğundan veya alt yolculuktan çağırın. Uygulama Analizler teknik profilini doğrulama teknik profili olarak kullanmayın.

Önkoşullar

  • Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümündeki adımları tamamlayın.
  • Henüz yapmadıysanız bir web uygulaması kaydedin.

Application Insights kaynağı oluşturma

Azure AD B2C ile Application Analizler kullandığınızda tek yapmanız gereken bir kaynak oluşturmak ve izleme anahtarını almaktır. Bilgi için bkz. Uygulama Analizler kaynağı oluşturma.

  1. Azure Portal oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Microsoft Entra Id kiracınıza geçmek için üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalının sol üst köşesinde kaynak oluştur'u seçin ve ardından Uygulama Analizler'ni arayıp seçin.
  4. Oluştur seçeneğini belirleyin.
  5. Ad alanına kaynak için bir ad girin.
  6. Uygulama Türü için web uygulaması ASP.NET seçin.
  7. Kaynak Grubu için var olan bir grubu seçin veya yeni bir grup için bir ad girin.
  8. Oluştur seçeneğini belirleyin.
  9. Yeni Application Analizler kaynağını açın, Temel Parçalar'ı genişletin ve izleme anahtarını kopyalayın.

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

Beyanları tanımlama

Talep, Azure AD B2C ilkesi yürütme sırasında verilerin geçici olarak depolanmasını sağlar. Taleplerinizi ClaimsSchema öğesinde bildirirsiniz.

  1. İlkenizin uzantılar dosyasını açın. Dosya şuna benzer SocialAndLocalAccounts/TrustFrameworkExtensions.xmlolabilir: .

  2. BuildingBlocks öğesini arayın. öğesini görmüyorsanız ekleyin.

  3. ClaimsSchema öğesini bulun. öğesini görmüyorsanız ekleyin.

  4. ClaimsSchema öğesine aşağıdaki talepleri ekleyin:

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

Yeni teknik profiller ekleme

Teknik profiller özel ilkedeki işlevler olarak kabul edilebilir. Bu işlevler, bir teknik profilin başka bir teknik profil içerdiği ve ayarları değiştirdiği veya yeni işlevler eklediği teknik profil ekleme yaklaşımını kullanır. Aşağıdaki tablo, bir oturumu açmak ve olayları göndermek için kullanılan teknik profilleri tanımlar.

Teknik profil Görev
Uygulama Analizler-Ortak Tipik yapılandırmaya sahip ortak teknik profil. Uygulama Analizler izleme anahtarını, kaydedilecek talep koleksiyonunu ve geliştirici modunu içerir. Diğer teknik profiller ortak teknik profili içerir ve olay adı gibi daha fazla talep ekler.
Uygulama Analizler-SignInRequest Oturum açma isteği alındığında bir dizi talep içeren bir SignInRequest olayını kaydeder.
App Analizler-UserSignUp Kullanıcı bir kaydolma veya oturum açma yolculuğunda kaydolma seçeneğini tetiklediğinde UserSignUp olayını kaydeder.
Uygulama Analizler-SignInComplete Bağlı olan taraf uygulamasına bir belirteç gönderildiğinde başarılı kimlik doğrulamasından sonra bir SignInComplete olayı kaydeder.

Başlangıç paketinden TrustFrameworkExtensions.xml dosyasını açın. ClaimsProvider öğesine teknik profilleri ekleyin:

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

Önemli

Teknik profildeki AppInsights-Common izleme anahtarını Uygulama Analizler kaynağınızın sağladığı GUID ile değiştirin.

Teknik profilleri düzenleme adımları olarak ekleme

Teknik profillere başvuran yeni düzenleme adımları ekleyin.

Önemli

Yeni düzenleme adımlarını ekledikten sonra, 1'den N'ye herhangi bir tamsayı atlamadan adımları sıralı olarak yeniden numaralandırın.

  1. İkinci düzenleme adımı olarak çağırın AppInsights-SignInRequest . Bu adım, bir kaydolma veya oturum açma isteğinin alındığını izler.

    <!-- Track that we have received a sign in request -->
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="TrackSignInRequest" TechnicalProfileReferenceId="AppInsights-SignInRequest" />
      </ClaimsExchanges>
    </OrchestrationStep>
    
  2. Düzenleme adımından SendClaims önce öğesini çağıran AppInsights-UserSignupyeni bir adım ekleyin. Kullanıcı bir kaydolma veya oturum açma yolculuğunda kaydol düğmesini seçtiğinde tetikler.

    <!-- 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. Düzenleme adımından SendClaims sonra öğesini çağırın AppInsights-SignInComplete. Bu adım başarıyla tamamlanmış bir yolculuğu gösterir.

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

Dosyanızı karşıya yükleyin, ilkeyi çalıştırın ve olayları görüntüleyin

TrustFrameworkExtensions.xml dosyasını kaydedin ve karşıya yükleyin. Ardından uygulamanızdan bağlı olan taraf ilkesini çağırın veya Azure portalında Şimdi Çalıştır'ı kullanın. Olaylarınızın Uygulama Analizler'nde kullanılabilir olmasını bekleyin.

  1. Microsoft Entra kiracınızda Application Analizler kaynağını açın.
  2. Kullanım'ı ve ardından Olaylar'ı seçin.
  3. Sırasında değerini Son saat ve Ölçütü olarak 3 dakika olarak ayarlayın. Sonuçları görmek için pencereyi yenilemeniz gerekebilir.

Screenshot that shows Application Insights event statistics.

Daha fazla veri toplama

İş gereksinimlerinizi karşılamak için daha fazla talep kaydetmek isteyebilirsiniz. Talep eklemek için önce bir talep tanımlayın, ardından talebi giriş talepleri koleksiyonuna ekleyin. Uygulamaya eklediğiniz talepler Analizler-Ortak teknik profil tüm olaylarda görünür. Belirli bir teknik profile eklediğiniz talepler yalnızca bu olayda görünür. Giriş talebi öğesi aşağıdaki öznitelikleri içerir:

  • ClaimTypeReferenceId , bir talep türüne başvurudur.
  • PartnerClaimType, Azure Analizler'de görüntülenen özelliğin adıdır. olay için bir özelliğin {property:NAME}NAME eklendiği söz dizimini kullanın.
  • DefaultValue , olay adı gibi kaydedilecek önceden tanımlanmış bir değerdir. Kullanıcı yolculuğunda kullanılan bir talep boşsa varsayılan değer kullanılır. Örneğin, identityProvider talep Facebook gibi federasyon teknik profilleri tarafından ayarlanır. Talep boşsa, kullanıcının yerel bir hesapla oturum açtığını gösterir. Bu nedenle, varsayılan değer Yerel olarak ayarlanır. Ayrıca , uygulama kimliği veya kullanıcı IP adresi gibi bağlamsal bir değere sahip bir talep çözümleyici kaydedebilirsiniz.

Talepleri işleme

Giriş beyanlarını değiştirmek veya Uygulama Analizler göndermeden önce yenilerini oluşturmak için giriş talepleri dönüşümlerini kullanabilirsiniz. Aşağıdaki örnekte, teknik profil giriş talepleri dönüştürmesini CheckIsAdmin içerir.

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

Olay ekleme

Olay eklemek için teknik profili içeren AppInsights-Common yeni bir teknik profil oluşturun. Ardından yeni teknik profili kullanıcı yolculuğuna düzenleme adımı olarak ekleyin. Hazır olduğunuzda olayı tetikleme amacıyla Önkoşul öğesini kullanın. Örneğin, olayı yalnızca kullanıcılar çok faktörlü kimlik doğrulamasından geçtiğinde rapor edin.

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

Önemli

Kullanıcı yolculuğuna bir olay eklediğinizde düzenleme adımlarını sıralı olarak yeniden numaralandırmayı unutmayın.

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

Geliştirici modunu etkinleştirme

Olayları tanımlamak için Uygulama Analizler kullandığınızda geliştirici modunun etkinleştirilip etkinleştirilmediğini belirtebilirsiniz. Geliştirici modu, olayların nasıl arabelleğe alınıyor olduğunu denetler. En az olay hacmine sahip bir geliştirme ortamında geliştirici modunun etkinleştirilmesi, olayların uygulama Analizler hemen gönderilmesine neden olur. false varsayılan değerdir. Üretim ortamlarında geliştirici modunu etkinleştirmeyin.

Geliştirici modunu etkinleştirmek için, meta verileri true teknik profilde AppInsights-Common olarak değiştirinDeveloperMode:

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

Telemetriyi devre dışı bırakma

Uygulama Analizler günlüklerini devre dışı bırakmak için true meta verileri teknik profilde AppInsights-Common olarak değiştirinDisableTelemetry:

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

Sonraki adımlar

Azure Uygulaması Analizler kullanarak özel KPI panoları oluşturmayı öğrenin.