Microsoft Defender XDR API'lere iş ortağı erişimi olan bir uygulamayı İçerik Oluşturucu

Şunlar için geçerlidir:

  • Microsoft Defender XDR

Önemli

Bazı bilgiler, ticari olarak piyasaya sürülmeden önce önemli ölçüde değiştirilebilen önceden yayımlanmış ürünle ilgilidir. Microsoft, burada sağlanan bilgilerle ilgili olarak açık veya zımni hiçbir garanti vermez.

Bu sayfada, birden çok kiracıdaki kullanıcılar adına Microsoft Defender XDR program aracılığıyla erişimi olan bir Microsoft Entra uygulamasının nasıl oluşturulacağı açıklanır. Çok kiracılı uygulamalar, büyük kullanıcı gruplarına hizmet etmek için kullanışlıdır.

Tek bir kullanıcı adına Microsoft Defender XDR program aracılığıyla erişmeniz gerekiyorsa bkz. Kullanıcı adına Microsoft Defender XDR API'lere erişmek için uygulama İçerik Oluşturucu. Kullanıcı açıkça tanımlanmamış bir erişime ihtiyacınız varsa (örneğin, bir arka plan uygulaması veya daemon yazıyorsanız), kullanıcı olmadan Microsoft Defender XDR erişmek için bir uygulama İçerik Oluşturucu bölümüne bakın. Hangi tür erişime ihtiyacınız olduğundan emin değilseniz bkz. Kullanmaya başlama.

Microsoft Defender XDR, bir dizi programlı API aracılığıyla verilerinin ve eylemlerinin büyük bir kısmını kullanıma sunar. Bu API'ler iş akışlarını otomatikleştirmenize ve Microsoft Defender XDR özelliklerinden yararlanmanıza yardımcı olur. Bu API erişimi için OAuth2.0 kimlik doğrulaması gerekir. Daha fazla bilgi için bkz . OAuth 2.0 Yetkilendirme Kodu Akışı.

Genel olarak, bu API'leri kullanmak için aşağıdaki adımları uygulamanız gerekir:

  • Microsoft Entra bir uygulama İçerik Oluşturucu.
  • Bu uygulamayı kullanarak erişim belirteci alın.
  • Microsoft Defender XDR API'ye erişmek için belirteci kullanın.

Bu uygulama çok kiracılı olduğundan, kullanıcıları adına her kiracıdan yönetici onayı almanız gerekir.

Bu makalede şunların nasıl yapılacağını açıklar:

  • Çok kiracılı bir Microsoft Entra uygulamasını İçerik Oluşturucu
  • Uygulamanızın ihtiyaç duyduğu kaynaklara Microsoft Defender XDR erişmek için kullanıcı yöneticinizden yetkili onay alın.
  • Microsoft Defender XDR erişim belirteci alma
  • Belirteci doğrulama

Microsoft Defender XDR, bir dizi programlı API aracılığıyla verilerinin ve eylemlerinin büyük bir kısmını kullanıma sunar. Bu API'ler, iş akışlarını otomatikleştirmenize ve Microsoft Defender XDR özelliklerine göre yenilik oluşturmanıza yardımcı olur. API erişimi için OAuth2.0 kimlik doğrulaması gerekir. Daha fazla bilgi için bkz . OAuth 2.0 Yetkilendirme Kodu Akışı.

Genel olarak, API'leri kullanmak için aşağıdaki adımları uygulamanız gerekir:

  • Çok kiracılı bir Microsoft Entra uygulaması İçerik Oluşturucu.
  • Uygulamanızın ihtiyaç duyduğu Microsoft Defender XDR kaynaklara erişmesi için kullanıcı yöneticiniz tarafından yetkilendirilin (onay).
  • Bu uygulamayı kullanarak erişim belirteci alın.
  • Microsoft Defender XDR API'ye erişmek için belirteci kullanın.

