Samla Azure Active Directory B2C-loggar med Application Insights

Innan du börjaranvänder du väljaren Välj en principtyp för att välja den typ av princip som du ställer in. 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. Stegen som krävs i den här artikeln är olika för varje metod.

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

Den här artikeln innehåller steg för att samla in loggar Active Directory B2C (Azure AD B2C) så att du kan diagnostisera problem med dina anpassade principer. I Application Insights finns olika sätt att diagnostisera undantag och visualisera prestandaproblem i programmet. Azure AD B2C har en funktion för att skicka data till Application Insights.

De detaljerade aktivitetsloggarna som beskrivs här bör endast aktiveras under utvecklingen av dina anpassade principer.

Varning

Ange inte till DeploymentModeDevelopment i produktionsmiljöer. Loggar samlar in alla anspråk som skickas till och från identitetsproviders. Du som utvecklare tar ansvar för alla personliga data som samlas in i dina program Insights loggar. Dessa detaljerade loggar samlas bara in när principen placeras i UTVECKLARLÄGE.

Konfigurera Insights

Om du inte redan har en kan du skapa en instans av Application Insights i din prenumeration.

Tips

En enda instans av Application Insights kan användas för flera Azure AD B2C klienter. I frågan kan du sedan filtrera efter klientorganisation eller principnamn. Mer information finns i loggarna i Program Insights exempel.

Följ dessa steg om du vill Insights en befintlig instans av Application Insights i din prenumeration:

  1. Logga in på Azure-portalen.
  2. Kontrollera att du använder Azure AD-katalogen som har din Azure-prenumeration och inte din Azure AD B2C katalog. Välj ikonen Kataloger + prenumerationer i portalens verktygsfält.
  3. portalens inställningar | På sidan Kataloger + prenumerationer hittar du din Azure AD-katalog i listan Katalognamn och väljer sedan Växla.
  4. Öppna den programresurs Insights som du skapade tidigare.
  5. På sidan Översikt registrerar du instrumenteringsnyckeln

Följ dessa steg om du Insights skapa en instans av Application Insights i din prenumeration:

  1. Logga in på Azure-portalen.
  2. Kontrollera att du använder Azure AD-katalogen som har din Azure-prenumeration och inte din Azure AD B2C katalog. Välj ikonen Kataloger + prenumerationer i portalens verktygsfält.
  3. portalens inställningar | På sidan Kataloger + prenumerationer hittar du din Azure AD-katalog i listan Katalognamn och väljer sedan Växla.
  4. Välj Skapa en resurs i den vänstra navigeringsmenyn.
  5. Sök efter och välj Application Insightsoch välj sedan Skapa.
  6. Fyll i formuläret, välj Granska + skapaoch välj sedan Skapa.
  7. När distributionen har slutförts väljer du Gå till resurs.
  8. Under Konfigurera i Insights program väljer du Egenskaper.
  9. Registrera INSTRUMENTATIONSNYCKELN för användning i ett senare steg.

Konfigurera den anpassade principen

  1. Öppna RP-filen (förlitande part), till exempel SignUpOrSignin.xml.

  2. Lägg till följande attribut i <TrustFrameworkPolicy> elementet :

    DeploymentMode="Development"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    
  3. Om den inte redan finns lägger du till en <UserJourneyBehaviors> underordnad nod i <RelyingParty> noden. Den måste finnas efter <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" /> .

  4. Lägg till följande nod som underordnad elementet <UserJourneyBehaviors> . Ersätt med den {Your Application Insights Key} Application Insights {Your Application Insights Key} du antecknade tidigare.

    <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    
    • DeveloperMode="true" talar om för ApplicationInsights att påskynda telemetrin via bearbetningspipelinen. Bra för utveckling, men begränsat till stora volymer. I produktion anger du DeveloperMode till false .
    • ClientEnabled="true" skickar ApplicationInsights-skriptet på klientsidan för att spåra sidvisning och fel på klientsidan. Du kan visa dessa i tabellen browserTimings i application Insights portalen. Genom att ange lägger du till Application Insights i sidskriptet och du får tidsinställningar för sidinbelastningar och AJAX-anrop, antal, information om webbläsarundantag och AJAX-fel samt antal användare ClientEnabled= "true" och sessioner. Det här fältet ärvalfritt och är inställt på som standard.
    • ServerEnabled="true"skickar den befintliga UserJourneyRecorder JSON som en anpassad händelse till Application Insights.

    Ett exempel:

    <TrustFrameworkPolicy
      ...
      TenantId="fabrikamb2c.onmicrosoft.com"
      PolicyId="SignUpOrSignInWithAAD"
      DeploymentMode="Development"
      UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    >
    ...
    <RelyingParty>
      <DefaultUserJourney ReferenceId="UserJourney ID from your extensions policy, or equivalent (for example: SignUpOrSigninWithAzureAD)" />
      <UserJourneyBehaviors>
        <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
      </UserJourneyBehaviors>
      ...
    </TrustFrameworkPolicy>
    
  5. Upload principen.

