Проверка подлинности Microsoft Entra для Application Insights.
Приложение Аналитика теперь поддерживает проверку подлинности Microsoft Entra. Используя идентификатор Microsoft Entra, вы можете убедиться, что в Аналитика приложения будут приняты только проверенные данные телеметрии.
Использование различных систем проверки подлинности может быть обременительным и создавать риски, так как трудно управлять учетными данными в большом масштабе. Теперь вы можете отказаться от локальной проверки подлинности , чтобы обеспечить только проверку подлинности телеметрии с помощью управляемых удостоверений и идентификатора Microsoft Entra в ресурсе. Эта функция является шагом для повышения безопасности и надежности телеметрии, используемой для принятия критически важных операционных (оповещений и автомасштабирования) и бизнес-решений.
Примечание.
В этом документе рассматриваются прием данных в приложение Аналитика с помощью проверки подлинности на основе идентификаторов Microsoft Entra. Сведения о запросе данных в приложении Аналитика см. в разделе "Запрос приложения" Аналитика с помощью проверки подлинности Microsoft Entra.
Необходимые компоненты
Для включения приема с проверкой подлинности Microsoft Entra необходимо выполнить следующие предварительные действия. Вам нужно:
- Будьте в общедоступном облаке.
- Ознакомьтесь со следующими сведениями:
- У группы ресурсов есть роль владельца, чтобы предоставить доступ с помощью встроенных ролей Azure.
- Изучите неподдерживаемые сценарии.
Неподдерживаемые сценарии
Следующие пакеты средств разработки программного обеспечения (ПАКЕТЫ SDK) и функции не поддерживаются для использования с проверкой подлинности Microsoft Entra.
- Пакет SDK для Java 2.x для приложения Аналитика.
Проверка подлинности Microsoft Entra доступна только для агента Java application Аналитика больше или равно 3.2.0. - Приложение Аналитика веб-пакет SDK javaScript.
- Пакет SDK Python для OpenCensus для Application Insights с Python версий 3.4 и 3.5.
- По умолчанию автоматическое управление и мониторинг без кода (для языков) для службы приложение Azure, Azure Виртуальные машины/Azure Масштабируемые наборы виртуальных машин и Функции Azure.
- Профилировщик.
Настройка и включение проверки подлинности на основе идентификатора Microsoft Entra
Если у вас еще нет удостоверения, создайте его с помощью управляемого удостоверения или субъекта-службы.
Рекомендуется использовать управляемое удостоверение:
Настройте управляемое удостоверение для службы Azure (Виртуальные машины или Служба приложений).
Не рекомендуется использовать субъект-службу:
Дополнительные сведения о создании приложения Microsoft Entra и субъекта-службы, доступ к ресурсам см. в статье "Создание субъекта-службы".
Назначьте роль службе Azure.
Выполните действия, описанные в разделе "Назначение ролей Azure", чтобы добавить роль издателя метрик мониторинга из целевого ресурса приложения Аналитика в ресурс Azure, из которого отправляется данные телеметрии.
Примечание.
Хотя роль издателя метрик мониторинга говорит "метрики", она будет публиковать все данные телеметрии в ресурсе Application Аналитика.
Следуйте инструкциям по настройке в соответствии с приведенным ниже языком.
Примечание.
Поддержка идентификатора 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
В ресурсе приложения Аналитика выберите "Свойства" в разделе "Настройка" в меню слева. Выберите "Включено" (щелкните, чтобы изменить), если включена локальная проверка подлинности.
Щелкните Отключено и примените изменения.
После отключения локальной проверки подлинности на ресурсе вы увидите соответствующие сведения на панели обзора .
Политика 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:
.