Udostępnij za pośrednictwem


Uwierzytelnianie w usłudze Microsoft Entra dla usługi Application Insights

Usługa Application Insights obsługuje teraz uwierzytelnianie firmy Microsoft Entra. Korzystając z identyfikatora Entra firmy Microsoft, możesz upewnić się, że tylko uwierzytelnione dane telemetryczne są pozyskiwane w zasobach usługi Application Insights.

Korzystanie z różnych systemów uwierzytelniania może być uciążliwe i ryzykowne, ponieważ trudno jest zarządzać poświadczeniami na dużą skalę. Teraz możesz zrezygnować z uwierzytelniania lokalnego, aby zapewnić, że tylko dane telemetryczne są uwierzytelniane wyłącznie przy użyciu tożsamości zarządzanych , a identyfikator Entra firmy Microsoft jest pozyskiwany w zasobie. Ta funkcja to krok w celu zwiększenia bezpieczeństwa i niezawodności telemetrii używanej do podejmowania krytycznych decyzji operacyjnych (alertów i skalowania automatycznego) oraz decyzji biznesowych.

Wymagania wstępne

Aby włączyć pozyskiwanie uwierzytelnione przez firmę Microsoft, wymagane są następujące wstępne kroki. Należy wykonać:

Nieobsługiwane scenariusze

Następujące zestawy SDK (Software Development Kit) i funkcje nie są obsługiwane do użycia z uwierzytelnionym pozyskiwaniem danych przez firmę Microsoft Entra:

Konfigurowanie i włączanie uwierzytelniania opartego na identyfikatorze Entra firmy Microsoft

  1. Jeśli nie masz jeszcze tożsamości, utwórz je przy użyciu tożsamości zarządzanej lub jednostki usługi.

    • Zalecamy używanie tożsamości zarządzanej:

      Skonfiguruj tożsamość zarządzaną dla usługi platformy Azure (maszyny wirtualne lub usługa App Service).

    • Nie zalecamy używania jednostki usługi:

      Aby uzyskać więcej informacji na temat tworzenia aplikacji entra firmy Microsoft i jednostki usługi, która może uzyskiwać dostęp do zasobów, zobacz Tworzenie jednostki usługi.

  2. Przypisz wymaganą rolę kontroli dostępu opartej na rolach (RBAC) do konta użytkownika platformy Azure, jednostki usługi lub użytkownika platformy Azure.

    Wykonaj kroki opisane w artykule Przypisywanie ról platformy Azure, aby dodać rolę Wydawca metryk monitorowania do oczekiwanej tożsamości, jednostki usługi lub konta użytkownika platformy Azure, ustawiając docelowy zasób usługi Application Insights jako zakres roli.

    Uwaga

    Mimo że rola Wydawca metryk monitorowania mówi "metryki", opublikuje wszystkie dane telemetryczne w zasobie usługi Application Insights.

  3. Postępuj zgodnie ze wskazówkami dotyczącymi konfiguracji zgodnie z następującym językiem.

Uwaga

Obsługa identyfikatora Entra firmy Microsoft w zestawie SDK platformy .NET usługi Application Insights jest zawarta w wersji 2.18-Beta3.

Zestaw SDK platformy .NET usługi Application Insights obsługuje klasy poświadczeń udostępniane przez usługę Azure Identity.

  • Zalecamy DefaultAzureCredential tworzenie aplikacji lokalnych.
  • Uwierzytelnianie w programie Visual Studio przy użyciu oczekiwanego konta użytkownika platformy Azure. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie za pomocą programu Visual Studio.
  • Zalecamy ManagedIdentityCredential używanie tożsamości zarządzanych przypisanych przez system i przypisanych przez użytkownika.
    • W przypadku przypisanego przez system użyj konstruktora domyślnego bez parametrów.
    • W przypadku przypisanego przez użytkownika podaj identyfikator klienta konstruktorowi.

W poniższym przykładzie pokazano, jak ręcznie utworzyć i skonfigurować TelemetryConfiguration przy użyciu platformy .NET:

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

W poniższym przykładzie pokazano, jak skonfigurować TelemetryConfiguration przy użyciu platformy .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/"
});

Konfiguracja zmiennej środowiskowej

