Azure İzleyici Log Analytics API’sine Erişim
Azure İzleyici Log Analytics uç noktasını https://api.loganalytics.azure.com
kullanarak 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.com
değ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_KEY
geç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-Key
API anahtarını sağlayın. - Sorgu parametresi: URL parametresinde
api_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.
Bir uygulamayı Microsoft Entra Id'ye kaydedin.
Uygulamanın genel bakış sayfasında API izinleri'ni seçin.
İzin ekle'yi seçin.
Kuruluşumun kullandığı API'ler sekmesinde Log Analytics'i arayın ve listeden Log Analytics API'sini seçin.
Atanan izinler'i seçin.
Data.Read onay kutusunu seçin.
İzinler ekle'yi seçin.
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.
Log Analytics çalışma alanına genel bakış sayfanızdan Erişim denetimi (IAM) öğesini seçin.
Rol ataması ekle’yi seçin.
Okuyucu rolünü ve ardından Üyeler'i seçin.
Üyeler sekmesinde Üye seç'i seçin.
Seç kutusuna uygulamanızın adını girin.
Uygulamanızı seçin ve Seç'i seçin.
Gözden geçir + ata'yı seçin.
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:
- Microsoft Entra yetkilendirme kodu akışı
- Microsoft Entra örtük izin akışı
- Microsoft Entra S2S istemci kimlik bilgileri akışı