Udostępnij za pośrednictwem


Dostęp do interfejsu API usługi Azure Monitor Log Analytics

Żądanie zapytania można przesłać do obszaru roboczego przy użyciu punktu końcowego https://api.loganalytics.azure.comusługi Log Analytics usługi Azure Monitor. Aby uzyskać dostęp do punktu końcowego, musisz uwierzytelnić się za pomocą identyfikatora Entra firmy Microsoft.

Uwaga

Punkt api.loganalytics.io końcowy jest zastępowany przez api.loganalytics.azure.comelement . Punkt api.loganalytics.io końcowy będzie nadal obsługiwany w przyszłości.

Uwierzytelnianie przy użyciu klucza demonstracyjnego interfejsu API

Aby szybko eksplorować interfejs API bez uwierzytelniania firmy Microsoft, użyj demonstracyjnego obszaru roboczego z przykładowymi danymi, które obsługują uwierzytelnianie klucza interfejsu API.

Aby uwierzytelnić i uruchomić zapytania względem przykładowego obszaru roboczego, użyj polecenia DEMO_WORKSPACE {workspace-id} i przekaż klucz DEMO_KEYinterfejsu API .

Jeśli identyfikator aplikacji lub klucz interfejsu API jest niepoprawny, usługa interfejsu API zwraca błąd 403 (Zabronione).

Klucz DEMO_KEY interfejsu API można przekazać na trzy różne sposoby, w zależności od tego, czy chcesz użyć nagłówka, adresu URL, czy uwierzytelniania podstawowego:

  • Nagłówek niestandardowy: podaj klucz interfejsu API w nagłówku X-Api-Keyniestandardowym .
  • Parametr zapytania: podaj klucz interfejsu API w parametrze api_keyadresu URL .
  • Uwierzytelnianie podstawowe: podaj klucz interfejsu API jako nazwę użytkownika lub hasło. Jeśli podasz oba te elementy, klucz interfejsu API musi znajdować się w nazwie użytkownika.

W tym przykładzie użyto identyfikatora obszaru roboczego i klucza interfejsu API w nagłówku:

    POST https://api.loganalytics.azure.com/v1/workspaces/DEMO_WORKSPACE/query
    X-Api-Key: DEMO_KEY
    Content-Type: application/json
    
    {
        "query": "AzureActivity | summarize count() by Category"
    }

Publiczny punkt końcowy interfejsu API

Publiczny punkt końcowy interfejsu API to:

    https://api.loganalytics.azure.com/{api-version}/workspaces/{workspaceId}

gdzie:

  • api-version: wersja interfejsu API. Bieżąca wersja to "v1".
  • workspaceId: Identyfikator obszaru roboczego.

Zapytanie jest przekazywane w treści żądania.

Na przykład:

   https://api.loganalytics.azure.com/v1/workspaces/1234abcd-def89-765a-9abc-def1234abcde
   
   Body:
   {
       "query": "Usage"
   }

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ę Log Analytics i wybierz z listy pozycję Interfejs API usługi Log Analytics.

    Zrzut ekranu przedstawiający stronę Uprawnienia interfejsu API żądania.

  5. Wybieranie delegowanych uprawnień.

  6. Zaznacz pole wyboru Data.Read.

  7. Wybierz Przyznaj uprawnienia.

    Zrzut ekranu przedstawiający kontynuację strony Uprawnienia interfejsu API żądania.

Teraz, gdy aplikacja jest zarejestrowana i ma uprawnienia do korzystania z interfejsu API, przyznaj aplikacji dostęp do obszaru roboczego usługi Log Analytics.

  1. Na stronie przeglądu obszaru roboczego usługi Log Analytics wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).

  2. Wybierz pozycję Dodaj przypisanie roli.

    Zrzut ekranu przedstawiający stronę Kontrola dostępu dla obszaru roboczego usługi Log Analytics.

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

    Zrzut ekranu przedstawiający stronę Dodawanie przypisania roli dla obszaru roboczego usługi Log Analytics.

  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.

    Zrzut ekranu przedstawiający okienko Wybieranie członków na stronie Dodawanie przypisania roli dla obszaru roboczego usługi Log Analytics.

  8. Po zakończeniu konfigurowania usługi Active Directory i uprawnień obszaru roboczego 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. Aby uzyskać więcej informacji, zobacz Zarządzanie dostępem do obszarów roboczych usługi Log Analytics.