Użyj zmiennej środowiskowejAPPLICATIONINSIGHTS_AUTHENTICATION_STRING, aby umożliwić usłudze Application Insights uwierzytelnianie w usłudze Microsoft Entra ID i wysyłanie danych telemetrycznych podczas korzystania z autoinstrumentacji usług aplikacja systemu Azure Services.

  • W przypadku tożsamości przypisanej przez system:
Ustawienia aplikacji Wartość
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AAD
  • W przypadku tożsamości przypisanej przez użytkownika:
Ustawienia aplikacji Wartość
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AAD;ClientId={Client id of the User-Assigned Identity}

Wykonywanie zapytań w usłudze Application Insights przy użyciu uwierzytelniania microsoft Entra

Żądanie zapytania można przesłać przy użyciu punktu końcowego https://api.applicationinsights.iousługi Azure Monitor Application Insights. Aby uzyskać dostęp do punktu końcowego, musisz uwierzytelnić się za pomocą identyfikatora Entra firmy Microsoft.

Konfigurowanie uwierzytelniania

Aby uzyskać dostęp do interfejsu API, należy zarejestrować aplikację kliencką przy użyciu identyfikatora Entra firmy Microsoft i zażądać tokenu.

  1. Zarejestruj aplikację w identyfikatorze Entra firmy Microsoft.

  2. Na stronie przeglądu aplikacji wybierz pozycję Uprawnienia interfejsu API.

  3. Wybierz Dodaj uprawnienie.

  4. Na karcie Interfejsy API używane przez moją organizację wyszukaj ciąg Application Insights i wybierz z listy pozycję Interfejs API usługi Application Insights.

  5. Wybieranie delegowanych uprawnień.

  6. Zaznacz pole wyboru Data.Read.

  7. Wybierz Przyznaj uprawnienia.

Teraz, gdy aplikacja jest zarejestrowana i ma uprawnienia do korzystania z interfejsu API, przyznaj aplikacji dostęp do zasobu usługi Application Insights.

  1. Na stronie przeglądu zasobów usługi Application Insights wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).

  2. Wybierz pozycję Dodaj przypisanie roli.

  3. Wybierz rolę Czytelnik, a następnie wybierz pozycję Członkowie.

  4. Na karcie Członkowie wybierz pozycję Wybierz członków.

  5. Wprowadź nazwę aplikacji w polu Wybierz .

  6. Wybierz aplikację i wybierz pozycję Wybierz.

  7. Wybierz Przejrzyj + przypisz.

  8. Po zakończeniu instalacji i uprawnień usługi Active Directory zażądaj tokenu autoryzacji.

Uwaga

W tym przykładzie zastosowano rolę Czytelnik. Ta rola jest jedną z wielu wbudowanych ról i może zawierać więcej uprawnień niż wymagane. Można utworzyć bardziej szczegółowe role i uprawnienia.

Żądanie tokenu autoryzacji

Przed rozpoczęciem upewnij się, że masz wszystkie wartości wymagane do pomyślnego wykonania żądania. Wszystkie żądania wymagają:

  • Identyfikator dzierżawy entra firmy Microsoft.
  • Identyfikator aplikacji usługi App Insights — jeśli obecnie używasz kluczy interfejsu API, jest to ten sam identyfikator aplikacji.
  • Identyfikator klienta entra firmy Microsoft dla aplikacji.
  • Wpis tajny klienta firmy Microsoft Entra dla aplikacji.

Interfejs API usługi Application Insights obsługuje uwierzytelnianie firmy Microsoft Entra z trzema różnymi przepływami OAuth2 identyfikatora Entra firmy Microsoft:

  • Poświadczenia klienta
  • Kod autoryzacji
  • Niejawnie

Przepływ poświadczeń klienta

W przepływie poświadczeń klienta token jest używany z punktem końcowym usługi Application Insights. Jedno żądanie jest wykonywane w celu otrzymania tokenu przy użyciu poświadczeń podanych dla aplikacji w poprzednim kroku podczas rejestrowania aplikacji w identyfikatorze Entra firmy Microsoft.

Użyj punktu końcowego https://api.applicationinsights.io .

Adres URL tokenu poświadczeń klienta (żądanie POST)
    POST /<your-tenant-id>/oauth2/token
    Host: https://login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials
    &client_id=<app-client-id>
    &resource=https://api.applicationinsights.io
    &client_secret=<app-client-secret>

