Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan skicka en frågebegäran till en arbetsyta med hjälp av Azure Monitor Log Analytics slutpunkten https://api.loganalytics.azure.com. För att få åtkomst till slutpunkten måste du autentisera via Microsoft Entra ID.
Anteckning
Slutpunkten api.loganalytics.io ersätts av api.loganalytics.azure.com. Slutpunkten api.loganalytics.io kommer att fortsätta att stödjas under överskådlig framtid.
Autentisera med en demo-API-nyckel
Om du snabbt vill utforska API:et utan Microsoft Entra autentisering använder du demonstrationsarbetsytan med exempeldata, som stöder API-nyckelautentisering.
Om du vill autentisera och köra frågor mot exempelarbetsytan använder DEMO_WORKSPACE du som {workspace-id} och skickar api-nyckeln DEMO_KEY.
Om antingen program-ID:t eller API-nyckeln är felaktiga returnerar API-tjänsten ett 403-fel (förbjudet).
API-nyckeln DEMO_KEY kan skickas på tre olika sätt, beroende på om du vill använda en rubrik, URL:en eller grundläggande autentisering:
-
Anpassat huvud: Ange API-nyckeln i det anpassade huvudet
X-Api-Key. -
Frågeparameter: Ange API-nyckeln i URL-parametern
api_key. - Grundläggande autentisering: Ange API-nyckeln som användarnamn eller lösenord. Om du anger båda måste API-nyckeln vara i användarnamnet.
I det här exemplet används arbetsyte-ID:t och API-nyckeln i rubriken:
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"
}
Offentlig API-slutpunkt
Den offentliga API-slutpunkten är:
https://api.loganalytics.azure.com/{api-version}/workspaces/{workspaceId}
Var:
-
api-version: API-versionen. Den aktuella versionen är
v1. - workspaceId: Ditt arbetsyte-ID.
Anteckning
API-versionen beta har blivit inaktuell. Mer information finns i Migrera från att använda API:er för batch- och betafrågor.
Frågan skickas i begärandetexten.
Till exempel:
https://api.loganalytics.azure.com/v1/workspaces/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
Body:
{
"query": "Usage"
}
Konfigurera autentisering
För att få åtkomst till API:et registrerar du en klientapp med Microsoft Entra ID och begär en token.
På appens översiktssida väljer du API-behörigheter.
Välj Lägg till behörighet.
På fliken APIs som min organisation använder söker du efter Log Analytics och väljer Log Analytics API i listan.
Välj delegerade behörigheter.
Markera kryssrutan Data.Read .
Välj Lägg till behörigheter.
Nu när din app har registrerats och har behörighet att använda API:et ger du din app åtkomst till din Log Analytics arbetsyta.
På Log Analytics-arbetsytans översiktssida, väljer du Åtkomstkontroll (IAM).
Välj Lägg till rolltilldelning.
Välj rollen Läsare och välj sedan Medlemmar.
På fliken Medlemmar väljer du Välj medlemmar.
Ange namnet på din app i rutan Välj .
Välj din app och välj Välj.
Välj Granska + tilldela.
När du har slutfört služba Active Directory konfigurations- och arbetsytebehörigheter begär du en auktoriseringstoken.
Anteckning
I det här exemplet använde vi rollen Läsare. Den här rollen är en av många inbyggda roller och kan innehålla fler behörigheter än du behöver. Du kan skapa fler detaljerade roller och behörigheter. Mer information finns i Hantera åtkomst till Log Analytics arbetsytor.
Begära en auktoriseringstoken
Innan du börjar kontrollerar du att du har alla värden som krävs för att begäran ska lyckas. Alla begäranden kräver:
- Ditt Microsoft Entra klient-ID.
- Ditt arbetsyte-ID.
- Ditt Microsoft Entra klient-ID för appen.
- En Microsoft Entra klienthemlighet för appen.
LOG ANALYTICS-API:et stöder Microsoft Entra autentisering med tre olika Microsoft Entra ID OAuth2 flöden:
- Klientautentiseringsuppgifter
- Auktoriseringskod
- Underförstådd
Flöde för klientautentiseringsuppgifter
I flödet för klientuppgifter används token med slutpunkten för Log Analytics. En enda begäran görs om att ta emot en token med hjälp av de autentiseringsuppgifter som angavs för din app i föregående steg när du registrera en app i Microsoft Entra ID.
Använd resource=https://api.loganalytics.azure.com.
Hämta en autentiseringstoken med någon av följande metoder:
- Kommandoradsgränssnitt (CLI)
- REST-API
- SDK
Hämta en token med hjälp av en REST-begäran
Använd följande REST API-anrop för att hämta en token. Den här begäran använder ett klient-ID och en klienthemlighet för att autentisera begäran. Klient-ID och klienthemlighet hämtas när du registrerar ditt program med Microsoft Entra ID. Mer information finns i Registrera en app för att begära auktoriseringstoken och arbeta med API:er.
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={resource URI of the service you want to access, e.g. https://monitoring.azure.com>'}'
Svarstexten visas i följande format:
{
"token_type": "Bearer",
"expires_in": "86399",
"ext_expires_in": "86399",
"expires_on": "1672826207",
"not_before": "1672739507",
"resource": "{resource URI of the service you want to access, e.g. https://monitoring.azure.com>'}",
"access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}
Använd token i begäranden till Log Analytics slutpunkt:
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"
}
Exempelsvar:
{
"tables": [
{
"name": "PrimaryResult",
"columns": [
{
"name": "OperationName",
"type": "string"
},
{
"name": "Level",
"type": "string"
},
{
"name": "ActivityStatus",
"type": "string"
}
],
"rows": [
[
"Metric Alert",
"Informational",
"Resolved",
...
],
...
]
},
...
]
}
Auktoriseringskodflöde
Det huvudsakliga OAuth2-flödet som stöds är via auktoriseringskoder. Den här metoden kräver två HTTP-begäranden för att hämta en token som du kan anropa Azure Monitor Log Analytics-API:et med. Det finns två URL:er med en slutpunkt per begäran. Deras format beskrivs i följande avsnitt.
Auktoriseringskod-URL (GET-begäran)
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
När en begäran görs om att auktorisera URL:en är client_id program-ID:t från din Microsoft Entra app som kopieras från appens egenskapsmeny. Redirect_uri är startsidan/inloggnings-URL:en från samma Microsoft Entra app. När en begäran lyckas omdirigerar den här slutpunkten dig till inloggningssidan som du angav vid registreringen med auktoriseringskoden som läggs till i URL:en. Se följande exempel:
http://<app-client-id>/?code=AUTHORIZATION_CODE&session_state=STATE_GUID
Nu har du fått en auktoriseringskod som du nu behöver för att begära en åtkomsttoken.
Url för auktoriseringskodtoken (POST-begäran)
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>
Alla värden är samma som tidigare, med vissa tillägg. Auktoriseringskoden är samma kod som du fick i föregående begäran efter en lyckad omdirigering. Koden kombineras med nyckeln som hämtas från Microsoft Entra-appen. Om du inte sparade nyckeln kan du ta bort den och skapa en ny från fliken nycklar i Microsoft Entra appmenyn. Svaret är en JSON-sträng som innehåller token med följande schema. Typer anges för tokenvärdena.
Exempelsvar:
{
"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"
}
Åtkomsttokendelen av det här svaret är det du presenterar för Log Analytics-API:et i rubriken Authorization: Bearer. Du kan också använda en uppdateringstoken i framtiden för att skaffa en ny access_token och en ny uppdateringstoken när dina nuvarande har blivit inaktuella. För den här begäran är formatet och slutpunkten:
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>
Exempelsvar:
{
"token_type": "Bearer",
"expires_in": "3600",
"expires_on": "1460404526",
"resource": "https://api.loganalytics.io",
"access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax",
"refresh_token": "eyJ0esdfiJKV1ljhgYF.....Az"
}
Flöde för klientautentiseringsuppgifter
Log Analytics-API:et stöder OAuth2 klientautentiseringsflöde. Det här flödet är lämpligt för tjänst-till-tjänst-anrop där ingen användarinteraktion krävs.
Tokenbegäran för klientautentiseringsuppgifter
POST https://login.microsoftonline.com/YOUR_AAD_TENANT/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=<app-client-id>
&scope=https://api.loganalytics.io/.default
&client_secret=<app-client-secret>
&grant_type=client_credentials
Exempelsvar:
{
"token_type": "Bearer",
"expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax"
}
Den här access_token kan användas som Authorization: Bearer-huvudvärde när det skickas till Log Analytics API för att auktorisera begäranden.
Mer information
Du hittar dokumentation om OAuth2 med Microsoft Entra här: