Azure İzleyici Log Analytics API'sine erişme

Azure İzleyici Log Analytics uç noktasını https://api.loganalytics.azure.com kullanarak çalışma alanına sorgu isteği gönderebilirsiniz. Uç noktaya erişmek için Microsoft Entra ID aracılığıyla kimlik doğrulaması yapmanız gerekir.

Not

api.loganalytics.io son nokta, api.loganalytics.azure.com ile değiştiriliyor. Son api.loganalytics.io nokta, yakın gelecekte desteklenmeye devam edecektir.

Tanıtım API'si anahtarıyla kimlik doğrulaması

Microsoft Entra kimlik doğrulaması olmadan API'yi hızla keşfetmek için örnek verilerle birlikte API anahtar kimlik doğrulamasını destekleyen tanıtım çalışma alanını kullanın.

Örnek çalışma alanında kimlik doğrulaması yapmak ve sorguları çalıştırmak için {workspace-id} olarak kullanın DEMO_WORKSPACE ve API anahtarını DEMO_KEYgeçirin.

Uygulama Kimliği veya API anahtarı yanlışsa, API hizmeti 403 (Yasak) hatası döndürür.

Üst bilgi, URL veya temel kimlik doğrulaması kullanmak isteyip istemediğinize bağlı olarak API anahtarı DEMO_KEY üç farklı yolla geçirilebilir:

  • Özel başlık: API anahtarını özel başlıkta sağlayın X-Api-Key.
  • Sorgu parametresi: URL parametresindeapi_key API anahtarını sağlayın.
  • Temel kimlik doğrulaması: API anahtarını kullanıcı adı veya parola olarak belirtin. Her ikisini de sağlarsanız, API anahtarının kullanıcı adı içinde olması gerekir.

Bu örnekte üst bilgideki çalışma alanı kimliği ve API anahtarı kullanılır:

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

Genel API uç noktası

Genel API uç noktası:

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

Nerede:

  • api-version: API sürümü. Geçerli sürüm: v1.
  • workspaceId: Çalışma alanı kimliğiniz.

Not

beta Api sürümü kullanım dışı bırakıldı. Daha fazla bilgi için Toplu ve beta sorgu API'lerini kullanmayı bırakıp geçiş yapma bölümüne bakın.

Sorgu istek gövdesinde geçirilir.

Örneğin:

https://api.loganalytics.azure.com/v1/workspaces/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1

Body:
{
    "query": "Usage"
}

Kimlik doğrulaması kurulumu

API'ye erişmek için Microsoft Entra ID ile bir istemci uygulaması kaydeder ve belirteç isteyebilirsiniz.

  1. Microsoft Entra ID'da bir uygulamayı kaydetme.

  2. Uygulamanın genel bakış sayfasında API izinleri'ni seçin.

  3. İzin ekle'yi seçin.

  4. Kuruluşumun kullandığı APIler sekmesinde sekmesinde Log Analytics araması yapın ve listeden Log Analytics API öğesini seçin.

    API izinleri isteme sayfasını gösteren ekran görüntüsü.

  5. Atanan izinler'i seçin.

  6. Data.Read onay kutusunu seçin.

  7. İzinler ekle'yi seçin.

    API izinleri isteme sayfasının devamını gösteren ekran görüntüsü.

Uygulamanız artık kayıtlı olduğuna ve API'yi kullanma izinlerine sahip olduğuna göre, uygulamanıza Log Analytics çalışma alanınıza erişim izni verin.

  1. Log Analytics çalışma alanınız genel bakış sayfasından Erişim kontrolü (IAM) öğesini seçin.

  2. Rol ataması ekle’yi seçin.

     Log Analytics çalışma alanının Erişim denetim sayfasını gösteren ekran görüntüsü.

  3. Okuyucu rolünü ve ardından Üyeler'i seçin.

     Log Analytics çalışma alanı için rol ataması ekle sayfasını gösteren ekran görüntüsü.

  4. Üyeler sekmesinde Üye seç'i seçin.

  5. Seç kutusuna uygulamanızın adını girin.

  6. Uygulamanızı seçin ve Seç'i seçin.

  7. Gözden geçir + ata'yı seçin.

    A Log Analytics çalışma alanının Rol ataması ekleme sayfasındaki Üyeleri seç bölmesini gösteren ekran görüntüsü.

  8. Active Directory kurulum ve çalışma alanı izinlerini tamamladıktan sonra bir yetkilendirme belirteci isteyin.

Not

Bu örnekte Okuyucu rolünü uyguladık. Bu rol birçok yerleşik rolden biridir ve ihtiyacınız olandan daha fazla izin içerebilir. Daha ayrıntılı roller ve izinler oluşturulabilir. Daha fazla bilgi için bkz. Log Analytics çalışma alanlarına erişimi yönetme.

Yetkilendirme belirteci isteme