Aşağıdaki adımlarda çok kiracılı bir Microsoft Entra uygulaması oluşturma, Microsoft Defender XDR için erişim belirteci alma ve belirteci doğrulama adımları yer alır.

Çok kiracılı uygulamayı İçerik Oluşturucu

  1. Azure'da Genel Yönetici rolüyle kullanıcı olarak oturum açın.

  2. Microsoft Entra ID>Uygulama kayıtları>Yeni kayıt'a gidin.

    Microsoft Defender portalında bir uygulamanın kayıt bölümü

  3. Kayıt formunda:

    • Uygulamanız için bir ad seçin.
    • Desteklenen hesap türlerindenherhangi bir kuruluş dizinindeki hesaplar (Herhangi bir Microsoft Entra dizini) - Çok Kiracılı'yı seçin.
    • Yeniden Yönlendirme URI'sini doldurun. Web yazın'ı seçin ve yeniden yönlendirme URI'sini olarak https://portal.azure.comverin.

    Formu doldurmayı tamamladıktan sonra Kaydet'i seçin.

    Microsoft Defender portalında uygulamanın kayıt bölümleri

  4. Uygulama sayfanızda API İzinleriKuruluşumun kullandığı> izin > API'lerini >ekle'yiseçin, Microsoft Tehdit Koruması yazın ve Microsoft Tehdit Koruması'yı seçin. Uygulamanız artık Microsoft Defender XDR erişebilir.

    İpucu

    Microsoft Tehdit Koruması, Microsoft Defender XDR için eski bir addır ve özgün listede görünmez. Görünmesini sağlamak için metin kutusuna adını yazmaya başlamanız gerekir.

    Microsoft Defender portalındaki API kullanımı bölümü

  5. Uygulama izinleri'ne tıklayın. Senaryonuz için ilgili izinleri seçin (örneğin, Incident.Read.All) ve ardından İzin ekle'yi seçin.

    Microsoft Defender portalında uygulamanın izin bölmesi

    Not

    Senaryonuz için ilgili izinleri seçmeniz gerekir. Tüm olayları okuma yalnızca bir örnektir. Hangi izne ihtiyacınız olduğunu belirlemek için lütfen çağırmak istediğiniz API'nin İzinler bölümüne bakın.

    Örneğin, gelişmiş sorgular çalıştırmak için 'Gelişmiş sorguları çalıştırma' iznini seçin; cihazı yalıtmak için 'Makineyi yalıt' iznini seçin.

  6. Yönetici onayı ver'i seçin. Her izin eklediğinizde, geçerli olması için Yönetici onayı ver'i seçmeniz gerekir.

    Microsoft Defender portalında yönetici onayı verme bölümü

  7. Uygulamaya gizli dizi eklemek için Sertifikalar & gizli dizileri seçin, gizli diziye bir açıklama ekleyin ve ardından Ekle'yi seçin.

    İpucu

    Ekle'yi seçtikten sonra oluşturulan gizli dizi değerini kopyala'yı seçin. Ayrıldıktan sonra gizli dizi değerini alamazsınız.

    Microsoft Defender portalındaki Gizli dizi ekleme bölümü

  8. Uygulama kimliğinizi ve kiracı kimliğinizi güvenli bir yere kaydedin. Bunlar uygulama sayfanızda Genel Bakış altında listelenir.

    Microsoft Defender portalındaki Genel Bakış bölmesi

  9. Uygulamayı kullanıcınızın kiracısına ekleyin.

    Uygulamanız kullanıcılarınız adına Microsoft Defender XDR ile etkileşime geçtiğinden, kullanmak istediğiniz her kiracı için onaylanması gerekir.

    Kullanıcınızın kiracısından bir Genel Yöneticinin onay bağlantısını görüntülemesi ve uygulamanızı onaylaması gerekir.

    Onay bağlantısı şu biçimdedir:

    https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true
    

    Basamaklar 00000000-0000-0000-0000-000000000000 Uygulama Kimliğiniz ile değiştirilmelidir.

    Onay bağlantısına tıkladıktan sonra kullanıcının kiracısının Genel Yöneticisi ile oturum açın ve uygulamayı onaylayın.

    Microsoft Defender portalındaki onay uygulaması sayfası

    Ayrıca kullanıcınızdan kiracı kimliğini de istemeniz gerekir. Kiracı kimliği, erişim belirteçlerini almak için kullanılan tanımlayıcılardan biridir.

  • Bitti! Bir uygulamayı başarıyla kaydettiniz!
  • Belirteç alma ve doğrulama için aşağıdaki örneklere bakın.

