İngilizce dilinde oku

Aracılığıyla paylaş


Kullanıcı olmadan Microsoft Defender XDR erişmek için uygulama oluşturma

Ş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, tanımlı bir kullanıcı olmadan Microsoft Defender XDR programlı erişim elde etmek için bir uygulamanın nasıl oluşturulacağı açıklanır( örneğin, bir daemon veya arka plan hizmeti oluşturuyorsanız).

Bir veya daha fazla 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 oluşturma ve Microsoft Defender XDR API'lere iş ortağı erişimiyle uygulama oluşturma. 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:

  • bir Microsoft Entra uygulaması oluşturun.
  • Bu uygulamayı kullanarak erişim belirteci alın.
  • Microsoft Defender XDR API'ye erişmek için belirteci kullanın.

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

  • Microsoft Entra uygulaması oluşturma
  • Microsoft Defender XDR erişim belirteci alma
  • Belirteci doğrulayın.

Uygulama oluşturma

  1. Azure'da oturum açın.

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

    Microsoft Defender portalındaki Yeni kayıt sekmesi

  3. Formda, uygulamanız için bir ad seçin ve ardından Kaydet'i seçin.

  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ında kuruluşun API'leri kullanım sekmesi

  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ındaki uygulama izni 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 onay vermeyle ilgili bölme

  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 uygulama oluştur bölmesi

  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. Yalnızca Microsoft Defender XDR İş Ortakları için: Microsoft Defender XDR API'leri aracılığıyla iş ortağı erişimi için bu yönergeleri izleyin, uygulamanızı çok kiracılı olarak ayarlayın; böylece yönetici onayı aldıktan sonra tüm kiracılarda kullanılabilir. Üçüncü taraf uygulamalar için iş ortağı erişimi gereklidir ; örneğin, birden çok müşterinin kiracısında çalıştırılması amaçlanan bir uygulama oluşturursanız. Yalnızca kendi kullanımınız için yalnızca kendi verilerinizle etkileşime geçebilecek bir uygulama gibi, yalnızca kiracınızda çalıştırmak istediğiniz bir hizmet oluşturursanız gerekli değildir . Uygulamanızı çok kiracılı olarak ayarlamak için:

    • Kimlik Doğrulaması'na gidin ve Yeniden Yönlendirme URI'sini ekleyinhttps://portal.azure.com.

    • Sayfanın en altındaki Desteklenen hesap türleri'nin altında, çok kiracılı uygulamanız için herhangi bir kuruluş dizini uygulamasındaki hesaplar onayını seçin.

    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.

    Her kiracının Active Directory yöneticisinin onay bağlantısını seçip uygulamanızı onaylaması gerekir.

    Onay bağlantısı aşağıdaki yapıya sahiptir:

    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.

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.

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, such as the Azure Key Vault!

$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ı oluşturun.

  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):

    csharp
    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 müşterinin 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://api.security.microsoft.com/.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ındaki Kodu çözülen belirteç 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.