Başlamadan önce, isteği başarıyla yapmak için gereken tüm değerlere sahip olduğunuzdan emin olun. Tüm istekler şunları gerektirir:

  • Microsoft Entra kiracı hesabı kimliğiniz.
  • Çalışma alanı kimliğiniz.
  • Uygulama için Microsoft Entra istemci kimliğiniz.
  • Uygulama için Microsoft Entra istemci gizli dizisi.

Log Analytics API'si üç farklı Microsoft Entra ID OAuth2 akışıyla Microsoft Entra kimlik doğrulamasını destekler:

  • İstemci kimlik bilgileri
  • Yetki kodu
  • Örtük

İstemci kimlik doğrulama akışı

İstemci kimlik bilgileri akışında belirteç, Log Analytics uç noktasıyla birlikte kullanılır. Bir uygulamayı Microsoft Entra ID kaydettirdiğinizde önceki adımda uygulamanız için sağlanan kimlik bilgileri kullanılarak belirteç almak için tek bir istek yapılır.

resource=https://api.loganalytics.azure.com adresini kullanın.

Aşağıdaki yöntemlerden herhangi birini kullanarak bir kimlik doğrulama belirteci alın:

  • CLI
  • REST API
  • SDK

REST isteği kullanarak belirteç alma

Belirteç almak için aşağıdaki REST API çağrısını kullanın. Bu istek, isteği doğrulamak için bir istemci kimliği ve istemci sır bilgisi kullanır. İstemci kimliği ve istemci gizli anahtarı, uygulamanızı Microsoft Entra ID kaydettiğinizde elde edilir. Daha fazla bilgi için Yetkilendirme belirteçleri istemek ve API'lerle çalışmak için bir uygulama kaydetme sayfasına bakın.

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

Yanıt gövdesi aşağıdaki biçimde görünür:

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

Log Analytics uç noktasına yapılan isteklerde belirteci kullanın:

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

Örnek yanıt:

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

Yetkilendirme kodu akışı

Desteklenen ana OAuth2 akışı yetkilendirme kodları aracılığıyla yapılır. Bu yöntem, Azure İzleyici Log Analytics API'sini çağırmak için kullanılacak bir belirteç elde etmek amacıyla iki HTTP isteği gerektirir. İstek başına bir uç nokta içeren iki URL vardır. Biçimleri aşağıdaki bölümlerde açıklanmıştır.

Yetkilendirme kodu URL'si (GET isteği)

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

Yetkilendirme URL'sine istekte bulunulduğunda, client_id Microsoft Entra uygulamanızın uygulama kimliğidir ve uygulamanın özellikler menüsünden kopyalanır. redirect_uri, aynı Microsoft Entra uygulamasındaki giriş sayfası/oturum açma URL'sidir. bir istek başarılı olduğunda, bu uç nokta sizi url'ye eklenen yetkilendirme koduyla birlikte kayıt sırasında sağladığınız oturum açma sayfasına yönlendirir. Aşağıdaki örneğe bakın:

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

Bu noktada, bir erişim belirteci istemek için gerekli olan yetkilendirme kodunu aldınız.

Yetkilendirme kodu belirteci URL'si (POST isteği)

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>

Tüm değerler, bazı eklemelerle öncekiyle aynıdır. Yetkilendirme kodu, başarılı bir yeniden yönlendirmeden sonra önceki istekte aldığınız kodla aynıdır. Kod, Microsoft Entra uygulamasından alınan anahtarla birleştirilir. Anahtarı kaydetmediyseniz, anahtarı silebilir ve Microsoft Entra uygulama menüsünün tuşlar sekmesinden yeni bir anahtar oluşturabilirsiniz. Yanıt, aşağıdaki şemaya sahip belirteci içeren bir JSON dizesidir. Belirteç değerleri için türler gösterilir.

Örnek yanıt:

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

Bu yanıtın erişim belirteci bölümü, Authorization: Bearer üst bilgisindeki Log Analytics API'sine sunabileceğiniz değerdir. Gelecekte, yenileme belirteci kullanarak eskimiş olan access_token ve refresh_token yerine yeni bir access_token ve refresh_token edinebilirsiniz. Bu istek için biçim ve uç nokta şunlardır:

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>

Örnek yanıt:

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

İstemci kimlik doğrulama akışı

Log Analytics API'si OAuth2 client kimlik bilgileri akışını destekler. Bu akış, kullanıcı etkileşimi gerekmeyen hizmet-hizmet çağrıları için uygundur.

İstemci kimlik bilgileri belirteci isteği

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

Örnek yanıt:

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

Bu access_token, istekleri yetkilendirmek için Log Analytics API'sine geçirildiğinde Authorization: Bearer üst bilgi değeri olarak kullanılabilir.

Daha Fazla Bilgi

Microsoft Entra ile OAuth2 ile ilgili belgeleri burada bulabilirsiniz:

Sonraki adımlar