Erişim belirteci alma

Microsoft Entra belirteçleri hakkında daha fazla bilgi için Microsoft Entra öğreticisine bakın.

Önemli

Bu bölümdeki örnekler test amacıyla gizli dizi değerleri yapıştırmanızı teşvik etse de, üretimde çalışan bir uygulamaya gizli dizileri hiçbir zaman sabit kodlamamalısınız . Üçüncü bir taraf, kaynaklara erişmek için gizli dizinizi kullanabilir. Azure Key Vault kullanarak uygulamanızın gizli dizilerini güvende tutmaya yardımcı olabilirsiniz. Uygulamanızı nasıl koruyabileceğinize ilişkin pratik bir örnek için bkz. Azure Key Vault ile sunucu uygulamalarınızda gizli dizileri yönetme.

İpucu

Aşağıdaki örneklerde, betiğin çalışıp çalışmadığını test etmek için kullanıcının kiracı kimliğini kullanın.

PowerShell kullanarak erişim belirteci alma

# This code gets the application context token and saves it to a file named "Latest-token.txt" under the current directory.

$tenantId = '' # Paste your directory (tenant) ID here
$clientId = '' # Paste your application (client) ID here
$appSecret = '' # Paste your own app secret here to test, then store it in a safe place!

$resourceAppIdUri = 'https://api.security.microsoft.com'
$oAuthUri = "https://login.windows.net/$tenantId/oauth2/token"

$authBody = [Ordered] @{
    resource = $resourceAppIdUri
    client_id = $clientId
    client_secret = $appSecret
    grant_type = 'client_credentials'
}

$authResponse = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $authBody -ErrorAction Stop
$token = $authResponse.access_token

Out-File -FilePath "./Latest-token.txt" -InputObject $token

return $token

C kullanarak erişim belirteci alma#

Not

Aşağıdaki kod Nuget Microsoft.Identity.Client 3.19.8 ile test edilmiştir.

Önemli

Microsoft.IdentityModel.Clients.ActiveDirectory NuGet paketi ve Azure AD Kimlik Doğrulama Kitaplığı (ADAL) kullanım dışı bırakıldı. 30 Haziran 2020'den bu yana yeni özellik eklenmemiş. Yükseltmenizi kesinlikle öneririz. Diğer ayrıntılar için geçiş kılavuzuna bakın.

  1. Yeni bir konsol uygulaması İçerik Oluşturucu.

  2. NuGet Microsoft.Identity.Client'ı yükleyin.

  3. Aşağıdaki satırı ekleyin:

    using Microsoft.Identity.Client;
    
  4. Aşağıdaki kodu kopyalayıp uygulamanıza yapıştırın (üç değişkeni güncelleştirmeyi unutmayın: tenantId, clientId, appSecret):

    string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here
    string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here
    string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here for a test, and then store it in a safe place! 
    const string authority = https://login.microsoftonline.com;
    const string audience = https://api.securitycenter.microsoft.com;
    
    IConfidentialClientApplication myApp = ConfidentialClientApplicationBuilder.Create(appId).WithClientSecret(appSecret).WithAuthority($"{authority}/{tenantId}").Build();
    
    List<string> scopes = new List<string>() { $"{audience}/.default" };
    
    AuthenticationResult authResult = myApp.AcquireTokenForClient(scopes).ExecuteAsync().GetAwaiter().GetResult();
    
    string token = authResult.AccessToken;
    

