Del via


Opret en app for at få adgang til Microsoft Defender for Endpoint uden en bruger

Gælder for:

Vigtigt!

Avancerede jagtegenskaber er ikke inkluderet i Defender til virksomheder.

Vil du opleve Microsoft Defender for Endpoint? Tilmeld dig en gratis prøveversion.

Bemærk!

Hvis du er us government-kunde, skal du bruge de URI'er, der er angivet i Microsoft Defender for Endpoint for us Government-kunder.

Tip

For at opnå en bedre ydeevne kan du bruge serveren tættere på din geografiske placering:

  • 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

På denne side beskrives det, hvordan du opretter et program for at få programmatisk adgang til Defender for Endpoint uden en bruger. Hvis du har brug for programmatisk adgang til Defender for Endpoint på vegne af en bruger, skal du se Få adgang med brugerkontekst. Hvis du ikke er sikker på, hvilken adgang du har brug for, skal du se Kom i gang.

Microsoft Defender for Endpoint fremviser mange af dataene og handlingerne via et sæt programmatiske API'er. Disse API'er hjælper dig med at automatisere arbejdsflow og skabe innovation baseret på funktionerne i Defender for Endpoint. API-adgangen kræver OAuth2.0-godkendelse. Du kan få flere oplysninger under OAuth 2.0 Authorization Code Flow.

Generelt skal du gøre følgende for at bruge API'erne:

  • Opret et Microsoft Entra program.
  • Hent et adgangstoken ved hjælp af dette program.
  • Brug tokenet til at få adgang til Defender for Endpoint API.

I denne artikel forklares det, hvordan du opretter et Microsoft Entra program, får et adgangstoken til Microsoft Defender for Endpoint og validerer tokenet.

Vigtigt!

Microsoft anbefaler, at du bruger roller med færrest tilladelser. Dette hjælper med at forbedre sikkerheden for din organisation. Global administrator er en yderst privilegeret rolle, der bør være begrænset til nødsituationer, når du ikke kan bruge en eksisterende rolle.

Opret en app

  1. Log på portalenAzure.

  2. Gå til Microsoft Entra ID>Appregistreringer>Ny registrering.

    Ruden Programregistrering

  3. Vælg et navn til din ansøgning i registreringsformularen, og vælg derefter Registrer.

  4. Hvis du vil give din app adgang til Defender for Endpoint og tildele den tilladelsen "Læs alle beskeder", skal du vælge API-tilladelser>TilføjtilladelseS-API'er>, som min organisation bruger>, skrive WindowsDefenderATP og derefter vælge WindowsDefenderATP.

    Bemærk!

    WindowsDefenderATP vises ikke på den oprindelige liste. Begynd at skrive navnet i tekstfeltet for at se det blive vist.

    Ruden API-tilladelser

    Vælg Programtilladelser>Alert.Read.All, og vælg derefter Tilføj tilladelser.

    Ruden med oplysninger om programtilladelser

  5. Vælg de relevante tilladelser. Read All Alerts er kun et eksempel. Her er nogle eksempler:

    • Hvis du vil køre avancerede forespørgsler, skal du vælge Run advanced queries tilladelsen.
    • Hvis du vil isolere en enhed, skal du vælge Isolate machine tilladelsen.
    • Hvis du vil finde ud af, hvilken tilladelse du har brug for, skal du se afsnittet Tilladelser i den API, du er interesseret i at kalde.
  6. Vælg Giv samtykke.

    Bemærk!

    Hver gang du tilføjer en tilladelse, skal du vælge Giv samtykke , for at den nye tilladelse træder i kraft.

    Siden Tildel tilladelser

  7. Hvis du vil føje en hemmelighed til programmet, skal du vælge Certifikater & hemmeligheder, føje en beskrivelse til hemmeligheden og derefter vælge Tilføj.

    Bemærk!

    Når du har valgt Tilføj, skal du vælge kopiér den genererede værdi for hemmelighed. Du kan ikke hente denne værdi, når du er gået.

    Indstillingen Opret program

  8. Skriv dit program-id og dit lejer-id ned. Gå til Oversigt på din programside, og kopiér følgende.

    De oprettede app- og lejer-id'er

  9. Kun for Microsoft Defender for Endpoint partnere. Angiv, at din app skal have flere lejere (tilgængelig i alle lejere efter samtykke). Dette er påkrævet for tredjepartsapps (hvis du f.eks. opretter en app, der er beregnet til at køre i flere kunders lejer). Dette er ikke påkrævet , hvis du opretter en tjeneste, som du kun vil køre i din lejer (hvis du f.eks. opretter et program til dit eget forbrug, der kun interagerer med dine egne data). Hvis du vil angive, at din app skal have flere lejere, skal du følge disse trin:

    1. Gå til Godkendelse, og tilføj https://portal.azure.com som omdirigerings-URI'en.

    2. Nederst på siden under Understøttede kontotyper skal du vælge Konti i alle organisationsmappeprogrammers samtykke til din app med flere lejere.

      Du skal have dit program godkendt i hver lejer, hvor du vil bruge det. Det skyldes, at dit program interagerer med Defender for Endpoint på vegne af din kunde.

      Du (eller din kunde, hvis du skriver en tredjepartsapp) skal vælge samtykkelinket og godkende din app. Samtykket skal udføres med en bruger, der har administrative rettigheder i Active Directory.

      Samtykkelinket er udformet på følgende måde:

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

      Hvor 00000000-0000-0000-0000-000000000000 erstattes med dit program-id.

