Sdílet prostřednictvím


Přístup k rozhraní Log Analytics API služby Azure Monitor

Žádost o dotaz můžete odeslat do pracovního prostoru pomocí koncového bodu https://api.loganalytics.azure.comSlužby Log Analytics služby Azure Monitor . Pokud chcete získat přístup ke koncovému bodu, musíte se ověřit prostřednictvím ID Microsoft Entra.

Poznámka:

Koncový api.loganalytics.io bod se nahrazuje znakem api.loganalytics.azure.com. Koncový api.loganalytics.io bod bude i nadále podporován v budoucnu, který je možné zobrazit.

Ověřování pomocí ukázkového klíče rozhraní API

Pokud chcete rychle prozkoumat rozhraní API bez ověřování Microsoft Entra, použijte ukázkový pracovní prostor s ukázkovými daty, která podporují ověřování pomocí klíče rozhraní API.

K ověřování a spouštění dotazů v ukázkovém pracovním prostoru použijte DEMO_WORKSPACE jako {id_pracovního prostoru} a předejte klíč DEMO_KEYrozhraní API.

Pokud je ID aplikace nebo klíč rozhraní API nesprávné, vrátí služba API chybu 403 (Zakázáno).

Klíč DEMO_KEY rozhraní API je možné předat třemi různými způsoby v závislosti na tom, jestli chcete použít hlavičku, adresu URL nebo základní ověřování:

  • Vlastní hlavička: Zadejte klíč rozhraní API ve vlastní hlavičce X-Api-Key.
  • Parametr dotazu: Zadejte klíč rozhraní API v parametru api_keyadresy URL .
  • Základní ověřování: Zadejte klíč rozhraní API jako uživatelské jméno nebo heslo. Pokud zadáte obojí, klíč rozhraní API musí být v uživatelském jménu.

Tento příklad používá ID pracovního prostoru a klíč rozhraní API v hlavičce:

    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"
    }

Koncový bod veřejného rozhraní API

Koncový bod veřejného rozhraní API je:

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

kde:

  • api-version: Verze rozhraní API. Aktuální verze je v1.
  • workspaceId: ID vašeho pracovního prostoru.

Dotaz se předá v textu požadavku.

Příklad:

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

Nastavení ověřování

Pro přístup k rozhraní API zaregistrujete klientskou aplikaci s ID Microsoft Entra a požádáte o token.

  1. Zaregistrujte aplikaci v Microsoft Entra ID.

  2. Na stránce přehledu aplikace vyberte oprávnění rozhraní API.

  3. Vyberte Přidat oprávnění.

  4. Na rozhraních API, která moje organizace používá, vyhledejte Log Analytics a ze seznamu vyberte rozhraní LOG Analytics API.

    Snímek obrazovky se stránkou Oprávnění rozhraní API požadavku

  5. Vyberte Delegovaná oprávnění.

  6. Zaškrtněte políčko Data.Read .

  7. Vyberte Přidat oprávnění.

    Snímek obrazovky znázorňující pokračování stránky oprávnění rozhraní API požadavku

Teď, když je vaše aplikace zaregistrovaná a má oprávnění k používání rozhraní API, udělte aplikaci přístup k pracovnímu prostoru služby Log Analytics.

  1. Na stránce přehledu pracovního prostoru služby Log Analytics vyberte Řízení přístupu (IAM).

  2. Vyberte Přidat přiřazení role.

    Snímek obrazovky znázorňující stránku řízení přístupu pro pracovní prostor služby Log Analytics

  3. Vyberte roli Čtenář a pak vyberte Členové.

    Snímek obrazovky znázorňující stránku Přidat přiřazení role pro pracovní prostor služby Log Analytics

  4. Na kartě Členové zvolte Vybrat členy.

  5. Do pole Vybrat zadejte název aplikace.

  6. Vyberte aplikaci a zvolte Vybrat.

  7. Vyberte Zkontrolovat + přiřadit.

    Snímek obrazovky znázorňující podokno Vybrat členy na stránce Přidat přiřazení role pro pracovní prostor služby Log Analytics

  8. Po dokončení nastavení služby Active Directory a oprávnění pracovního prostoru požádejte o autorizační token.

Poznámka:

V tomto příkladu jsme použili roli Čtenář. Tato role je jednou z mnoha předdefinovanýchrolích Můžete vytvořit podrobnější role a oprávnění. Další informace najdete v tématu Správa přístupu k pracovním prostorům služby Log Analytics.

Vyžádání autorizačního tokenu

