Собирайте журналы Azure Active Directory B2C с помощью Application InsightsCollect Azure Active Directory B2C logs with Application Insights

В этой статье приводятся действия по сбору журналов из Active Directory B2C (Azure AD B2C), чтобы можно было диагностировать проблемы с пользовательскими политиками.This article provides steps for collecting logs from Active Directory B2C (Azure AD B2C) so that you can diagnose problems with your custom policies. Application Insights позволяет диагностировать исключения и визуализировать проблемы производительности в приложениях.Application Insights provides a way to diagnose exceptions and visualize application performance issues. Azure AD B2C включает функцию отправки данных в Application Insights.Azure AD B2C includes a feature for sending data to Application Insights.

Подробные журналы действий, описанные здесь, должны быть включены только во время разработки пользовательских политик.The detailed activity logs described here should be enabled ONLY during the development of your custom policies.

Предупреждение

Не включайте режим разработки в рабочей среде.Do not enable development mode in production. Журналы собираются все утверждения, отправленные поставщикам удостоверений и от них.Logs collect all claims sent to and from identity providers. Разработчик несет ответственность за любые персональные данные, собранные в журналах Application Insights.You as the developer assume responsibility for any personal data collected in your Application Insights logs. Эти подробные журналы собираются только в том случае, если политика помещается в режим разработчика.These detailed logs are collected only when the policy is placed in DEVELOPER MODE.

Настройка Application InsightsSet up Application Insights

Создайте экземпляр Application Insights в подписке, если он еще не создан.If you don't already have one, create an instance of Application Insights in your subscription.

  1. Войдите на портал Azure.Sign in to the Azure portal.
  2. Выберите фильтр каталог и подписка в верхнем меню, а затем выберите каталог, содержащий подписку Azure (а не Azure AD B2C каталог).Select the Directory + subscription filter in the top menu, and then select the directory that contains your Azure subscription (not your Azure AD B2C directory).
  3. Выберите создать ресурс в меню навигации слева.Select Create a resource in the left-hand navigation menu.
  4. Найдите и выберите Application Insights, а затем щелкните создать.Search for and select Application Insights, then select Create.
  5. Заполните форму, выберите проверить и создать, а затем щелкните создать.Complete the form, select Review + create, and then select Create.
  6. После завершения развертывания выберите Переход к ресурсу.Once the deployment has been completed, select Go to resource.
  7. В меню Настройка в Application Insights выберите пункт свойства.Under Configure in Application Insights menu, select Properties.
  8. Запишите ключ инструментирования для использования на следующем шаге.Record the INSTRUMENTATION KEY for use in a later step.

Настройка настраиваемой политикиConfigure the custom policy

  1. Откройте файл проверяющей стороны (RP), например SignUpOrSignin.xml.Open the relying party (RP) file, for example SignUpOrSignin.xml.

  2. Добавьте следующие атрибуты в элемент <TrustFrameworkPolicy>.Add the following attributes to the <TrustFrameworkPolicy> element:

    DeploymentMode="Development"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    
  3. Добавьте <UserJourneyBehaviors> в узел дочерний узел, если он еще не создан <RelyingParty> .If it doesn't already exist, add a <UserJourneyBehaviors> child node to the <RelyingParty> node. Он должен располагаться сразу после <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" /> .It must be located immediately after <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" />.

  4. Добавьте следующий узел в качестве дочернего узла элемента <UserJourneyBehaviors>.Add the following node as a child of the <UserJourneyBehaviors> element. Обязательно замените {Your Application Insights Key} Application Insightsным ключом инструментирования , записанным ранее.Make sure to replace {Your Application Insights Key} with the Application Insights Instrumentation Key that you recorded earlier.

    <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    
    • DeveloperMode="true"сообщает ApplicationInsights, что необходимо ускорить передачу данных телеметрии через конвейер обработки.DeveloperMode="true" tells ApplicationInsights to expedite the telemetry through the processing pipeline. Подходит для разработки, но ограничена большими объемами томов.Good for development, but constrained at high volumes.
    • ClientEnabled="true"отправляет скрипт на стороне клиента ApplicationInsights для отслеживания просмотра страниц и ошибок на стороне клиента.ClientEnabled="true" sends the ApplicationInsights client-side script for tracking page view and client-side errors. Их можно просмотреть в таблице бровсертимингс на портале Application Insights.You can view these in the browserTimings table in the Application Insights portal. При установке ClientEnabled= "true" вы добавляете в скрипт страницы Application Insights и получаете время загрузки страниц и вызовов AJAX, количество, сведения об исключениях браузера и СБОЯХ AJAX, а также число пользователей и сеансов.By setting ClientEnabled= "true", you add Application Insights to your page script and you get timings of page loads and AJAX calls, counts, details of browser exceptions and AJAX failures, and user and session counts. Это поле является необязательными по false умолчанию имеет значение.This field is optional, and is set to false by default.
    • Параметр ServerEnabled="true" отправляет существующие данные JSON UserJourneyRecorder как пользовательское событие в Application Insights.ServerEnabled="true" sends the existing UserJourneyRecorder JSON as a custom event to Application Insights.

    Например.For example:

    <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 the policy.

Просмотр журналов в Application InsightsSee the logs in Application Insights

Для просмотра новых журналов в Application Insights требуется небольшая задержка (обычно менее пяти минут).There is a short delay, typically less than five minutes, before you can see new logs in Application Insights.

  1. Откройте созданный ресурс Application Insights на портале Azure.Open the Application Insights resource that you created in the Azure portal.
  2. В меню Обзор выберите пункт аналитика.In the Overview menu, select Analytics.
  3. Откройте новую вкладку в Application InsightsOpen a new tab in Application Insights.

Ниже приведен список запросов, которые можно использовать для просмотра журналов.Here is a list of queries you can use to see the logs:

ЗапросQuery ОписаниеDescription
traces Просмотр всех журналов, созданных Azure AD B2CSee all of the logs generated by Azure AD B2C
traces | where timestamp > ago(1d) Просмотр всех журналов, созданных Azure AD B2C за последний деньSee all of the logs generated by Azure AD B2C for the last day

Записи могут быть длинными.The entries may be long. Выполните экспорт в CSV-файл, чтобы изучить их подробнее.Export to CSV for a closer look.

Дополнительные сведения о запросах см. в разделе Обзор запросов журналов в Azure Monitor.For more information about querying, see Overview of log queries in Azure Monitor.

Дальнейшие действияNext steps

Для разработчиков удостоверений сообщество разработало средство просмотра пути взаимодействия пользователя.The community has developed a user journey viewer to help identity developers. Оно считывается из экземпляра Application Insights и обеспечивает хорошо структурированное представление событий пути взаимодействия пользователя.It reads from your Application Insights instance and provides a well-structured view of the user journey events. Исходный код можно получить и развернуть в собственном решении.You obtain the source code and deploy it in your own solution.

Пользовательский проигрыватель не поддерживается корпорацией Майкрософт и становится доступным строго как есть.The user journey player is not supported by Microsoft, and is made available strictly as-is.

Версию средства просмотра, считывающего события из Application Insights на GitHub, можно найти здесь:You can find the version of the viewer that reads events from Application Insights on GitHub, here:

Azure-Samples/Active-Directory-B2C-Advanced-PoliciesAzure-Samples/active-directory-b2c-advanced-policies