Sdílet prostřednictvím


Shromažďování protokolů Azure Active Directory B2C pomocí Application Insights

Důležité

Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.

Než začnete, pomocí selektoru Zvolit typ zásady v horní části této stránky zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.

Tato funkce je dostupná pouze pro vlastní zásady. Ve krocích nastavení vyberte vlastní politika v předchozím výběru.

Poznámka:

Tato funkce je ve verzi Public Preview.

Tento článek obsahuje postup shromažďování protokolů ze služby Active Directory B2C (Azure AD B2C), abyste mohli diagnostikovat problémy s vlastními zásadami. Application Insights nabízí způsob, jak diagnostikovat výjimky a vizualizovat problémy s výkonem aplikací. Azure AD B2C obsahuje funkci umožňující odesílat data do Application Insights.

Podrobné protokoly aktivit popsané zde by měly být povoleny pouze při vývoji vlastních zásad.

Výstraha

Nenastavujte DeploymentMode na Development v produkčních prostředích. Protokoly shromažďují všechny požadavky odesílané k a od zprostředkovatelů identit. Jako vývojář přebíráte odpovědnost za veškerá osobní data shromážděná v protokolech Application Insights. Tyto podrobné protokoly se shromažďují jenom v případech, kdy jsou zásady umístěné v REŽIMU DEVELOPER.

Nastavení Application Insights

Pokud ho ještě nemáte, vytvořte ve svém předplatném instanci Application Insights.

Návod

Jednu instanci Application Insights je možné použít pro více tenantů Azure AD B2C. Potom v dotazu můžete filtrovat podle tenanta nebo názvu zásady. Další informace najdete v protokolech v ukázkách Application Insights .

Pokud chcete použít existující instanci Application Insights ve vašem předplatném, postupujte takto:

  1. Přihlaste se do Azure Portalu.
  2. Ujistěte se, že používáte adresář Microsoft Entra, který má vaše předplatné Azure, a ne váš adresář Azure AD B2C. Na panelu nástrojů portálu vyberte ikonu Adresáře a předplatná .
  3. V části Nastavení portálu | Adresáře a předplatná najděte ve seznamu názvy adresářů váš adresář Microsoft Entra a pak vyberte Přepnout.
  4. Otevřete prostředek Application Insights, který jste vytvořili dříve.
  5. Na stránce Přehled zaznamenejte připojovací řetězec

Pokud chcete ve svém předplatném vytvořit instanci Application Insights, postupujte takto:

  1. Přihlaste se do Azure Portalu.
  2. Ujistěte se, že používáte adresář Microsoft Entra, který má vaše předplatné Azure, a ne váš adresář Azure AD B2C. Na panelu nástrojů portálu vyberte ikonu Adresáře a předplatná .
  3. V části Nastavení portálu | Adresáře a předplatná najděte ve seznamu názvy adresářů váš adresář Microsoft Entra a pak vyberte Přepnout.
  4. V levé navigační nabídce vyberte Vytvořit prostředek .
  5. Vyhledejte a vyberte Application Insights a pak vyberte Vytvořit.
  6. Vyplňte formulář, vyberte Zkontrolovat a vytvořit a pak vyberte Vytvořit.
  7. Po dokončení nasazení vyberte Přejít k prostředku.
  8. V části Konfigurovat v nabídce Application Insights vyberte Vlastnosti.
  9. Zaznamenejte připojovací řetězec pro použití v pozdějším kroku.

Nakonfigurujte vlastní zásady

  1. Otevřete soubor předávající strany , například SignUpOrSignin.xml.

  2. Do elementu <TrustFrameworkPolicy> přidejte následující atributy:

    DeploymentMode="Development"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    
  3. Pokud ještě neexistuje, přidejte do uzlu <UserJourneyBehaviors> uzel dítěte <RelyingParty>. Musí být umístěn po <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" />. Kompletní pořadí podřízených elementů RelyingParty najdete v referenčním schématu RelyingParty.

  4. Přidejte následující uzel jako potomka elementu <UserJourneyBehaviors>. Nezapomeňte nahradit {Your Application Insights Key}připojovacím řetězcem Application Insights, který jste si poznamenali dříve.

    <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    
    • DeveloperMode="true" informuje ApplicationInsights, aby urychlil telemetrii prostřednictvím zpracovatelského kanálu. Vhodné pro vývoj, ale omezené při vysokých objemech. V produkčním prostředí nastavte DeveloperMode na false.
    • ClientEnabled="true" odešle skript na straně klienta ApplicationInsights pro sledování zobrazení stránky a chyby na straně klienta. Můžete to zobrazit v tabulce browserTimings na portálu Application Insights. Nastavením ClientEnabled= "true"přidáte Application Insights do skriptu stránky a získáte časování načítání stránek a volání AJAX, počty, podrobnosti o výjimkách prohlížeče a selhání AJAX a počty uživatelů a relací. Toto pole je volitelné a je ve výchozím nastavení nastavené false .
    • ServerEnabled="true" odešle existující userJourneyRecorder JSON jako vlastní událost do Application Insights.

    Například:

    <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" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
      </UserJourneyBehaviors>
      ...
    </TrustFrameworkPolicy>
    
  5. Nahrajte politiku.

Zobrazení protokolů v Application Insights