Python kullanarak erişim belirteci alma

import json
import urllib.request
import urllib.parse

tenantId = '' # Paste your directory (tenant) ID here
clientId = '' # Paste your application (client) ID here
appSecret = '' # Paste your own app secret here to test, then store it in a safe place, such as the Azure Key Vault!

url = "https://login.windows.net/%s/oauth2/token" % (tenantId)

resourceAppIdUri = 'https://api.security.microsoft.com'

body = {
    'resource' : resourceAppIdUri,
    'client_id' : clientId,
    'client_secret' : appSecret,
    'grant_type' : 'client_credentials'
}

data = urllib.parse.urlencode(body).encode("utf-8")

req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req)
jsonResponse = json.loads(response.read())
aadToken = jsonResponse["access_token"]

Curl kullanarak erişim belirteci alma

Not

Curl, Windows 10, sürüm 1803 ve sonraki sürümlerde önceden yüklenmiştir. Windows'un diğer sürümleri için aracı doğrudan resmi curl web sitesinden indirin ve yükleyin.

  1. Bir komut istemi açın ve CLIENT_ID Azure uygulama kimliğiniz olarak ayarlayın.
  2. CLIENT_SECRET Azure uygulama gizli dizinize ayarlayın.
  3. Microsoft Defender XDR erişmek için uygulamanızı kullanmak isteyen kullanıcının Azure kiracı kimliğine TENANT_ID ayarlayın.
  4. Aşağıdaki komutu çalıştırın:
curl -i -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=%CLIENT_ID%" -d "scope=https://securitycenter.onmicrosoft.com/windowsatpservice/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID%/oauth2/v2.0/token" -k

Başarılı bir yanıt şöyle görünür:

{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn <truncated> aWReH7P0s0tjTBX8wGWqJUdDA"}

Belirteci doğrulama

  1. Kodu çözmek için belirteci kopyalayıp JSON web belirteci doğrulayıcı web sitesine (JWT) yapıştırın.
  2. Kodu çözülen belirteç içindeki rol talebi için istenen izinlerin bulunduğundan emin olun.

Aşağıdaki görüntüde, , Incidents.ReadWrite.Allve AdvancedHunting.Read.All izinleriyle Incidents.Read.Allbir uygulamadan alınan kodu çözülen belirteci görebilirsiniz:

Microsoft Defender portalında Kod Çözme Belirteci bölmesi

Microsoft Defender XDR API'sine erişmek için belirteci kullanma

  1. Kullanmak istediğiniz API'yi (olaylar veya gelişmiş avcılık) seçin. Daha fazla bilgi için bkz. Desteklenen Microsoft Defender XDR API'leri.
  2. Göndermek üzere olduğunuz http isteğinde yetkilendirme üst bilgisini "Bearer" <token>olarak ayarlayın, taşıyıcı yetkilendirme şeması ve belirteç doğrulanmış belirtecinizdir.
  3. Belirtecin süresi bir saat içinde dolar. Bu süre boyunca aynı belirteçle birden fazla istek gönderebilirsiniz.

Aşağıdaki örnekte , C# kullanarak olayların listesini almak için istek gönderme işlemleri gösterilmektedir.

   var httpClient = new HttpClient();
   var request = new HttpRequestMessage(HttpMethod.Get, "https://api.security.microsoft.com/api/incidents");

   request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);

   var response = httpClient.SendAsync(request).GetAwaiter().GetResult();

İpucu

Daha fazla bilgi edinmek mi istiyorsunuz? Teknoloji Topluluğumuzdaki Microsoft Güvenlik topluluğuyla etkileşime geçin: Microsoft Defender XDR Teknoloji Topluluğu.