Azure İzleyici Log Analytics API’sine Erişim

Azure İzleyici Log Analytics uç noktasını https://api.loganalytics.azure.comkullanarak bir ç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 Uç nokta ile api.loganalytics.azure.comdeğiştiriliyor. Uç api.loganalytics.io nokta, öngörülebilir gelecek için 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 üst bilgi: Özel üst bilgisinde X-Api-KeyAPI anahtarını sağlayın.
  • 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}

konumu:

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

Sorgu istek gövdesinde geçirilir.

Örneğin:

   https://api.loganalytics.azure.com/v1/workspaces/1234abcd-def89-765a-9abc-def1234abcde
   
   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. Bir uygulamayı Microsoft Entra Id'ye kaydedin.

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

  3. İzin ekle'yi seçin.

  4. Kuruluşumun kullandığı API'ler sekmesinde Log Analytics'i arayın ve listeden Log Analytics API'sini 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ına genel bakış sayfanızdan Erişim denetimi (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ının 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.

    Log Analytics çalışma alanının Rol ataması ekle 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ı kimliğiniz.
  • Çalışma alanı kimliğiniz.
  • Uygulama için Microsoft Entra istemci kimliğiniz.
  • Uygulama için bir 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 bilgileri akışı

İstemci kimlik bilgileri akışında belirteç Log Analytics uç noktasıyla birlikte kullanılır. Bir uygulamayı Microsoft Entra Id'ye kaydettiğ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

Belirteç isteğinde bulunurken bir resource parametre sağlamanız gerekir. resource parametresi, erişmek istediğiniz kaynağın URL'sidir.

Kaynaklar arasında şunlar bulunur:

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

REST isteği kullanarak belirteç alma

Belirteç almak için aşağıdaki REST API çağrısını kullanın. Bu istek, isteğin kimliğini doğrulamak için bir istemci kimliği ve istemci gizli dizisi kullanır. uygulamanızı Microsoft Entra Id ile kaydettiğinizde istemci kimliği ve istemci gizli dizisi elde edilir. Daha fazla bilgi için bkz . Yetkilendirme belirteçleri istemek ve API'lerle çalışmak için uygulama kaydetme

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'

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": "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'sinin çağrıldığı bir belirteç almak için 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 uygulamanın özellikler menüsünden kopyalanan Microsoft Entra uygulamanızdaki uygulama kimliğidir. 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, şimdi erişim belirteci istemeniz gereken bir yetkilendirme kodu edindiniz.

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, microsoft Entra uygulama menüsünün tuşlar sekmesinden anahtarı silebilir ve 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.

Yanıt örneği:

    {
        "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ü, üst bilgideki Log Analytics API'sine Authorization: Bearer sunabileceğiniz değerdir. Gelecekte yenileme belirtecini kullanarak yeni bir access_token edinebilir ve eskidiğinde refresh_token. 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>

Yanıt örneği:

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

Örtük kod akışı

Log Analytics API'si OAuth2 örtük akışını destekler. Bu akış için yalnızca tek bir istek gereklidir, ancak yenileme belirteci alınamıyor.

Örtük kod URL'yi yetkilendirme

    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

Başarılı bir istek, URL'deki belirteçle yeniden yönlendirme URI'nize bir yeniden yönlendirme oluşturur:

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

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

Daha Fazla Bilgi

Microsoft Entra ile OAuth2 hakkındaki belgeleri burada bulabilirsiniz:

Sonraki adımlar