Obvykle je zde krátké zpoždění, typicky méně než pět minut, než uvidíte nové protokoly v Application Insights.

  1. Otevřete prostředek Application Insights, který jste vytvořili na webu Azure Portal.
  2. Na stránce Přehled vyberte Protokoly.
  3. Otevřete novou kartu v Application Insights.

Tady je seznam dotazů, které můžete použít k zobrazení protokolů:

Dotaz Popis
traces Získejte všechny protokoly generované službou Azure AD B2C
traces | where timestamp > ago(1d) Získejte všechny protokoly vygenerované službou Azure AD B2C za posledních 24 hodin.
traces | where message contains "exception" | where timestamp > ago(2h) Získejte všechny protokoly s chybami za poslední dvě hodiny.
traces | where customDimensions.Tenant == "contoso.onmicrosoft.com" and customDimensions.UserJourney == "b2c_1a_signinandup" Získejte všechny protokoly vygenerované tenantem Azure AD B2C contoso.onmicrosoft.com, kde cesta uživatele je b2c_1a_signinandup.
traces | where customDimensions.CorrelationId == "aaaa0000-bb11-2222-33cc-444444dddddd" Získejte všechny logy vygenerované službou Azure AD B2C pro ID korelace. Nahraďte ID korelace svým ID korelace.

Položky můžou být dlouhé. Exportujte do CSV pro podrobnější pohled.

Další informace o dotazování najdete v tématu Přehled dotazů protokolu ve službě Azure Monitor.

Zobrazení protokolů v rozšíření VS Code

Doporučujeme nainstalovat rozšíření Azure AD B2C pro VS Code. S rozšířením Azure AD B2C jsou protokoly uspořádané podle názvu zásady, ID korelace (Application Insights představuje první číslici ID korelace) a časové razítko protokolu. Tato funkce vám pomůže najít příslušný protokol na základě místního časového razítka a zobrazit cestu uživatele, jak ji spouští Azure AD B2C.

Poznámka:

Komunita vyvinula rozšíření VS Code, které lidem pomůže implementovat a udržovat řešení Azure AD B2C. Rozšíření není společností Microsoft podporováno a je zpřístupněno výhradně as-is.

Nastavení přístupu k rozhraní API Application Insights

Po nastavení Application Insights a konfiguraci vlastních zásad potřebujete získat ID rozhraní API Application Insights a vytvořit klíč rozhraní API. ID rozhraní API i klíč rozhraní API používá rozšíření Azure AD B2C ke čtení událostí telemetrie v rámci Application Insights. Klíče rozhraní API by se měly spravovat jako hesla. Uchovávejte ho v tajnosti.

Poznámka:

Připojovací řetězec Application Insights, který dříve vytvoříte, používá Azure AD B2C k odesílání telemetrických dat do Application Insights. Připojovací řetězec použijete jenom v zásadách Azure AD B2C, ne v rozšíření VS Code.

Získání ID a klíče Application Insights:

  1. Na webu Azure Portal otevřete prostředek Application Insights pro vaši aplikaci.

  2. Vyberte Konfigurovat a pak vyberte Přístup k rozhraní API.

  3. Zkopírování ID aplikace

  4. Vyberte Vytvořit klíč rozhraní API.

  5. Zaškrtněte políčko Číst telemetrii .

  6. Před zavřením okna Vytvořit klíč rozhraní API zkopírujte klíč a uložte ho někam bezpečně. Pokud klíč ztratíte, musíte vytvořit další.

    Snímek obrazovky, který ukazuje, jak vytvořit přístupový klíč rozhraní API

Nastavení rozšíření Azure AD B2C VS Code

Teď, když máte ID a klíč rozhraní API služby Azure Application Insights, můžete nakonfigurovat rozšíření VS Code pro čtení protokolů. Rozšíření Azure AD B2C VS Code poskytuje dva obory nastavení:

  • Globální nastavení uživatele – Nastavení, která se vztahují globálně na libovolnou instanci editoru VS Code, kterou otevřete.
  • Nastavení pracovního prostoru – Nastavení uložená v pracovním prostoru a platí jenom při otevření pracovního prostoru (pomocí otevřené složky VS Code).
  1. V Průzkumníku trasování Azure AD B2C klikněte na ikonu Nastavení.

    Snímek obrazovky znázorňuje výběr nastavení Application Insights

  2. Zadejte ID a klíč služby Azure Application Insights.

  3. Klikněte na Uložit.

Po uložení nastavení se protokoly Application Insights zobrazí v okně Azure AD B2C Trace (App Insights).

Snímek obrazovky s rozšířením Azure AD B2C pro VSCode a zobrazením trasování v Azure Application Insights

Konfigurace Application Insights v produkčním prostředí

Pokud chcete zlepšit výkon produkčního prostředí a lepší uživatelské prostředí, je důležité nakonfigurovat zásady tak, aby ignorovaly zprávy, které nejsou důležité. Musíte se také ujistit, že nezapíšete identifikovatelné osobní údaje (PII). V produkčních prostředích použijte následující konfiguraci a do application Insights se neposílají žádné protokoly.

  1. DeploymentMode Nastavte atribut TrustFrameworkPolicy na 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. Nastavte DeveloperModeJourneyInsights na false.

    <UserJourneyBehaviors>
      <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="false" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    </UserJourneyBehaviors>
    
  3. Nahrajte a otestujte zásady.

Další kroky