Samla in Azure Active Directory B2C-loggar med Application Insights

Innan du börjar använder du väljaren Välj en principtyp för att välja den typ av princip som du konfigurerar. 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. De steg som krävs i den här artikeln skiljer sig åt 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 från 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 DeploymentMode inte till Development i produktionsmiljöer. Loggar samlar in alla anspråk som skickas till och från identitetsprovidrar. Du som utvecklare tar på dig ansvaret för alla personuppgifter som samlas in i dina Application Insights-loggar. Dessa detaljerade loggar samlas bara in när principen placeras i UTVECKLARLÄGE.

Konfigurera Application Insights

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

Dricks

En enda instans av Application Insights kan användas för flera Azure AD B2C-klienter. I din fråga kan du sedan filtrera efter klientorganisationen eller principnamnet. Mer information finns i loggarna i Application Insights-exempel .

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

  1. Logga in på Azure-portalen.
  2. Kontrollera att du använder katalogen Microsoft Entra som har din Azure-prenumeration och inte din Azure AD B2C-katalog. Välj ikonen Kataloger + prenumerationer i portalens verktygsfält.
  3. I portalinställningarna | Sidan Kataloger + prenumerationer, leta upp din Microsoft Entra-katalog i listan Katalognamn och välj sedan Växla.
  4. Öppna Application Insights-resursen som du skapade tidigare.
  5. På sidan Översikt och registrera instrumenteringsnyckeln

Följ dessa steg för att skapa en instans av Application Insights i din prenumeration:

  1. Logga in på Azure-portalen.
  2. Kontrollera att du använder katalogen Microsoft Entra som har din Azure-prenumeration och inte din Azure AD B2C-katalog. Välj ikonen Kataloger + prenumerationer i portalens verktygsfält.
  3. I portalinställningarna | Sidan Kataloger + prenumerationer, leta upp din Microsoft Entra-katalog i listan Katalognamn och välj sedan Växla.
  4. Välj Skapa en resurs i den vänstra navigeringsmenyn.
  5. Sök efter och välj Application Insights och välj sedan Skapa.
  6. Fyll i formuläret, välj Granska + skapa och välj sedan Skapa.
  7. När distributionen är klar väljer du Gå till resurs.
  8. Under Konfigurera i Application Insights-menyn väljer du Egenskaper.
  9. Registrera INSTRUMENTATIONSNYCKELn för användning i ett senare steg.

Konfigurera den anpassade principen

  1. Öppna den förlitande partfilen (RP), till exempel SignUpOrSignin.xml.

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

    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" />. Se RelyingParty-schemareferens för en fullständig ordning av underordnade element för RelyingParty .

  4. Lägg till följande nod som underordnad elementet <UserJourneyBehaviors> . Ersätt {Your Application Insights Key} med application insights-instrumentationsnyckeln som du registrerade tidigare.

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

    Till 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)" />
      <Endpoints>
         <!--points to refresh token journey when app makes refresh token request-->
         <Endpoint Id="Token" UserJourneyReferenceId="RedeemRefreshToken" />
      </Endpoints>
      <UserJourneyBehaviors>
        <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
      </UserJourneyBehaviors>
      ...
    </TrustFrameworkPolicy>
    
  5. Ladda upp principen.

Se loggarna i Application Insights

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

  1. Öppna Application Insights-resursen som du skapade i Azure-portalen.
  2. På sidan Översikt väljer du Loggar.
  3. Öppna en ny flik i Application Insights.

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

Fråga 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 för 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ändarens resa är b2c_1a_signinandup.
traces | where customDimensions.CorrelationId == "00000000-0000-0000-0000-000000000000" Hämta alla loggar som genereras 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-tillägget för VS Code. Med Azure AD B2C-tillägget ordnas loggarna efter principnamnet, korrelations-ID :t (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 användarresan som körs av Azure AD B2C.

Kommentar

Communityn har utvecklat VS Code-tillägget för att hjälpa personer att implementera och underhålla Azure AD B2C-lösningar. Tillägget stöds inte av Microsoft och görs strikt tillgängligt som det är.

Ange APPLICATION Insights API-åtkomst

När du har konfigurerat Application Insights och konfigurerat den anpassade principen måste du hämta api-ID:t för Application Insights och skapa EN API-nyckel. Både API-ID:t och API-nyckeln används av Azure AD B2C-tillägget för att läsa Application Insights-händelserna (telemetrier). Dina API-nycklar ska hanteras som lösenord. Håll det hemligt.

Kommentar

Application Insights-instrumentationsnyckeln som du skapade tidigare används av Azure AD B2C för att skicka telemetrier till Application Insights. Du använder endast instrumentationsnyckeln i din Azure AD B2C-princip, inte i VS Code-tillägget.

Så här hämtar du Application Insights-ID och nyckel:

  1. Öppna Application Insights-resursen för ditt program i Azure-portalen.

  2. Välj Konfigurera och sedan API-åtkomst.

  3. Kopiera program-ID: t

  4. Välj Skapa API-nyckel

  5. Markera rutan Läs telemetri .

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

    Screenshot that demonstrates how to create API access key.

Konfigurera Azure AD B2C VS Code-tillägget

Nu när du har API-ID och nyckel för Azure Application Insights kan du konfigurera VS Code-tillägget så att det läser 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.
  • Arbetsyta Inställningar – Inställningar lagras i din arbetsyta och gäller endast när arbetsytan öppnas (med vs Code-öppna mappen).
  1. Från Azure AD B2C Trace Explorer klickar du på ikonen Inställningar.

    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 Application Insights i produktion

För att förbättra produktionsmiljöns prestanda och bättre användarupplevelse är det viktigt att konfigurera principen för att ignorera meddelanden som inte är viktiga. Använd följande konfiguration i produktionsmiljöer och inga loggar skickas till dina programinsikter.

  1. DeploymentMode Ange attributet för TrustFrameworkPolicy 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. DeveloperModeAnge JourneyInsights till false.

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

Nästa steg