Проверка подлинности Microsoft Entra для Application Insights.

Приложение Аналитика теперь поддерживает проверку подлинности Microsoft Entra. Используя идентификатор Microsoft Entra, вы можете убедиться, что в Аналитика приложения будут приняты только проверенные данные телеметрии.

Использование различных систем проверки подлинности может быть обременительным и создавать риски, так как трудно управлять учетными данными в большом масштабе. Теперь вы можете отказаться от локальной проверки подлинности , чтобы обеспечить только проверку подлинности телеметрии с помощью управляемых удостоверений и идентификатора Microsoft Entra в ресурсе. Эта функция является шагом для повышения безопасности и надежности телеметрии, используемой для принятия критически важных операционных (оповещений и автомасштабирования) и бизнес-решений.

Примечание.

В этом документе рассматриваются прием данных в приложение Аналитика с помощью проверки подлинности на основе идентификаторов Microsoft Entra. Сведения о запросе данных в приложении Аналитика см. в разделе "Запрос приложения" Аналитика с помощью проверки подлинности Microsoft Entra.

Необходимые компоненты

Для включения приема с проверкой подлинности Microsoft Entra необходимо выполнить следующие предварительные действия. Вам нужно:

Неподдерживаемые сценарии

Следующие пакеты средств разработки программного обеспечения (ПАКЕТЫ SDK) и функции не поддерживаются для использования с проверкой подлинности Microsoft Entra.

Настройка и включение проверки подлинности на основе идентификатора Microsoft Entra

  1. Если у вас еще нет удостоверения, создайте его с помощью управляемого удостоверения или субъекта-службы.

  2. Назначьте роль службе Azure.

    Выполните действия, описанные в разделе "Назначение ролей Azure", чтобы добавить роль издателя метрик мониторинга из целевого ресурса приложения Аналитика в ресурс Azure, из которого отправляется данные телеметрии.

    Примечание.

    Хотя роль издателя метрик мониторинга говорит "метрики", она будет публиковать все данные телеметрии в ресурсе Application Аналитика.

  3. Следуйте инструкциям по настройке в соответствии с приведенным ниже языком.

Примечание.

Поддержка идентификатора Microsoft Entra в пакете SDK для приложений Аналитика .NET включается начиная с версии 2.18-Beta3.

Пакет SDK .NET для Application Insights поддерживает классы учетных данных, предоставляемые удостоверением Azure.

  • Рекомендуется DefaultAzureCredential для локальной разработки.
  • Рекомендуется ManagedIdentityCredential использовать управляемые удостоверения, назначенные системой и назначаемые пользователем.
    • Для удостоверений, назначаемых системой, используйте конструктор по умолчанию без параметров.
    • Для назначаемого пользователем укажите идентификатор клиента конструктору.

В следующем примере показано, как вручную создать и настроить TelemetryConfiguration с помощью .NET:

TelemetryConfiguration.Active.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/";
var credential = new DefaultAzureCredential();
TelemetryConfiguration.Active.SetAzureTokenCredential(credential);

В следующем примере показано, как настроить TelemetryConfiguration с помощью .NET Core:

services.Configure<TelemetryConfiguration>(config =>
{
       var credential = new DefaultAzureCredential();
       config.SetAzureTokenCredential(credential);
});
services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
    ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/"
});

Отключение локальной проверки подлинности

После включения проверки подлинности Microsoft Entra можно отключить локальную проверку подлинности. Эта конфигурация позволяет получать данные телеметрии, прошедшие проверку подлинности исключительно идентификатором Microsoft Entra и влиять на доступ к данным (например, с помощью ключей API).

Вы можете отключить локальную проверку подлинности с помощью портал Azure или Политика Azure или программно.

Портал Azure

  1. В ресурсе приложения Аналитика выберите "Свойства" в разделе "Настройка" в меню слева. Выберите "Включено" (щелкните, чтобы изменить), если включена локальная проверка подлинности.

    Снимок экрана: свойства в разделе

  2. Щелкните Отключено и примените изменения.

    Снимок экрана: локальная проверка подлинности с кнопкой

  3. После отключения локальной проверки подлинности на ресурсе вы увидите соответствующие сведения на панели обзора .

    Снимок экрана: вкладка

Политика Azure

Политика Azure для DisableLocalAuth пользователей запрещает возможность создания нового ресурса application Аналитика без этого свойстваtrue. Имя политики — Application Insights components should block non-AAD auth ingestion.

Чтобы применить это определение политики к подписке, создайте назначение политики и назначьте эту политику.

В следующем примере показано определение шаблона политики:

{
    "properties": {
        "displayName": "Application Insights components should block non-AAD auth ingestion",
        "policyType": "BuiltIn",
        "mode": "Indexed",
        "description": "Improve Application Insights security by disabling log ingestion that are not AAD-based.",
        "metadata": {
            "version": "1.0.0",
            "category": "Monitoring"
        },
        "parameters": {
            "effect": {
                "type": "String",
                "metadata": {
                    "displayName": "Effect",
                    "description": "The effect determines what happens when the policy rule is evaluated to match"
                },
                "allowedValues": [
                    "audit",
                    "deny",
                    "disabled"
                ],
                "defaultValue": "audit"
            }
        },
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "type",
                        "equals": "Microsoft.Insights/components"
                    },
                    {
                        "field": "Microsoft.Insights/components/DisableLocalAuth",
                        "notEquals": "true"                        
                    }
                ]
            },
            "then": {
                "effect": "[parameters('effect')]"
            }
        }
    }
}

Программное включение

DisableLocalAuth Свойство используется для отключения локальной проверки подлинности в ресурсе Application Аналитика. Если для этого свойства задано trueзначение, оно применяет проверку подлинности Microsoft Entra для всех доступа.

В следующем примере показан шаблон Azure Resource Manager, который можно использовать для создания ресурса приложения на основе рабочей области Аналитика с LocalAuth отключенным.

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "regionId": {
            "type": "string"
        },
        "tagsArray": {
            "type": "object"
        },
        "requestSource": {
            "type": "string"
        },
        "workspaceResourceId": {
            "type": "string"
        },
        "disableLocalAuth": {
            "type": "bool"
        }
     
    },
    "resources": [
        {
        "name": "[parameters('name')]",
        "type": "microsoft.insights/components",
        "location": "[parameters('regionId')]",
        "tags": "[parameters('tagsArray')]",
        "apiVersion": "2020-02-02-preview",
        "dependsOn": [],
        "properties": {
            "Application_Type": "[parameters('type')]",
            "Flow_Type": "Redfield",
            "Request_Source": "[parameters('requestSource')]",
            "WorkspaceResourceId": "[parameters('workspaceResourceId')]",
            "DisableLocalAuth": "[parameters('disableLocalAuth')]"
            }
    }
 ]
}

Аудитория токена

При разработке пользовательского клиента для получения маркера доступа от идентификатора Microsoft Entra для отправки телеметрии в приложение Аналитика см. в следующей таблице, чтобы определить соответствующую строку аудитории для конкретной среды узла.

Облачная версия Azure Значение аудитории токена
Общедоступное облако Azure https://monitor.azure.com
Microsoft Azure, управляемый облаком 21Vianet https://monitor.azure.cn
Облако Azure для государственных организаций США https://monitor.azure.us

Если вы используете суверенные облака, вы также можете найти информацию аудитории в строка подключения. Строка подключения следует этой структуре:

InstrumentationKey={profile. Инструментирование}; IngestionEndpoint={ingestionEndpoint}; LiveEndpoint={liveDiagnosticsEndpoint}; AADAudience={aadAudience}

Параметр аудитории AADAudience может отличаться в зависимости от конкретной среды.

Устранение неполадок

В этом разделе приведены различные сценарии устранения неполадок и действия, которые можно предпринять для устранения проблемы перед вызовом запроса в службу поддержки.

Ошибки HTTP при приеме

Служба приема возвращает определенные ошибки независимо от языка ПАКЕТА SDK. Сетевой трафик можно собирать с помощью такого средства, как Fiddler. Необходимо отфильтровать трафик к конечной точке приема, заданной в строка подключения.

HTTP/1.1 400 Authentication not supported

Эта ошибка показывает, что ресурс задан только для Microsoft Entra. Необходимо правильно настроить пакет SDK, так как он отправляется в неправильный API.

Примечание.

"v2/track" не поддерживает идентификатор Microsoft Entra. Если пакет SDK настроен правильно, данные телеметрии будут отправляться в v2.1/track.

Затем необходимо проверить конфигурацию пакета SDK.

HTTP/1.1 401 Authorization required

Эта ошибка указывает, что пакет SDK настроен правильно, но он не может получить действительный маркер. Эта ошибка может указывать на проблему с идентификатором Microsoft Entra.

Затем необходимо определить исключения в журналах пакета SDK или сетевых ошибках из удостоверений Azure.

HTTP/1.1 403 Unauthorized

Эта ошибка означает, что пакет SDK использует учетные данные без разрешения для ресурса или подписки приложения Аналитика.

Сначала проверка управление доступом к ресурсу Аналитика приложения. Необходимо настроить пакет SDK с учетными данными, имеющими роль издателя метрик мониторинга.

Устранение неполадок, связанных с языком

Источник событий

Пакет SDK для .NET для приложения Аналитика выдает журналы ошибок с помощью источника событий. Дополнительные сведения о сборе журналов источников событий см. в статье "Устранение неполадок без данных" — сбор журналов с помощью PerfView.

Если пакет SDK не получит маркер, сообщение об исключении регистрируется как Failed to get AAD Token. Error message:.

Следующие шаги