Pomyślne żądanie odbiera token dostępu w odpowiedzi:

    {
        token_type": "Bearer",
        "expires_in": "86399",
        "ext_expires_in": "86399",
        "access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax"
    }

Użyj tokenu w żądaniach do punktu końcowego usługi Application Insights:

    POST /v1/apps/yous_app_id/query?timespan=P1D
    Host: https://api.applicationinsights.io
    Content-Type: application/json
    Authorization: Bearer <your access token>

    Body:
    {
    "query": "requests | take 10"
    }

Przykładowa odpowiedź:

  "tables": [
    {
      "name": "PrimaryResult",
      "columns": [
        {
          "name": "timestamp",
          "type": "datetime"
        },
        {
          "name": "id",
          "type": "string"
        },
        {
          "name": "source",
          "type": "string"
        },
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "url",
          "type": "string"
        },
        {
          "name": "success",
          "type": "string"
        },
        {
          "name": "resultCode",
          "type": "string"
        },
        {
          "name": "duration",
          "type": "real"
        },
        {
          "name": "performanceBucket",
          "type": "string"
        },
        {
          "name": "customDimensions",
          "type": "dynamic"
        },
        {
          "name": "customMeasurements",
          "type": "dynamic"
        },
        {
          "name": "operation_Name",
          "type": "string"
        },
        {
          "name": "operation_Id",
          "type": "string"
        },
        {
          "name": "operation_ParentId",
          "type": "string"
        },
        {
          "name": "operation_SyntheticSource",
          "type": "string"
        },
        {
          "name": "session_Id",
          "type": "string"
        },
        {
          "name": "user_Id",
          "type": "string"
        },
        {
          "name": "user_AuthenticatedId",
          "type": "string"
        },
        {
          "name": "user_AccountId",
          "type": "string"
        },
        {
          "name": "application_Version",
          "type": "string"
        },
        {
          "name": "client_Type",
          "type": "string"
        },
        {
          "name": "client_Model",
          "type": "string"
        },
        {
          "name": "client_OS",
          "type": "string"
        },
        {
          "name": "client_IP",
          "type": "string"
        },
        {
          "name": "client_City",
          "type": "string"
        },
        {
          "name": "client_StateOrProvince",
          "type": "string"
        },
        {
          "name": "client_CountryOrRegion",
          "type": "string"
        },
        {
          "name": "client_Browser",
          "type": "string"
        },
        {
          "name": "cloud_RoleName",
          "type": "string"
        },
        {
          "name": "cloud_RoleInstance",
          "type": "string"
        },
        {
          "name": "appId",
          "type": "string"
        },
        {
          "name": "appName",
          "type": "string"
        },
        {
          "name": "iKey",
          "type": "string"
        },
        {
          "name": "sdkVersion",
          "type": "string"
        },
        {
          "name": "itemId",
          "type": "string"
        },
        {
          "name": "itemType",
          "type": "string"
        },
        {
          "name": "itemCount",
          "type": "int"
        }
      ],
      "rows": [
        [
          "2018-02-01T17:33:09.788Z",
          "|0qRud6jz3k0=.c32c2659_",
          null,
          "GET Reports/Index",
          "http://fabrikamfiberapp.azurewebsites.net/Reports",
          "True",
          "200",
          "3.3833",
          "<250ms",
          "{\"_MS.ProcessedByMetricExtractors\":\"(Name:'Requests', Ver:'1.0')\"}",
          null,
          "GET Reports/Index",
          "0qRud6jz3k0=",
          "0qRud6jz3k0=",
          "Application Insights Availability Monitoring",
          "9fc6738d-7e26-44f0-b88e-6fae8ccb6b26",
          "us-va-ash-azr_9fc6738d-7e26-44f0-b88e-6fae8ccb6b26",
          null,
          null,
          "AutoGen_49c3aea0-4641-4675-93b5-55f7a62d22d3",
          "PC",
          null,
          null,
          "52.168.8.0",
          "Boydton",
          "Virginia",
          "United States",
          null,
          "fabrikamfiberapp",
          "RD00155D5053D1",
          "cf58dcfd-0683-487c-bc84-048789bca8e5",
          "fabrikamprod",
          "5a2e4e0c-e136-4a15-9824-90ba859b0a89",
          "web:2.5.0-33031",
          "051ad4ef-0776-11e8-ac6e-e30599af6943",
          "request",
          "1"
        ],
        [
          "2018-02-01T17:33:15.786Z",
          "|x/Ysh+M1TfU=.c32c265a_",
          null,
          "GET Home/Index",
          "http://fabrikamfiberapp.azurewebsites.net/",
          "True",
          "200",
          "716.2912",
          "500ms-1sec",
          "{\"_MS.ProcessedByMetricExtractors\":\"(Name:'Requests', Ver:'1.0')\"}",
          null,
          "GET Home/Index",
          "x/Ysh+M1TfU=",
          "x/Ysh+M1TfU=",
          "Application Insights Availability Monitoring",
          "58b15be6-d1e6-4d89-9919-52f63b840913",
          "emea-se-sto-edge_58b15be6-d1e6-4d89-9919-52f63b840913",
          null,
          null,
          "AutoGen_49c3aea0-4641-4675-93b5-55f7a62d22d3",
          "PC",
          null,
          null,
          "51.141.32.0",
          "Cardiff",
          "Cardiff",
          "United Kingdom",
          null,
          "fabrikamfiberapp",
          "RD00155D5053D1",
          "cf58dcfd-0683-487c-bc84-048789bca8e5",
          "fabrikamprod",
          "5a2e4e0c-e136-4a15-9824-90ba859b0a89",
          "web:2.5.0-33031",
          "051ad4f0-0776-11e8-ac6e-e30599af6943",
          "request",
          "1"
        ]
      ]
    }
  ]
}

