Erstellen einer App für den Zugriff auf Microsoft Defender XDR ohne Benutzer
Gilt für:
- Microsoft Defender XDR
Wichtig
Einige Informationen beziehen sich auf Vorabversionen von Produkten, die vor der kommerziellen Veröffentlichung noch erheblich geändert werden können. Microsoft übernimmt mit diesen Informationen keinerlei Gewährleistung, sei sie ausdrücklich oder konkludent.
Auf dieser Seite wird beschrieben, wie Sie eine Anwendung erstellen, um programmgesteuerten Zugriff auf Microsoft Defender XDR ohne einen definierten Benutzer zu erhalten, z. B. wenn Sie einen Daemon oder Hintergrunddienst erstellen.
Wenn Sie programmgesteuerten Zugriff auf Microsoft Defender XDR im Namen eines oder mehrerer Benutzer benötigen, lesen Sie Erstellen einer App für den Zugriff auf Microsoft Defender XDR APIs im Namen eines Benutzers und Erstellen einer App mit Partnerzugriff auf Microsoft Defender XDR APIs. Wenn Sie nicht sicher sind, welche Art von Zugriff Sie benötigen, lesen Sie Erste Schritte.
Microsoft Defender XDR macht einen Großteil seiner Daten und Aktionen über eine Reihe programmgesteuerter APIs verfügbar. Mithilfe dieser APIs können Sie Workflows automatisieren und die Funktionen von Microsoft Defender XDR nutzen. Für diesen API-Zugriff ist die OAuth2.0-Authentifizierung erforderlich. Weitere Informationen finden Sie unter OAuth 2.0-Autorisierungscodefluss.
Im Allgemeinen müssen Sie die folgenden Schritte ausführen, um diese APIs zu verwenden:
- Erstellen Sie eine Microsoft Entra-Anwendung.
- Rufen Sie mithilfe dieser Anwendung ein Zugriffstoken ab.
- Verwenden Sie das Token, um auf Microsoft Defender XDR-API zuzugreifen.
In diesem Artikel wird folgendes erläutert:
- Erstellen einer Microsoft Entra-Anwendung
- Abrufen eines Zugriffstokens für Microsoft Defender XDR
- Überprüfen Sie das Token.
App erstellen
Melden Sie sich bei Azure an.
Navigieren Sie zu Microsoft Entra ID>App-Registrierungen>Neue Registrierung.
Wählen Sie im Formular einen Namen für Ihre Anwendung und dann Registrieren aus.
Wählen Sie auf der Anwendungsseite API-Berechtigungen> Berechtigungs-APIs >hinzufügenaus,die meine organization verwendet>, geben Sie Microsoft Threat Protection ein, und wählen Sie Microsoft Threat Protection aus. Ihre App kann jetzt auf Microsoft Defender XDR zugreifen.
Tipp
Microsoft Threat Protection ist ein früherer Name für Microsoft Defender XDR und wird nicht in der ursprünglichen Liste angezeigt. Sie müssen damit beginnen, seinen Namen in das Textfeld zu schreiben, damit er angezeigt wird.
Wählen Sie Anwendungsberechtigungen aus. Wählen Sie die relevanten Berechtigungen für Ihr Szenario aus (z. B. Incident.Read.All), und wählen Sie dann Berechtigungen hinzufügen aus.
Hinweis
Sie müssen die relevanten Berechtigungen für Ihr Szenario auswählen. Alle Vorfälle lesen ist nur ein Beispiel. Um zu ermitteln, welche Berechtigung Sie benötigen, sehen Sie sich den Abschnitt Berechtigungen in der API an, die Sie aufrufen möchten.
Um instance erweiterte Abfragen auszuführen, wählen Sie die Berechtigung "Erweiterte Abfragen ausführen" aus. Wählen Sie zum Isolieren eines Geräts die Berechtigung "Computer isolieren" aus.
Wählen Sie Administratoreinwilligung erteilen aus. Jedes Mal, wenn Sie eine Berechtigung hinzufügen, müssen Sie Administratoreinwilligung erteilen auswählen, damit sie wirksam wird.
Um der Anwendung ein Geheimnis hinzuzufügen, wählen Sie Zertifikate & Geheimnisse aus, fügen Sie dem Geheimnis eine Beschreibung hinzu, und wählen Sie dann Hinzufügen aus.
Tipp
Nachdem Sie Hinzufügen ausgewählt haben, wählen Sie den generierten Geheimniswert kopieren aus. Sie können den Geheimniswert nach dem Verlassen nicht mehr abrufen.
Notieren Sie ihre Anwendungs-ID und Ihre Mandanten-ID an einem sicheren Ort. Sie werden auf der Anwendungsseite unter Übersicht aufgeführt.
Nur für Microsoft Defender XDR Partner: Befolgen Sie diese Anweisungen für den Partnerzugriff über die Microsoft Defender XDR-APIs, und legen Sie Ihre App auf mehrinstanzenfähig fest, damit sie in allen Mandanten verfügbar sein kann, sobald Sie die Administratoreinwilligung erhalten haben. Partnerzugriff ist für Drittanbieter-Apps erforderlich , z. B. wenn Sie eine App erstellen, die in Mandanten mehrerer Kunden ausgeführt werden soll. Dies ist nicht erforderlich , wenn Sie einen Dienst erstellen, den Sie nur in Ihrem Mandanten ausführen möchten, z. B. eine Anwendung für Ihre eigene Nutzung, die nur mit Ihren eigenen Daten interagiert. So legen Sie ihre App als mehrinstanzenfähig fest:
Wechseln Sie zu Authentifizierung, und fügen Sie als Umleitungs-URI hinzuhttps://portal.azure.com.
Wählen Sie unten auf der Seite unter Unterstützte Kontotypen die Anwendungsgenehmigung Konten in einem beliebigen Organisationsverzeichnis für Ihre mehrinstanzenfähige App aus.
Da Ihre Anwendung im Namen Ihrer Benutzer mit Microsoft Defender XDR interagiert, muss sie für jeden Mandanten genehmigt werden, für den Sie sie verwenden möchten.
Der Active Directory-Administrator für jeden Mandanten muss den Zustimmungslink auswählen und Ihre App genehmigen.
Der Zustimmungslink weist die folgende Struktur auf:
https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=<00000000-0000-0000-0000-000000000000>&response_type=code&sso_reload=true
Die Ziffern
00000000-0000-0000-0000-000000000000
sollten durch Ihre Anwendungs-ID ersetzt werden.
Fertig. Sie haben eine Anwendung erfolgreich registriert! Weitere Informationen zum Abrufen und Überprüfen von Token finden Sie unten in den Beispielen.
Abrufen eines Zugriffstokens
Weitere Informationen zu Microsoft Entra Token finden Sie im tutorial Microsoft Entra.
Wichtig
Obwohl sie in den Beispielen in diesem Abschnitt dazu ermutigen, zu Testzwecken geheime Werte einzufügen, sollten Sie geheimnisse niemals in eine Anwendung hartcodieren , die in der Produktion ausgeführt wird. Ein Drittanbieter könnte Ihr Geheimnis für den Zugriff auf Ressourcen verwenden. Mithilfe von Azure Key Vault können Sie dazu beitragen, die Geheimnisse Ihrer App zu schützen. Ein praktisches Beispiel für den Schutz Ihrer App finden Sie unter Verwalten von Geheimnissen in Ihren Server-Apps mit Azure Key Vault.
Abrufen eines Zugriffstokens mithilfe von 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
Abrufen eines Zugriffstokens mit C#
Hinweis
Der folgende Code wurde mit Nuget Microsoft.Identity.Client 3.19.8 getestet.
Wichtig
Das NuGet-Paket Microsoft.IdentityModel.Clients.ActiveDirectory und Azure AD-Authentifizierung Library (ADAL) sind veraltet. Seit dem 30. Juni 2020 wurden keine neuen Features hinzugefügt. Wir empfehlen Ihnen dringend, ein Upgrade durchzuführen. Weitere Informationen finden Sie im Migrationsleitfaden .
Erstellen Sie eine neue Konsolenanwendung.
Installieren Sie NuGet Microsoft.Identity.Client.
Fügen Sie die folgende Zeile hinzu:
using Microsoft.Identity.Client;
Kopieren Sie den folgenden Code, und fügen Sie ihn in Ihre App ein (vergessen Sie nicht, die drei Variablen zu aktualisieren:
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;
Abrufen eines Zugriffstokens mithilfe von 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"]
Abrufen eines Zugriffstokens mithilfe von curl
Hinweis
Curl ist auf Windows 10 Version 1803 und höher vorinstalliert. Für andere Versionen von Windows laden Sie das Tool direkt von der offiziellen curl-Website herunter, und installieren Sie es.
Öffnen Sie eine Eingabeaufforderung, und legen Sie CLIENT_ID auf Ihre Azure-Anwendungs-ID fest.
Legen Sie CLIENT_SECRET auf Ihren geheimen Azure-Anwendungsschlüssel fest.
Legen Sie TENANT_ID auf die Azure-Mandanten-ID des Kunden fest, der Ihre App für den Zugriff auf Microsoft Defender XDR verwenden möchte.
Führen Sie den folgenden Befehl aus:
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
Eine erfolgreiche Antwort sieht wie folgt aus:
{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn <truncated> aWReH7P0s0tjTBX8wGWqJUdDA"}
Überprüfen des Tokens
Kopieren Sie das Token, und fügen Sie es in die Website JWT des JSON-Webtokens ein, um es zu decodieren.
Stellen Sie sicher, dass der Rollenanspruch innerhalb des decodierten Tokens die gewünschten Berechtigungen enthält.
In der folgenden Abbildung sehen Sie ein decodiertes Token, das von einer App mit
Incidents.Read.All
den Berechtigungen ,Incidents.ReadWrite.All
undAdvancedHunting.Read.All
abgerufen wurde:
Verwenden des Tokens für den Zugriff auf die Microsoft Defender XDR-API
Wählen Sie die API aus, die Sie verwenden möchten (Incidents oder erweiterte Suche). Weitere Informationen finden Sie unter Unterstützte Microsoft Defender XDR-APIs.
Legen Sie in der HTTP-Anforderung, die Sie senden möchten, den Autorisierungsheader auf
"Bearer" <token>
fest, wobei bearer das Autorisierungsschema und token Ihr überprüftes Token ist.Das Token läuft innerhalb einer Stunde ab. Sie können während dieser Zeit mehr als eine Anforderung mit demselben Token senden.
Das folgende Beispiel zeigt, wie Sie eine Anforderung senden, um eine Liste von Vorfällen mithilfe von C# abzurufen.
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();
Verwandte Artikel
- Übersicht über Microsoft Defender XDR-APIs
- Zugreifen auf die Microsoft Defender XDR-APIs
- Erstellen einer "Hello World"-Anwendung
- Erstellen einer App für den Zugriff auf Microsoft Defender XDR APIs im Namen eines Benutzers
- Erstellen einer App mit mehrinstanzenfähigem Partnerzugriff auf Microsoft Defender XDR-APIs
- Informationen zu API-Grenzwerten und -Lizenzierung
- Grundlegendes zu Fehlercodes
- Verwalten von Geheimnissen in Ihren Server-Apps mit Azure Key Vault
- OAuth 2.0-Autorisierung für Benutzeranmeldung und API-Zugriff
Tipp
Möchten Sie mehr erfahren? Wenden Sie sich an die Microsoft Security-Community in unserer Tech Community: Microsoft Defender XDR Tech Community.