Freigeben über


Erstellen einer App für den Zugriff auf Microsoft Defender for Endpoint ohne Benutzer

Wenn Sie APIs verwenden, benötigen Sie möglicherweise Zugriff auf Microsoft Defender for Endpoint ohne Benutzer. Sie können beispielsweise einen Dienst erstellen, der im Hintergrund ausgeführt wird und im Auftrag Ihrer organization mit Defender für Endpunkt interagiert. In diesem Fall müssen Sie eine Anwendung erstellen, die ohne Benutzer auf Defender für Endpunkt zugreifen kann.

Für den API-Zugriff ist die OAuth2.0-Authentifizierung erforderlich.

Voraussetzungen

Die rolle "Microsoft Entra" zum Erstellen einer App in Azure. Beispiel: Anwendungsadministrator.

Schritt 1: Erstellen einer App in Azure

  1. Melden Sie sich beim Azure-Portal an.

  2. Suchen Sie nach App-Registrierungen, und navigieren Sie zu App-Registrierungen.

  3. Wählen Sie Neue Registrierung aus.

  4. Wählen Sie einen Namen für Ihre Anwendung und dann Registrieren aus.

  5. Navigieren Sie auf der Anwendungsseite zu Verwalten von > API-Berechtigungen > Berechtigungs-APIs > hinzufügen, die von meinem organization verwendet werden.

  6. Suchen Sie auf der Seite API-Berechtigungen anfordern nach WindowsDefenderATP , und wählen Sie es aus.

  7. Wählen Sie den erforderlichen Berechtigungstyp und dann Berechtigungen hinzufügen aus.

    • Delegierte Berechtigungen : Melden Sie sich mit Ihrer App an, als wären Sie ein Benutzer.

    • Anwendungsberechtigungen : Greifen Sie auf die API als Dienst zu.

  8. Wählen Sie die entsprechenden Berechtigungen für Ihre App aus. Um zu ermitteln, welche Berechtigung Sie benötigen, sehen Sie sich den Abschnitt Berechtigungen in der API an, die Sie aufrufen. Im Folgenden zwei Beispiele:

  9. Wählen Sie Berechtigung hinzufügen aus.

Schritt 2: Hinzufügen eines Geheimnisses zu Ihrer App

In diesem Abschnitt wird die Authentifizierung Ihrer App mithilfe eines App-Geheimnisses beschrieben. Informationen zum Authentifizieren Ihrer App mithilfe eines Zertifikats finden Sie unter Erstellen eines selbstsignierten öffentlichen Zertifikats zum Authentifizieren Ihrer Anwendung.

  1. Wählen Sie auf der Anwendungsseite Zertifikate & Geheimnisse>Neuer geheimer Clientschlüssel aus.

  2. Fügen Sie im Bereich Geheimen Clientschlüssel hinzufügen eine Beschreibung und ein Ablaufdatum hinzu.

  3. Klicken Sie auf Hinzufügen.

  4. Kopieren Sie den Wert des von Ihnen erstellten Geheimnisses. Sie können diesen Wert nicht mehr abrufen, nachdem Sie die Seite verlassen haben.

  5. Kopieren Sie auf der Übersichtsseite Ihrer App die Anwendungs-ID (Client-ID) und die Verzeichnis-ID (Mandant). Sie benötigen diese ID, um Ihre App zu authentifizieren.

  6. Notieren Sie sich Ihre Anwendungs-ID und Ihre Mandanten-ID. Navigieren Sie auf der Anwendungsseite zu Übersicht , und kopieren Sie Folgendes.

Mehrinstanzenfähige Apps

Microsoft Defender for Endpoint Partner müssen ihre Apps als mehrinstanzenfähig festlegen. Legen Sie Ihre App als mehrinstanzenfähige App fest, wenn Sie eine App erstellen möchten, die in Mandanten mehrerer Kunden ausgeführt wird.

  1. Navigieren Sie auf der Seite Ihrer Azure-App zu Authentifizierung verwalten>.

  2. Fügen Sie eine Plattform hinzu.

  3. Wählen Sie im Bereich Plattformen konfigurieren die Option Web aus.

  4. Fügen Sie zu Umleitungs-URIs hinzuhttps://portal.azure.com, und wählen Sie Konfigurieren aus.

  5. Wählen Sie in den Optionen Unterstützte Kontotypendie Option Konten in einem beliebigen Organisationsverzeichnis und dann Speichern aus.

Nachdem Sie Ihre App ausgeführt haben, muss sie in jedem Mandanten genehmigt werden, in dem Sie sie verwenden möchten. Dies liegt daran, dass Ihre Anwendung im Namen Ihres Kunden mit Defender für Endpunkt interagiert. Sie oder Ihr Kunde müssen den Zustimmungslink auswählen und Ihre App genehmigen. Erteilen Sie die Zustimmung zu einem Benutzer, der über Administratorrechte verfügt.

Hier erfahren Sie, wie Sie den Zustimmungslink erstellen. Ersetzen Sie durch 00000000-0000-0000-0000-000000000000 Ihre App-ID.

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

Abrufen eines Zugriffstokens

In diesem Abschnitt werden einige Methoden zum Abrufen des Zugriffstokens Ihrer App aufgeführt.

# This script acquires the App Context Token and stores it in the variable $token for later use.
# Paste your Tenant ID, App ID, and App Secret (App key) into the quotes below.

$tenantId = '' ### Paste your tenant ID here
$appId = '' ### Paste your Application ID here
$appSecret = '' ### Paste your Application key here

$sourceAppIdUri = 'https://api.securitycenter.microsoft.com/.default'
$oAuthUri = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token"
$authBody = [Ordered] @{
    scope = "$sourceAppIdUri"
    client_id = "$appId"
    client_secret = "$appSecret"
    grant_type = 'client_credentials'
}
$authResponse = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $authBody -ErrorAction Stop
$token = $authResponse.access_token
$token

Überprüfen des Tokens

Führen Sie die Schritte in diesem Abschnitt aus, um sicherzustellen, dass Sie das richtige Token erhalten haben. Sie können mehrere Anforderungen mit demselben Token senden. Das Token läuft in einer Stunde ab.

  1. Kopieren Sie Ihr Token , und fügen Sie es in JWT ein, um es zu decodieren.

  2. Überprüfen Sie, ob Sie einen Rollenanspruch mit den gewünschten Berechtigungen erhalten.

Verwenden des Tokens für den Zugriff auf Microsoft Defender for Endpoint-API

  1. Wählen Sie die API aus, die Sie verwenden möchten.

  2. Legen Sie den Autorisierungsheader in der Anforderung fest, die http Sie an Bearer {token}senden. Bearer ist das Autorisierungsschema.

Beispiel

In diesem Beispiel wird eine Anforderung zum Abrufen einer Liste von Warnungen mithilfe von C# gesendet.

var httpClient = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.securitycenter.microsoft.com/api/alerts");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response = httpClient.SendAsync(request).GetAwaiter().GetResult();