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.
Azure'da oturum açın.
Microsoft Entra ID>Uygulama kayıtları>Yeni kayıt'a gidin.
Formda, uygulamanız için bir ad seçin ve ardından Kaydet'i seçin.
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.
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.
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.
Yönetici onayı ver'i seçin. Her izin eklediğinizde, geçerli olması için Yönetici onayı ver'i seçmeniz gerekir.
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.
Uygulama kimliğinizi ve kiracı kimliğinizi güvenli bir yere kaydedin. Bunlar uygulama sayfanızda Genel Bakış altında listelenir.
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.
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.
# 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
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.
Yeni bir konsol uygulaması oluşturun.
NuGet Microsoft.Identity.Client'ı yükleyin.
Aşağıdaki satırı ekleyin:
using Microsoft.Identity.Client;
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;
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"]
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.
Bir komut istemi açın ve CLIENT_ID Azure uygulama kimliğiniz olarak ayarlayın.
CLIENT_SECRET Azure uygulama gizli dizinize ayarlayın.
Microsoft Defender XDR erişmek için uygulamanızı kullanmak isteyen müşterinin Azure kiracı kimliğine TENANT_ID ayarlayın.
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"}
Kodu çözmek için belirteci kopyalayıp JSON web belirteci doğrulayıcı web sitesine (JWT) yapıştırın.
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.All
veAdvancedHunting.Read.All
izinleriyleIncidents.Read.All
bir uygulamadan alınan kodu çözülen belirteci görebilirsiniz:
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.
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.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();
- api'lere genel bakış Microsoft Defender XDR
- Microsoft Defender XDR API'lerine erişme
- 'Hello dünya' uygulaması oluşturma
- Kullanıcı adına Microsoft Defender XDR API'lerine erişmek için uygulama oluşturma
- Microsoft Defender XDR API'lere çok kiracılı iş ortağı erişimi olan bir uygulama oluşturma
- API sınırları ve lisanslama hakkında bilgi edinin
- Hata kodlarını anlama
- Azure Key Vault ile sunucu uygulamalarınızdaki gizli dizileri yönetme
- Kullanıcı oturum açma ve API erişimi için OAuth 2.0 yetkilendirmesi
İ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.