Az Azure Monitor Log Analytics API elérése

Lekérdezési kérelmet az Azure Monitor Log Analytics-végpont https://api.loganalytics.azure.comhasználatával küldhet egy munkaterületre. A végpont eléréséhez a Microsoft Entra-azonosítón keresztül kell hitelesítenie magát.

Megjegyzés:

A api.loganalytics.io végpontot a következő váltja api.loganalytics.azure.comfel: . A api.loganalytics.io végpont továbbra is támogatott lesz az előre látható jövőben.

Hitelesítés demó API-kulccsal

Ha gyorsan szeretné megismerni az API-t a Microsoft Entra-hitelesítés nélkül, használja a bemutató munkaterületet mintaadatokkal, amelyek támogatják az API-kulcsok hitelesítését.

A lekérdezések a minta-munkaterületen való hitelesítéséhez és futtatásához használja DEMO_WORKSPACE {workspace-id} néven, és adja meg az API-kulcsot DEMO_KEY.

Ha az alkalmazásazonosító vagy az API-kulcs helytelen, az API-szolgáltatás 403-at (Tiltott) hibaüzenetet ad vissza.

Az API-kulcs DEMO_KEY három különböző módon adható át, attól függően, hogy fejlécet, URL-címet vagy alapszintű hitelesítést szeretne használni:

  • Egyéni fejléc: Adja meg az API-kulcsot az egyéni fejlécben X-Api-Key.
  • Lekérdezési paraméter: Adja meg az API-kulcsot az URL-paraméterben api_key.
  • Alapszintű hitelesítés: Adja meg az API-kulcsot felhasználónévként vagy jelszóként. Ha mindkettőt megadja, az API-kulcsnak a felhasználónévben kell lennie.

Ez a példa a fejléc munkaterület-azonosítóját és API-kulcsát használja:

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

Nyilvános API-végpont

A nyilvános API-végpont a következő:

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

ahol:

  • api-version: Az API-verzió. Az aktuális verzió a "v1".
  • workspaceId: A munkaterület azonosítója.

A lekérdezés a kérelem törzsében lesz átadva.

Például:

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

Hitelesítés beállítása

Az API eléréséhez regisztrálnia kell egy ügyfélalkalmazást a Microsoft Entra-azonosítóval, és jogkivonatot kell kérnie.

  1. Alkalmazás regisztrálása a Microsoft Entra-azonosítóban.

  2. Az alkalmazás áttekintő lapján válassza ki az API-engedélyeket.

  3. Válassza az Engedély hozzáadása lehetőséget.

  4. A szervezetem által használt API-kban keresse meg a Log Analyticset, és válassza a Log Analytics API-t a listából.

    A screenshot that shows the Request API permissions page.

  5. Válassza a Delegált engedélyek lehetőséget.

  6. Jelölje be a Data.Read jelölőnégyzetet.

  7. Jelölje be az Engedélyek hozzáadása lehetőséget.

    A screenshot that shows the continuation of the Request API permissions page.

Most, hogy az alkalmazás regisztrálva lett, és rendelkezik az API használatára vonatkozó engedélyekkel, hozzáférést kell adnia az alkalmazásnak a Log Analytics-munkaterülethez.

  1. A Log Analytics-munkaterület áttekintési lapján válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  2. Válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget.

    A screenshot that shows the Access control page for a Log Analytics workspace.

  3. Válassza ki az Olvasó szerepkört, majd válassza a Tagok lehetőséget.

    A screenshot that shows the Add role assignment page for a Log Analytics workspace.

  4. A Tagok lapon válassza a Tagok kijelölése lehetőséget.

  5. Írja be az alkalmazás nevét a Kiválasztás mezőbe.

  6. Válassza ki az alkalmazást, és válassza a Kiválasztás lehetőséget.

  7. Válassza az Áttekintés + hozzárendelés lehetőséget.

    A screenshot that shows the Select members pane on the Add role assignment page for a Log Analytics workspace.

  8. Miután befejezte az Active Directory beállítási és munkaterületi engedélyeit, kérjen egy engedélyezési jogkivonatot.

Megjegyzés:

Ebben a példában az Olvasó szerepkört alkalmaztuk. Ez a szerepkör egyike a számos beépített szerepkörnek, és a szükségesnél több engedélyt is tartalmazhat. Részletesebb szerepkörök és engedélyek hozhatók létre. További információ: Log Analytics-munkaterületek hozzáférésének kezelése.