Se loggarna i Application Insights

Det finns en kort fördröjning, vanligtvis mindre än fem minuter, innan du kan se nya loggar i Application Insights.

  1. Öppna den programresurs Insights som du skapade i Azure Portal.
  2. På sidan Översikt väljer du Loggar.
  3. Öppna en ny flik i Insights.

Här är en lista över frågor som du kan använda för att se loggarna:

Söka i data Beskrivning
traces Hämta alla loggar som genereras av Azure AD B2C
traces | where timestamp > ago(1d) Hämta alla loggar som genererats av Azure AD B2C den senaste dagen.
traces | where message contains "exception" | where timestamp > ago(2h) Hämta alla loggar med fel från de senaste två timmarna.
traces | where customDimensions.Tenant == "contoso.onmicrosoft.com" and customDimensions.UserJourney == "b2c_1a_signinandup" Hämta alla loggar som genereras av Azure AD B2C contoso.onmicrosoft.com klientorganisation och användarresan är b2c_1a_signinandup.
traces | where customDimensions.CorrelationId == "00000000-0000-0000-0000-000000000000" Hämta alla loggar som genererats av Azure AD B2C för ett korrelations-ID. Ersätt korrelations-ID:t med ditt korrelations-ID.

Posterna kan vara långa. Exportera till CSV för en närmare titt.

Mer information om frågor finns i Översikt över loggfrågor i Azure Monitor.

Se loggarna i VS Code-tillägget

Vi rekommenderar att du installerar Azure AD B2C förVS Code. Med Azure AD B2C-tillägget ordnas loggarna efter principnamn, korrelations-ID (Application Insights visar den första siffran i korrelations-ID:t) och loggtidsstämpeln. Den här funktionen hjälper dig att hitta relevant logg baserat på den lokala tidsstämpeln och se hur användarresan körs av Azure AD B2C.

Anteckning

Communityn har utvecklat vs code-tillägget för Azure AD B2C för att hjälpa identitetsutvecklare. Tillägget stöds inte av Microsoft och görs endast tillgängligt som det är.

Ange API-åtkomst Insights Application Insights

När du har konfigurerat Application Insights och konfigurerat den anpassade principen måste du hämta API-ID:tför Application Insights och skapa API-nyckeln. Både API-ID:t och API-nyckeln används av Azure AD B2C för att läsa application Insights-händelser (telemetrier). Dina API-nycklar bör hanteras som lösenord. Håll den hemlig.

Anteckning

Program Insights instrumentationsnyckel som du skapade tidigare används av Azure AD B2C för att skicka telemetrier till Application Insights. Du använder bara instrumenteringsnyckeln i Azure AD B2C princip, inte i vs-kodtillägget.

Så här hämtar du Insights-ID och nyckel för program:

  1. I Azure Portal öppnar du programresursen Insights för ditt program.

  2. Välj Inställningaroch välj sedan API-åtkomst.

  3. Kopiera program-ID

  4. Välj Skapa API-nyckel

  5. Markera telemetrirutan Läs.

  6. Kopiera nyckeln innan du stänger bladet Skapa API-nyckel och spara den på en säker plats. Om du tappar bort nyckeln måste du skapa en till.

    Screenshot that demonstrates how to create API access key.

Konfigurera Azure AD B2C VS Code-tillägg

Nu när du har Azure Application API-ID och nyckel för insights kan du konfigurera vs-kodtillägget för att läsa loggarna. Azure AD B2C VS Code-tillägget innehåller två omfång för inställningar:

  • User Global Inställningar – Inställningar som gäller globalt för alla instanser av VS Code som du öppnar.
  • Arbetsytans Inställningar – Inställningar lagras på din arbetsyta och gäller endast när arbetsytan öppnas (med hjälp av den öppna mappen i VS Code).
  1. Klicka Azure AD B2C på ikonen Inställningar Spårningsutforskaren.

    Screenshot that demonstrates select the application insights settings.

  2. Ange Azure Application Insights-ID och nyckel.

  3. Klicka på Spara

När du har sparat inställningarna visas Application Insights-loggarna i fönstret Azure AD B2C Trace (App Insights).

Screenshot of Azure AD B2C extension for vscode, presenting the Azure Application insights trace.

Konfigurera Insights i produktion

För att förbättra prestanda i produktionsmiljön och få en bättre användarupplevelse är det viktigt att konfigurera principen så att meddelanden som inte är viktiga ignoreras. Använd följande konfiguration i produktionsmiljöer.

  1. Ange DeploymentMode attributet för DeploymentMode till Production .

    <TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0"
    TenantId="yourtenant.onmicrosoft.com"
    PolicyId="B2C_1A_signup_signin"
    PublicPolicyUri="http://yourtenant.onmicrosoft.com/B2C_1A_signup_signin"
    DeploymentMode="Production"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights">
    
  2. Ange för DeveloperModeDeveloperMode till false .

    <UserJourneyBehaviors>
      <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="false" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    </UserJourneyBehaviors>
    
  3. Upload och testa principen.

Nästa steg