Żą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 obszaru roboczego.
  • Identyfikator klienta entra firmy Microsoft dla aplikacji.
  • Wpis tajny klienta firmy Microsoft Entra dla aplikacji.

Interfejs API usługi Log Analytics obsługuje uwierzytelnianie firmy Microsoft Entra z trzema różnymi przepływami protokołu 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 Log Analytics. 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 witryny resource=https://api.loganalytics.azure.com.

Pobierz token uwierzytelniania przy użyciu dowolnej z następujących metod:

  • Interfejs wiersza polecenia
  • Interfejs API REST
  • SDK

Podczas żądania tokenu należy podać resource parametr. Parametr resource jest adresem URL zasobu, do którego chcesz uzyskać dostęp.

Dostępne są m.in. następujące zasoby:

Uzyskiwanie tokenu przy użyciu żądania REST

Użyj następującego wywołania interfejsu API REST, aby uzyskać token. To żądanie używa identyfikatora klienta i klucza tajnego klienta do uwierzytelniania żądania. Identyfikator klienta i klucz tajny klienta są uzyskiwane podczas rejestrowania aplikacji przy użyciu identyfikatora Entra firmy Microsoft. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji w celu żądania tokenów autoryzacji i pracy z interfejsami API

curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource=https://monitoring.azure.com'

Treść odpowiedzi jest wyświetlana w następującym formacie:

{
    "token_type": "Bearer",
    "expires_in": "86399",
    "ext_expires_in": "86399",
    "expires_on": "1672826207",
    "not_before": "1672739507",
    "resource": "https://monitoring.azure.com",
    "access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}

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

    POST /v1/workspaces/your workspace id/query?timespan=P1D
    Host: https://api.loganalytics.azure.com
    Content-Type: application/json
    Authorization: Bearer <your access token>

    Body:
    {
    "query": "AzureActivity |summarize count() by Category"
    }

Przykładowa odpowiedź:

    {
        "tables": [
            {
                "name": "PrimaryResult",
                "columns": [
                    {
                        "name": "OperationName",
                        "type": "string"
                    },
                    {
                        "name": "Level",
                        "type": "string"
                    },
                    {
                        "name": "ActivityStatus",
                        "type": "string"
                    }
                ],
                "rows": [
                    [
                        "Metric Alert",
                        "Informational",
                        "Resolved",
                        ...
                    ],
                    ...
                ]
            },
            ...
        ]
    }

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 Log Analytics 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.loganalytics.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

Na tym etapie uzyskano kod autoryzacji, który jest teraz potrzebny 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.loganalytics.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_log_analytics",
        "not_before": "1503638012",
        "refresh_token": "eyJ0esdfiJKV1ljhgYF.....Az",
        "resource": "https://api.loganalytics.io",
        "scope": "Data.Read",
        "token_type": "bearer"
    }

Część tokenu dostępu tej odpowiedzi jest tym, co przedstawiasz interfejsowi API usługi Log Analytics 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.loganalytics.io
    &client_secret=<app-client-secret>

Przykładowa odpowiedź:

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

Niejawny przepływ kodu

Interfejs API usługi Log Analytics 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.

Adres URL autoryzacji kodu niejawnego

    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.loganalytics.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

Tego access_token można użyć jako wartości nagłówka po przekazaniu jej do interfejsu Authorization: Bearer API usługi Log Analytics w celu autoryzowania żądań.

Więcej informacji

Dokumentację dotyczącą protokołu OAuth2 w usłudze Microsoft Entra można znaleźć tutaj:

Następne kroki