Przepływ kodu autoryzacji

Obsługiwany jest główny przepływ OAuth2 za pomocą kodów autoryzacji. Ta metoda wymaga dwóch żądań HTTP w celu uzyskania tokenu, za pomocą którego należy wywołać interfejs API usługi Application Insights usługi Azure Monitor. Istnieją dwa adresy URL z jednym punktem końcowym na żądanie. Ich formaty opisano w poniższych sekcjach.

Adres URL kodu autoryzacji (żądanie GET)
    GET https://login.microsoftonline.com/YOUR_Azure AD_TENANT/oauth2/authorize?
    client_id=<app-client-id>
    &response_type=code
    &redirect_uri=<app-redirect-uri>
    &resource=https://api.applicationinsights.io

Po wysłaniu żądania do autoryzowanego adresu URL client\_id jest to identyfikator aplikacji z aplikacji Microsoft Entra skopiowany z menu właściwości aplikacji. Jest redirect\_uri to homepage/login adres URL z tej samej aplikacji Firmy Microsoft Entra. Gdy żądanie zakończy się pomyślnie, ten punkt końcowy przekierowuje Cię do strony logowania podanej podczas rejestracji przy użyciu kodu autoryzacji dołączonego do adresu URL. Zobacz poniższy przykład:

    http://<app-client-id>/?code=AUTHORIZATION_CODE&session_state=STATE_GUID

W tym momencie uzyskasz kod autoryzacji, który jest teraz używany do żądania tokenu dostępu.

Adres URL tokenu kodu autoryzacji (żądanie POST)
    POST /YOUR_Azure AD_TENANT/oauth2/token HTTP/1.1
    Host: https://login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=authorization_code
    &client_id=<app client id>
    &code=<auth code fom GET request>
    &redirect_uri=<app-client-id>
    &resource=https://api.applicationinsights.io
    &client_secret=<app-client-secret>

Wszystkie wartości są takie same jak poprzednio, z pewnymi dodatkami. Kod autoryzacji jest tym samym kodem otrzymanym w poprzednim żądaniu po pomyślnym przekierowaniu. Kod jest połączony z kluczem uzyskanym z aplikacji Microsoft Entra. Jeśli klucz nie został zapisany, możesz go usunąć i utworzyć nowy na karcie klucze w menu aplikacji Microsoft Entra. Odpowiedź jest ciągiem JSON zawierającym token z następującym schematem. Typy są wskazywane dla wartości tokenu.