Než začnete, ujistěte se, že máte všechny hodnoty potřebné k úspěšnému provedení požadavku. Všechny požadavky vyžadují:

  • ID vašeho tenanta Microsoft Entra.
  • ID vašeho pracovního prostoru.
  • ID klienta Microsoft Entra pro aplikaci.
  • Tajný kód klienta Microsoft Entra pro aplikaci.

Rozhraní Log Analytics API podporuje ověřování Microsoft Entra se třemi různými toky Microsoft Entra ID OAuth2 :

  • Přihlašovací údaje klienta
  • Autorizační kód
  • Implicitní

Tok přihlašovacích údajů klienta

V toku přihlašovacích údajů klienta se token používá s koncovým bodem Log Analytics. Při registraci aplikace v Microsoft Entra ID se provede jedna žádost o přijetí tokenu pomocí přihlašovacích údajů zadaných pro vaši aplikaci v předchozím kroku.

Použijte resource=https://api.loganalytics.azure.com.

Získejte ověřovací token pomocí některé z následujících metod:

  • Rozhraní příkazového řádku
  • REST API
  • Sada SDK

Při vyžádání tokenu musíte zadat resource parametr. Parametr resource je adresa URL prostředku, ke který chcete získat přístup.

Zdroje informací zahrnují:

  • https://management.azure.com
  • https://api.loganalytics.io
  • https://monitoring.azure.com

Získání tokenu pomocí požadavku REST

K získání tokenu použijte následující volání rozhraní REST API. Tento požadavek používá k ověření požadavku ID klienta a tajný klíč klienta. ID klienta a tajný klíč klienta se získávají při registraci aplikace v Microsoft Entra ID. Další informace najdete v tématu Registrace aplikace k vyžádání autorizačních tokenů a práci s rozhraními 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'

Text odpovědi se zobrazí v následujícím formátu:

{
    "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"
}

Použijte token v požadavcích na koncový bod 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"
    }

Příklad odpovědi:

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

Tok autorizačního kódu

Hlavní podporovaný tok OAuth2 je prostřednictvím autorizačních kódů. Tato metoda vyžaduje dva požadavky HTTP k získání tokenu, pomocí kterého se má volat rozhraní API služby Azure Monitor Log Analytics. Existují dvě adresy URL s jedním koncovým bodem na požadavek. Jejich formáty jsou popsány v následujících částech.

Adresa URL autorizačního kódu (požadavek 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

Když se na adresu URL autorizace vytvoří požadavek, client_id je ID aplikace z vaší aplikace Microsoft Entra zkopírované z nabídky vlastností aplikace. Redirect_uri je adresa URL domovské stránky nebo přihlášení ze stejné aplikace Microsoft Entra. Pokud je žádost úspěšná, tento koncový bod vás přesměruje na přihlašovací stránku, kterou jste zadali při registraci s autorizačním kódem připojeným k adrese URL. Prohlédněte si následující příklad:

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

V tuto chvíli jste získali autorizační kód, který teď potřebujete k vyžádání přístupového tokenu.

Adresa URL tokenu autorizačního kódu (požadavek 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>

Všechny hodnoty jsou stejné jako předtím, s některými sčítáními. Autorizační kód je stejný kód, který jste obdrželi v předchozím požadavku po úspěšném přesměrování. Kód se zkombinuje s klíčem získaným z aplikace Microsoft Entra. Pokud jste klíč neuložili, můžete ho odstranit a vytvořit nový z karty kláves v nabídce aplikace Microsoft Entra. Odpověď je řetězec JSON, který obsahuje token s následujícím schématem. Pro hodnoty tokenu jsou uvedené typy.

Příklad odpovědi:

    {
        "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"
    }

Část přístupového tokenu této odpovědi je to, co v hlavičce prezentujete v Authorization: Bearer rozhraní API služby Log Analytics. Obnovovací token můžete použít také v budoucnu k získání nového access_token a refresh_token, když vaše zařízení přestane být zastaralé. Pro tento požadavek platí, že formát a koncový bod jsou:

    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>

Příklad odpovědi:

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

Implicitní tok kódu

Rozhraní Log Analytics API podporuje implicitní tok OAuth2. Pro tento tok se vyžaduje jenom jeden požadavek, ale není možné získat žádný obnovovací token.

Implicitní adresa URL autorizace kódu

    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

Úspěšný požadavek vytvoří přesměrování na identifikátor URI přesměrování s tokenem v adrese URL:

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

Tato access_token se dá použít jako Authorization: Bearer hodnota hlavičky při předání do rozhraní Log Analytics API k autorizaci požadavků.

Více informací

Dokumentaci o OAuth2 s Microsoft Entra najdete tady:

Další kroky