Gjort! Du har registreret et program! Se eksempler nedenfor for at få oplysninger om tokenerhvervelse og -validering.

Hent et adgangstoken

Du kan få flere oplysninger om Microsoft Entra-tokens i selvstudiet om Microsoft Entra.

Brug PowerShell

# 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

Brug C#:

Følgende kode blev testet med NuGet Microsoft.Identity.Client 3.19.8.

Vigtigt!

NuGet-pakken Microsoft.IdentityModel.Clients.ActiveDirectory og ADAL (Azure AD Authentication Library) frarådes. Der er ikke tilføjet nye funktioner siden den 30. juni 2020. Vi opfordrer dig på det kraftigste til at opgradere, se migreringsvejledningen for at få flere oplysninger.

  1. Opret et nyt konsolprogram.

  2. Installér NuGet Microsoft.Identity.Client.

  3. Tilføj følgende:

    using Microsoft.Identity.Client;
    
  4. Kopiér og indsæt følgende kode i din app (glem ikke at opdatere de tre variabler: 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;
    

Brug Python

Se Hent token ved hjælp af Python.

Brug krøllede

Bemærk!

I følgende procedure antages det, at Curl til Windows allerede er installeret på computeren.

  1. Åbn en kommandoprompt, og angiv CLIENT_ID til dit Azure-program-id.

  2. Angiv CLIENT_SECRET som din Azure-programhemmelighed.

  3. Indstillet TENANT_ID til Azure-lejer-id'et for den kunde, der vil bruge din app til at få adgang til Defender for Endpoint.

  4. Kør følgende kommando:

    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
    

    Du får et svar, der ligner følgende kodestykke:

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

Valider tokenet

Sørg for, at du har det korrekte token:

  1. Kopiér og indsæt det token, du fik i det forrige trin, i JWT for at afkode det.

  2. Valider, at du får et rollekrav med de ønskede tilladelser.

    På følgende billede kan du se et afkodet token, der er hentet fra en app med tilladelser til alle Microsoft Defender for Endpoint roller:

    Detaljedelen for tokenet

Brug tokenet til at få adgang til Microsoft Defender for Endpoint API

  1. Vælg den API, du vil bruge. Du kan finde flere oplysninger under Understøttet Defender for Endpoint-API'er.

  2. Angiv godkendelsesheaderen i den anmodning, http du sender til Bearer {token} (ihændehaver er godkendelsesskemaet).

  3. Tokenets udløbstid er én time. Du kan sende mere end én anmodning med det samme token.

Følgende er et eksempel på afsendelse af en anmodning om at få en liste over beskeder ved hjælp af 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

Se også

Tip

Vil du vide mere? Engage med Microsoft Security-community'et i vores tech-community: Microsoft Defender for Endpoint Tech Community.