Sdílet prostřednictvím


Vytvoření aplikace pro přístup k Microsoft Defenderu for Endpoint bez uživatele

Platí pro:

Důležité

Rozšířené možnosti proaktivního vyhledávání nejsou součástí Defenderu pro firmy.

Chcete vyzkoušet Defender pro Endpoint? Zaregistrujte se a získejte bezplatnou zkušební verzi,

Poznámka

Pokud jste zákazníkem státní správy USA, použijte identifikátory URI uvedené v programu Microsoft Defender for Endpoint pro zákazníky státní správy USA.

Tip

Pro lepší výkon můžete použít server blíže k vašemu geografickému umístění:

  • us.api.security.microsoft.com
  • eu.api.security.microsoft.com
  • uk.api.security.microsoft.com
  • au.api.security.microsoft.com
  • swa.api.security.microsoft.com
  • ina.api.security.microsoft.com

Tato stránka popisuje, jak vytvořit aplikaci pro získání programového přístupu k Defenderu for Endpoint bez uživatele. Pokud potřebujete programový přístup k Defenderu for Endpoint jménem uživatele, přečtěte si téma Získání přístupu pomocí kontextu uživatele. Pokud si nejste jistí, jaký přístup potřebujete, přečtěte si téma Začínáme.

Microsoft Defender for Endpoint zveřejňuje většinu svých dat a akcí prostřednictvím sady programových rozhraní API. Tato rozhraní API vám pomohou automatizovat pracovní toky a inovovat na základě funkcí Defenderu for Endpoint. Přístup k rozhraní API vyžaduje ověřování OAuth 2.0. Další informace najdete v tématu Tok autorizačního kódu OAuth 2.0.

Obecně platí, že abyste mohli rozhraní API používat, budete muset provést následující kroky:

  • Vytvořte aplikaci Microsoft Entra.
  • Získání přístupového tokenu pomocí této aplikace
  • Token použijte pro přístup k rozhraní DEFENDER for Endpoint API.

Tento článek vysvětluje, jak vytvořit aplikaci Microsoft Entra, získat přístupový token pro Microsoft Defender for Endpoint a ověřit token.

Důležité

Microsoft doporučuje používat role s co nejmenším počtem oprávnění. To pomáhá zlepšit zabezpečení vaší organizace. Globální správce je vysoce privilegovaná role, která by měla být omezená na nouzové scénáře, když nemůžete použít existující roli.

Vytvoření aplikace

  1. Přihlaste se k webu Azure Portal pomocí uživatele, který má roli globálního správce.

  2. Přejděte na Microsoft Entra ID>Registrace> aplikacíNová registrace.

    Podokno registrace aplikace

  3. V registračním formuláři zvolte název aplikace a pak vyberte Zaregistrovat.

  4. Pokud chcete aplikaci povolit přístup k Defenderu for Endpoint a přiřadit mu oprávnění Číst všechna upozornění, na stránce aplikace vyberte Oprávnění> rozhraní API Přidat rozhraní APIoprávnění>, kterápoužívá> moje organizace, zadejte WindowsDefenderATP a pak vyberte WindowsDefenderATP.

    Poznámka

    WindowsDefenderATP se nezobrazuje v původním seznamu. Začněte psát jeho název do textového pole, aby se zobrazilo.

    Podokno oprávnění rozhraní API

    Vyberte Oprávnění> aplikaceAlert.Read.All a pak vyberte Přidat oprávnění.

    Podokno s informacemi o oprávněních aplikace

  5. Vyberte příslušná oprávnění. Read All Alerts je jenom příklad. Tady je pár příkladů:

    • Pokud chcete spouštět rozšířené dotazy, vyberte Run advanced queries oprávnění.
    • Pokud chcete izolovat zařízení, vyberte Isolate machine oprávnění.
    • Pokud chcete zjistit, jaké oprávnění potřebujete, podívejte se do části Oprávnění v rozhraní API, které chcete volat.
  6. Vyberte Udělit souhlas.

    Poznámka

    Pokaždé, když přidáte oprávnění, musíte vybrat Udělit souhlas , aby se nové oprávnění projevilo.

    Stránka udělení oprávnění

  7. Pokud chcete do aplikace přidat tajný kód, vyberte Certifikáty & tajných kódů, přidejte popis tajného kódu a pak vyberte Přidat.

    Poznámka

    Po výběru možnosti Přidat vyberte zkopírování vygenerované hodnoty tajného kódu. Po odchodu nebudete moct tuto hodnotu načíst.

    Možnost vytvoření aplikace

  8. Poznamenejte si ID aplikace a ID tenanta. Na stránce aplikace přejděte na Přehled a zkopírujte následující.

    ID vytvořené aplikace a tenanta

  9. Pouze pro partnery Microsoft Defenderu for Endpoint. Nastavte aplikaci na více tenantů (k dispozici ve všech tenantech po vyjádření souhlasu). To se vyžaduje u aplikací třetích stran (například pokud vytvoříte aplikaci, která má běžet v tenantovi více zákazníků). To není nutné , pokud vytvoříte službu, kterou chcete spustit jenom ve svém tenantovi (například pokud vytvoříte aplikaci pro vlastní použití, která bude pracovat jenom s vašimi daty). Pokud chcete nastavit aplikaci pro více tenantů, postupujte takto:

    1. Přejděte na Ověřování a přidejte https://portal.azure.com jako identifikátor URI přesměrování.

    2. V dolní části stránky v části Podporované typy účtů vyberte Účty v libovolném organizačním adresáři souhlas aplikace pro vaši aplikaci s více tenanty.

      Potřebujete, aby vaše aplikace byla schválená v každém tenantovi, ve kterém ji chcete používat. Je to proto, že vaše aplikace komunikuje s Defenderem for Endpoint jménem zákazníka.

      Vy (nebo váš zákazník, pokud píšete aplikaci třetí strany) musíte vybrat odkaz pro vyjádření souhlasu a aplikaci schválit. Souhlas by měl být udělen s uživatelem, který má oprávnění správce ve službě Active Directory.

      Odkaz pro vyjádření souhlasu je vytvořený takto:

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

      Kde 00000000-0000-0000-0000-000000000000 se nahradí VAŠÍM ID aplikace.