Przykładowa odpowiedź:

    {
        "access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax",
        "expires_in": "3600",
        "ext_expires_in": "1503641912",
        "id_token": "not_needed_for_app_insights",
        "not_before": "1503638012",
        "refresh_token": "eyJ0esdfiJKV1ljhgYF.....Az",
        "resource": "https://api.applicationinsights.io",
        "scope": "Data.Read",
        "token_type": "bearer"
    }

Część tokenu dostępu tej odpowiedzi jest tym, co przedstawiono w interfejsie API usługi Application Insights w nagłówku Authorization: Bearer . Możesz również użyć tokenu odświeżania w przyszłości, aby uzyskać nowe access_token i refresh_token, gdy twoje dane przestaną być nieaktualne. W przypadku tego żądania format i punkt końcowy to:

    POST /YOUR_AAD_TENANT/oauth2/token HTTP/1.1
    Host: https://login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    client_id=<app-client-id>
    &refresh_token=<refresh-token>
    &grant_type=refresh_token
    &resource=https://api.applicationinsights.io
    &client_secret=<app-client-secret>

Przykładowa odpowiedź:

    {
      "token_type": "Bearer",
      "expires_in": "3600",
      "expires_on": "1460404526",
      "resource": "https://api.applicationinsights.io",
      "access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax",
      "refresh_token": "eyJ0esdfiJKV1ljhgYF.....Az"
    }

Niejawny przepływ kodu

Interfejs API usługi Application Insights obsługuje niejawny przepływ OAuth2. W przypadku tego przepływu wymagane jest tylko jedno żądanie, ale nie można uzyskać tokenu odświeżania.

Niejawny adres URL autoryzacji kodu
    GET https://login.microsoftonline.com/YOUR_AAD_TENANT/oauth2/authorize?
    client_id=<app-client-id>
    &response_type=token
    &redirect_uri=<app-redirect-uri>
    &resource=https://api.applicationinsights.io

Pomyślne żądanie generuje przekierowanie do identyfikatora URI przekierowania przy użyciu tokenu w adresie URL:

    http://YOUR_REDIRECT_URI/#access_token=YOUR_ACCESS_TOKEN&token_type=Bearer&expires_in=3600&session_state=STATE_GUID

Ta access_token służy jako wartość nagłówka, gdy przekazuje do interfejsu Authorization: Bearer API usługi Application Insights autoryzację żądań.

Wyłączanie uwierzytelniania lokalnego

Po włączeniu uwierzytelniania entra firmy Microsoft możesz wyłączyć uwierzytelnianie lokalne. Ta konfiguracja umożliwia pozyskiwanie danych telemetrycznych uwierzytelnionych wyłącznie przez identyfikator Entra firmy Microsoft i wpływa na dostęp do danych (na przykład za pośrednictwem kluczy interfejsu API).

Uwierzytelnianie lokalne można wyłączyć przy użyciu witryny Azure Portal lub usługi Azure Policy albo programowo.

Azure Portal

  1. W zasobie usługi Application Insights wybierz pozycję Właściwości w obszarze Konfiguruj w menu po lewej stronie. Wybierz pozycję Włączone (kliknij, aby zmienić), jeśli jest włączone uwierzytelnianie lokalne.

    Zrzut ekranu przedstawiający pozycję Właściwości w sekcji Konfigurowanie i włączony (wybierz, aby zmienić) przycisk uwierzytelniania lokalnego.

  2. Wybierz pozycję Wyłączone i zastosuj zmiany.

    Zrzut ekranu przedstawiający uwierzytelnianie lokalne z przyciskiem Włączone/Wyłączone.

  3. Po wyłączeniu uwierzytelniania lokalnego w zasobie zobaczysz odpowiednie informacje w okienku Przegląd .

    Zrzut ekranu przedstawiający kartę Przegląd z przyciskiem Wyłączone (wybierz, aby zmienić) lokalne uwierzytelnianie.

Azure Policy

Usługa Azure Policy DisableLocalAuth uniemożliwia użytkownikom tworzenie nowego zasobu usługi Application Insights bez tej właściwości ustawionej na wartość true. Nazwa zasad to Application Insights components should block non-Azure Active Directory based ingestion.

Aby zastosować tę definicję zasad do subskrypcji, utwórz nowe przypisanie zasad i przypisz zasady.

W poniższym przykładzie przedstawiono definicję szablonu zasad:

{
    "properties": {
        "displayName": "Application Insights components should block non-Azure Active Directory based 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')]"
            }
        }
    }
}

Włączanie programowe

DisableLocalAuth Właściwość służy do wyłączania uwierzytelniania lokalnego w zasobie usługi Application Insights. Gdy ta właściwość jest ustawiona na truewartość , wymusza, że uwierzytelnianie Entra firmy Microsoft musi być używane dla całego dostępu.

Poniższy przykład przedstawia szablon usługi Azure Resource Manager, którego można użyć do utworzenia zasobu usługi Application Insights opartego na obszarze roboczym z wyłączonym 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')]"
            }
    }
 ]
}

Odbiorcy tokenów

Podczas tworzenia niestandardowego klienta w celu uzyskania tokenu dostępu z identyfikatora Entra firmy Microsoft do przesyłania danych telemetrycznych do usługi Application Insights zapoznaj się z poniższą tabelą, aby określić odpowiedni ciąg odbiorców dla danego środowiska hosta.

Wersja chmury platformy Azure Wartość odbiorców tokenu
Chmura publiczna platformy Azure https://monitor.azure.com
Platforma Microsoft Azure obsługiwana przez chmurę 21Vianet https://monitor.azure.cn
Chmura platformy Azure dla instytucji rządowych USA https://monitor.azure.us

Jeśli używasz suwerennych chmur, możesz również znaleźć informacje o odbiorcach w parametry połączenia. Parametry połączenia jest zgodna z tą strukturą:

InstrumentationKey={profile. InstrumentationKey}; IngestionEndpoint={ingestionEndpoint}; LiveEndpoint={liveDiagnosticsEndpoint}; AADAudience={aadAudience}

Parametr odbiorców, AADAudience, może się różnić w zależności od konkretnego środowiska.

Rozwiązywanie problemów

Ta sekcja zawiera różne scenariusze rozwiązywania problemów i kroki, które można wykonać, aby rozwiązać problem przed zgłoszeniem biletu pomocy technicznej.

Błędy HTTP pozyskiwania

Usługa pozyskiwania zwraca określone błędy niezależnie od języka zestawu SDK. Ruch sieciowy można zbierać przy użyciu narzędzia takiego jak Fiddler. Ruch należy filtrować do punktu końcowego pozyskiwania ustawionego w parametry połączenia.

Uwierzytelnianie HTTP/1.1 400 nie jest obsługiwane

Ten błąd pokazuje, że zasób jest ustawiony tylko dla firmy Microsoft Entra-only. Należy poprawnie skonfigurować zestaw SDK, ponieważ wysyła go do nieprawidłowego interfejsu API.

Uwaga

Element "v2/track" nie obsługuje identyfikatora Entra firmy Microsoft. Po poprawnym skonfigurowaniu zestawu SDK dane telemetryczne będą wysyłane do "v2.1/track".

Następnie należy przejrzeć konfigurację zestawu SDK.

Wymagana autoryzacja HTTP/1.1 401

Ten błąd wskazuje, że zestaw SDK jest poprawnie skonfigurowany, ale nie może uzyskać prawidłowego tokenu. Ten błąd może wskazywać na problem z identyfikatorem Entra firmy Microsoft.

Następnie należy zidentyfikować wyjątki w dziennikach zestawu SDK lub błędach sieci z usługi Azure Identity.

HTTP/1.1 403 Brak autoryzacji

Ten błąd oznacza, że zestaw SDK używa poświadczeń bez uprawnień dla zasobu lub subskrypcji usługi Application Insights.

Najpierw sprawdź kontrolę dostępu zasobu usługi Application Insights. Należy skonfigurować zestaw SDK z poświadczeniami, które mają rolę Wydawca metryk monitorowania.

Rozwiązywanie problemów specyficznych dla języka

Źródło zdarzeń

Zestaw SDK platformy .NET usługi Application Insights emituje dzienniki błędów przy użyciu źródła zdarzeń. Aby dowiedzieć się więcej na temat zbierania dzienników źródła zdarzeń, zobacz Rozwiązywanie problemów z brakiem danych — zbieranie dzienników za pomocą programu PerfView.

Jeśli zestaw SDK nie otrzyma tokenu, komunikat o wyjątku zostanie zarejestrowany jako Failed to get AAD Token. Error message:.

Następne kroki