Udostępnij za pośrednictwem


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

Aplikacja Szczegółowe informacje 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 Szczegółowe informacje.

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 temacie 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 aplikacji Szczegółowe informacje jako zakres roli.

    Uwaga

    Mimo że rola Wydawca metryk monitorowania mówi "metryki", opublikuje wszystkie dane telemetryczne w zasobie Application Szczegółowe informacje.

  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 Szczegółowe informacje aplikacji jest dołączana od wersji 2.18-Beta3.

Zestaw SDK platformy .NET aplikacji Szczegółowe informacje obsługuje klasy poświadczeń udostępniane przez usługę Azure Identity.

  • Zalecamy DefaultAzureCredential tworzenie aplikacji lokalnych.
  • Upewnij się, że uwierzytelniasz się 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/"
});

Wykonywanie zapytań o aplikację Szczegółowe informacje przy użyciu uwierzytelniania firmy Microsoft

Żądanie zapytania można przesłać przy użyciu punktu końcowego https://api.applicationinsights.ioSzczegółowe informacje aplikacji usługi Azure Monitor. 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 pozycję Aplikacja Szczegółowe informacje i wybierz pozycję Interfejs API Szczegółowe informacje aplikacji z listy.

  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 Szczegółowe informacje.

  1. Na stronie Przegląd zasobów Szczegółowe informacje aplikacji 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 Szczegółowe informacje aplikacji — 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 Szczegółowe informacje aplikacji 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 application Szczegółowe informacje. 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 Szczegółowe informacje:

    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 Szczegółowe informacje aplikacji 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 identyfikatorem aplikacji z aplikacji Microsoft Entra skopiowanym z menu właściwości aplikacji. Redirect_uri to adres URL strony głównej/logowania z tej samej aplikacji 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 przedstawiasz interfejsowi API Szczegółowe informacje aplikacji w nagłówkuAuthorization: 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 Szczegółowe informacje aplikacji 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 po przekazywaniu Authorization: Bearer do interfejsu API Szczegółowe informacje aplikacji w celu autoryzowania żą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 Application Szczegółowe informacje 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 Szczegółowe informacje bez tej właściwości ustawionej na truewartość . Nazwa zasad to Application Insights components should block non-AAD auth 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-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')]"
            }
        }
    }
}

Włączanie programowe

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

W poniższym przykładzie przedstawiono szablon usługi Azure Resource Manager, którego można użyć do utworzenia zasobu aplikacji opartej na obszarze roboczym Szczegółowe informacje z wyłączonymLocalAuth.

{
    "$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 witryny Microsoft Entra ID do przesyłania danych telemetrycznych do aplikacji Szczegółowe informacje 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 aplikacji Szczegółowe informacje.

Najpierw sprawdź kontrolę dostępu zasobu Szczegółowe informacje aplikacji. 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 aplikacji Szczegółowe informacje 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