Hotovo! Úspěšně jste zaregistrovali aplikaci! V následujících příkladech najdete informace o získání a ověření tokenu.

Získání přístupového tokenu

Další informace o tokenech Microsoft Entra najdete v kurzu Microsoft Entra.

Použití PowerShellu

# This script acquires the App Context Token and stores it in the variable $token for later use in the script.
# Paste your Tenant ID, App ID, and App Secret (App key) into the indicated 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

Použijte C#:

Následující kód byl testován pomocí NuGet Microsoft.Identity.Client 3.19.8.

Důležité

Balíček NuGet Microsoft.IdentityModel.Clients.ActiveDirectory a knihovna ADAL (Azure AD Authentication Library) jsou zastaralé. Od 30. června 2020 nebyly přidány žádné nové funkce. Důrazně doporučujeme provést upgrade. Další podrobnosti najdete v průvodci migrací .

  1. Vytvořte novou konzolovou aplikaci.

  2. Nainstalujte NuGet Microsoft.Identity.Client.

  3. Přidejte následující:

    using Microsoft.Identity.Client;
    
  4. Zkopírujte a vložte do aplikace následující kód (nezapomeňte aktualizovat tři proměnné: tenantId, appId, appSecret):

    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;
    

Použití Pythonu

Viz Získání tokenu pomocí Pythonu.

Použití funkce Curl

Poznámka

Následující postup předpokládá, že curl pro Windows je již v počítači nainstalovaný.

  1. Otevřete příkazový řádek a nastavte CLIENT_ID na ID aplikace Azure.

  2. Nastavte CLIENT_SECRET na tajný kód aplikace Azure.

  3. Nastavte TENANT_ID na ID tenanta Azure zákazníka, který chce používat vaši aplikaci pro přístup k Defenderu for Endpoint.

  4. Spusťte následující příkaz:

    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://securitycenter.onmicrosoft.com/windowsatpservice/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID%/oauth2/v2.0/token" -k
    

    Získáte odpověď, která se podobá následujícímu fragmentu kódu:

    {"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn <truncated> aWReH7P0s0tjTBX8wGWqJUdDA"}
    

Ověření tokenu

Ujistěte se, že máte správný token:

  1. Zkopírujte token, který jste získali v předchozím kroku, a vložte ho do JWT , abyste ho dekódoval.

  2. Ověřte, že jste získali deklaraci identity rolí s požadovanými oprávněními.

    Na následujícím obrázku vidíte dekódovaný token získaný z aplikace s oprávněními ke všem rolím Microsoft Defenderu for Endpoint:

    Část s podrobnostmi o tokenu

Použití tokenu pro přístup k rozhraní API Microsoft Defenderu for Endpoint

  1. Zvolte rozhraní API, které chcete použít. Další informace najdete v tématu Podporovaná rozhraní API defenderu for Endpoint.

  2. Nastavte autorizační hlavičku v požadavku, http který odešlete do Bearer {token} (Schéma autorizace je Bearer).

  3. Doba vypršení platnosti tokenu je jedna hodina. Se stejným tokenem můžete odeslat více než jednu žádost.

Následuje příklad odeslání žádosti o získání seznamu upozornění pomocí jazyka C#:

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();

// Do something useful with the response

Viz také

Tip

Chcete se dozvědět více? Spojte se s komunitou zabezpečení Microsoftu v naší technické komunitě: Technická komunita Microsoft Defenderu for Endpoint.