Engedélyezési jogkivonat kérése

Mielőtt hozzákezdene, győződjön meg arról, hogy rendelkezik a kérés sikeres végrehajtásához szükséges összes értékkel. Minden kéréshez a következőre van szükség:

  • A Microsoft Entra-bérlő azonosítója.
  • A munkaterület azonosítója.
  • Az alkalmazás Microsoft Entra-ügyfélazonosítója.
  • Az alkalmazás Microsoft Entra-ügyfélkódja.

A Log Analytics API három különböző Microsoft Entra ID OAuth2-folyamattal támogatja a Microsoft Entra-hitelesítést:

  • Ügyfél-hitelesítő adatok
  • Engedélyezési kód
  • Implicit

Ügyfél hitelesítő adatainak folyamata

Az ügyfél hitelesítő adatainak folyamatában a jogkivonatot a Log Analytics-végpont használja. Az alkalmazás Microsoft Entra-azonosítóban való regisztrálásakor az előző lépésben megadott hitelesítő adatokkal egyetlen kérés érkezik a jogkivonat fogadásához.

Használja a végpontot https://api.loganalytics.azure.com .

Ügyfél hitelesítő adatainak token URL-címe (POST-kérés)

    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.loganalytics.io
    &client_secret=<app-client-secret>

A sikeres kérés hozzáférési jogkivonatot kap a válaszban:

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

Használja a jogkivonatot a Log Analytics-végpontra irányuló kérelmekben:

    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éldaválasz:

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

Engedélyezési kódfolyamat

A fő támogatott OAuth2-folyamat engedélyezési kódokon keresztül történik. Ehhez a metódushoz két HTTP-kérés szükséges egy jogkivonat beszerzéséhez, amellyel meghívható az Azure Monitor Log Analytics API. Két URL-cím érhető el, kérésenként egy végponttal. Formátumukat a következő szakaszok ismertetik.

Engedélyezési kód URL-címe (GET-kérelem)

    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

Az engedélyezési URL-címre irányuló kérések esetén a client_id a Microsoft Entra-alkalmazás alkalmazásazonosítója, amelyet az alkalmazás tulajdonságainak menüjéből másolnak ki. A redirect_uri a kezdőlap/bejelentkezési URL-cím ugyanabból a Microsoft Entra-alkalmazásból. Ha egy kérés sikeres, ez a végpont átirányítja a regisztrációkor megadott bejelentkezési oldalra az URL-címhez fűzött engedélyezési kóddal. Lásd a következő példát:

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

Ezen a ponton beszerzett egy engedélyezési kódot, amelyet most kell kérnie egy hozzáférési jogkivonathoz.

Engedélyezési kód jogkivonatÁNAK URL-címe (POST-kérelem)

    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>

Minden érték megegyezik a korábbi értékekkel, néhány kiegészítéssel. Az engedélyezési kód ugyanaz a kód, amelyet az előző kérelemben kapott egy sikeres átirányítás után. A kód a Microsoft Entra alkalmazásból beszerzett kulccsal van kombinálva. Ha nem mentette a kulcsot, törölheti, és létrehozhat egy újat a Microsoft Entra alkalmazás menüjének Kulcsok lapján. A válasz egy JSON-sztring, amely a következő sémával rendelkező jogkivonatot tartalmazza. A tokenértékek esetében típusok jelennek meg.

Példa a válaszra:

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

A válasz hozzáférési jogkivonat-része az, amit a Log Analytics API-nak mutat be a Authorization: Bearer fejlécben. A frissítési jogkivonatot a jövőben is használhatja egy új access_token beszerzéséhez, és refresh_token, ha elavult a fiókja. Ebben a kérésben a formátum és a végpont a következő:

    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élda a válaszra:

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

Implicit kódfolyamat

A Log Analytics API támogatja az OAuth2 implicit folyamatot. Ehhez a folyamathoz csak egyetlen kérésre van szükség, de nem szerezhető be frissítési jogkivonat.

Implicit kód engedélyezési URL-címe

    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

A sikeres kérés átirányítja az átirányítási URI-t az URL-címben található jogkivonattal:

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

Ez a Authorization: Bearer access_token használható fejlécértékként, amikor a Log Analytics API-nak továbbítja a kérések engedélyezéséhez.

További információ

Az OAuth2 és a Microsoft Entra dokumentációját itt találja:

Következő lépések