Een app maken voor toegang tot Microsoft Defender XDR zonder een gebruiker
Van toepassing op:
- Microsoft Defender XDR
Belangrijk
Sommige informatie is gerelateerd aan voorlopige productversies die mogelijk aanzienlijk gewijzigd worden voordat ze commercieel gepubliceerd worden. Microsoft geeft geen garantie, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt beschreven.
Op deze pagina wordt beschreven hoe u een toepassing maakt om programmatische toegang te krijgen tot Microsoft Defender XDR zonder een gedefinieerde gebruiker, bijvoorbeeld als u een daemon- of achtergrondservice maakt.
Als u programmatische toegang nodig hebt tot Microsoft Defender XDR namens een of meer gebruikers, raadpleegt u Een app maken voor toegang tot Microsoft Defender XDR API's namens een gebruiker en Een app maken met partnertoegang tot Microsoft Defender XDR API's. Als u niet zeker weet welk type toegang u nodig hebt, raadpleegt u Aan de slag.
Microsoft Defender XDR maakt veel van de gegevens en acties beschikbaar via een set programmatische API's. Met deze API's kunt u werkstromen automatiseren en gebruikmaken van de mogelijkheden van Microsoft Defender XDR. Voor deze API-toegang is OAuth2.0-verificatie vereist. Zie OAuth 2.0-autorisatiecodestroom voor meer informatie.
Over het algemeen moet u de volgende stappen uitvoeren om deze API's te gebruiken:
- Een Microsoft Entra-toepassing maken.
- Haal een toegangstoken op met behulp van deze toepassing.
- Gebruik het token om toegang te krijgen tot Microsoft Defender XDR API.
In dit artikel wordt uitgelegd hoe u het volgende kunt doen:
- Een Microsoft Entra-toepassing maken
- Een toegangstoken ophalen voor Microsoft Defender XDR
- Valideer het token.
Een app maken
Meld u aan bij Azure.
Navigeer naar Microsoft Entra ID>App-registraties>Nieuwe registratie.
Kies in het formulier een naam voor uw toepassing en selecteer vervolgens Registreren.
Selecteer op uw toepassingspagina API-machtigingenToevoegenmachtigings-API's >> diemijn organisatie gebruikt>, typ Microsoft Threat Protection en selecteer Microsoft Threat Protection. Uw app heeft nu toegang tot Microsoft Defender XDR.
Tip
Microsoft Threat Protection is een voormalige naam voor Microsoft Defender XDR en wordt niet weergegeven in de oorspronkelijke lijst. U moet beginnen met het schrijven van de naam in het tekstvak om deze weer te geven.
Selecteer Toepassingsmachtigingen. Kies de relevante machtigingen voor uw scenario (bijvoorbeeld Incident.Read.All) en selecteer vervolgens Machtigingen toevoegen.
Opmerking
U moet de relevante machtigingen voor uw scenario selecteren. Alle incidenten lezen is slechts een voorbeeld. Als u wilt bepalen welke machtiging u nodig hebt, bekijkt u de sectie Machtigingen in de API die u wilt aanroepen.
Als u bijvoorbeeld geavanceerde query's wilt uitvoeren, selecteert u de machtiging Geavanceerde query's uitvoeren; als u een apparaat wilt isoleren, selecteert u de machtiging Machine isoleren.
Selecteer Beheerderstoestemming verlenen. Telkens wanneer u een machtiging toevoegt, moet u Beheerderstoestemming verlenen selecteren om deze van kracht te laten worden.
Als u een geheim wilt toevoegen aan de toepassing, selecteert u Certificaten & geheimen, voegt u een beschrijving toe aan het geheim en selecteert u vervolgens Toevoegen.
Tip
Nadat u Toevoegen hebt geselecteerd, selecteert u de gegenereerde geheime waarde kopiëren. U kunt de geheime waarde niet meer ophalen nadat u bent weg gelaten.
Noteer uw toepassings-id en uw tenant-id ergens veilig. Ze worden weergegeven onder Overzicht op de pagina van uw toepassing.
Alleen voor Microsoft Defender XDR-partners: volg deze instructies voor partnertoegang via de Microsoft Defender XDR API's en stel uw app in op multitenant, zodat deze beschikbaar kan zijn in alle tenants zodra u beheerderstoestemming hebt ontvangen. Partnertoegang is vereist voor apps van derden, bijvoorbeeld als u een app maakt die is bedoeld om te worden uitgevoerd in tenants van meerdere klanten. Dit is niet vereist als u een service maakt die u alleen in uw tenant wilt uitvoeren, zoals een toepassing voor uw eigen gebruik die alleen met uw eigen gegevens communiceert. Uw app instellen op multitenant:
Ga naar Verificatie en voeg toe https://portal.azure.com als omleidings-URI.
Selecteer onder aan de pagina onder Ondersteunde accounttypen de toestemming voor accounts in een organisatiemaptoepassing voor uw app met meerdere tenants.
Omdat uw toepassing communiceert met Microsoft Defender XDR namens uw gebruikers, moet deze worden goedgekeurd voor elke tenant waarvoor u deze wilt gebruiken.
De Active Directory-beheerder voor elke tenant moet de toestemmingskoppeling selecteren en uw app goedkeuren.
De toestemmingskoppeling heeft de volgende structuur:
https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=<00000000-0000-0000-0000-000000000000>&response_type=code&sso_reload=true
De cijfers moeten worden vervangen door uw toepassings-id
00000000-0000-0000-0000-000000000000
.
Gereed! U hebt een toepassing geregistreerd. Bekijk hieronder voorbeelden voor het verkrijgen en valideren van tokens.
Een toegangstoken ophalen
Zie de zelfstudie Microsoft Entra voor meer informatie over Microsoft Entra tokens.
Belangrijk
Hoewel u in de voorbeelden in deze sectie wordt aangemoedigd om geheime waarden te plakken voor testdoeleinden, moet u geheimen nooit hardcoderen in een toepassing die in productie wordt uitgevoerd. Een derde partij kan uw geheim gebruiken om toegang te krijgen tot resources. U kunt de geheimen van uw app beveiligen met behulp van Azure Key Vault. Zie Geheimen in uw server-apps beheren met Azure Key Vault voor een praktisch voorbeeld van hoe u uw app kunt beveiligen.
Een toegangstoken ophalen met Behulp van PowerShell
# 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
Een toegangstoken ophalen met C#
Opmerking
De volgende code is getest met Nuget Microsoft.Identity.Client 3.19.8.
Belangrijk
Het NuGet-pakket Microsoft.IdentityModel.Clients.ActiveDirectory en Azure AD Authentication Library (ADAL) zijn afgeschaft. Er zijn sinds 30 juni 2020 geen nieuwe functies toegevoegd. We raden u ten zeere aan om een upgrade uit te voeren. Raadpleeg de migratiehandleiding voor meer informatie.
Maak een nieuwe consoletoepassing.
Installeer NuGet Microsoft.Identity.Client.
Voeg de volgende regel toe:
using Microsoft.Identity.Client;
Kopieer en plak de volgende code in uw app (vergeet niet de drie variabelen bij te werken:
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;
Een toegangstoken ophalen met python
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"]
Een toegangstoken ophalen met curl
Opmerking
Curl is vooraf geïnstalleerd op Windows 10 versie 1803 en hoger. Voor andere versies van Windows downloadt en installeert u het hulpprogramma rechtstreeks vanaf de officiële curl-website.
Open een opdrachtprompt en stel CLIENT_ID in op uw Azure-toepassings-id.
Stel CLIENT_SECRET in op uw Azure-toepassingsgeheim.
Stel TENANT_ID in op de Azure-tenant-id van de klant die uw app wil gebruiken voor toegang tot Microsoft Defender XDR.
Voer de volgende opdracht uit:
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
Een geslaagd antwoord ziet er als volgt uit:
{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn <truncated> aWReH7P0s0tjTBX8wGWqJUdDA"}
Het token valideren
Kopieer en plak het token in de JSON-webtokenvalidatorwebsite, JWT, om het te decoderen.
Zorg ervoor dat de rollenclaim binnen het gedecodeerde token de gewenste machtigingen bevat.
In de volgende afbeelding ziet u een gedecodeerd token dat is verkregen uit een app, met
Incidents.Read.All
machtigingen ,Incidents.ReadWrite.All
enAdvancedHunting.Read.All
:
Het token gebruiken voor toegang tot de Microsoft Defender XDR-API
Kies de API die u wilt gebruiken (incidenten of geavanceerde opsporing). Zie Ondersteunde Microsoft Defender XDR API's voor meer informatie.
Stel in de HTTP-aanvraag die u gaat verzenden de autorisatieheader in op
"Bearer" <token>
, Bearer is het autorisatieschema en token uw gevalideerde token.Het token verloopt binnen een uur. U kunt in deze periode meer dan één aanvraag verzenden met hetzelfde token.
In het volgende voorbeeld ziet u hoe u een aanvraag verzendt om een lijst met incidenten op te halen met behulp van C#.
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();
Verwante artikelen
- Overzicht van Microsoft Defender XDR API's
- Toegang tot de Microsoft Defender XDR API's
- Een 'Hello world'-toepassing maken
- Een app maken voor toegang tot Microsoft Defender XDR API's namens een gebruiker
- Een app maken met partnertoegang met meerdere tenants tot Microsoft Defender XDR API's
- Meer informatie over API-limieten en -licenties
- Foutcodes begrijpen
- Geheimen in uw server-apps beheren met Azure Key Vault
- OAuth 2.0-autorisatie voor gebruikersaanmelding en API-toegang
Tip
Wil je meer weten? Neem contact op met de Microsoft Beveiliging-community in onze Tech Community: Microsoft Defender XDR Tech Community.