Uzyskiwanie dostępu do aplikacji Microsoft Defender dla Chmury za pomocą kontekstu aplikacji

Na tej stronie opisano sposób tworzenia aplikacji w celu uzyskania dostępu programowego do aplikacji Defender dla Chmury bez użytkownika. Jeśli potrzebujesz dostępu programowego do aplikacji Defender dla Chmury w imieniu użytkownika, zobacz Uzyskiwanie dostępu z kontekstem użytkownika. Jeśli nie masz pewności, który dostęp jest potrzebny, zobacz stronę Zarządzanie tokenami interfejsu API.

Microsoft Defender dla Chmury Apps udostępnia większość swoich danych i akcji za pomocą zestawu programowych interfejsów API. Te interfejsy API ułatwiają automatyzowanie przepływów pracy i wprowadzanie innowacji na podstawie możliwości Defender dla Chmury Apps. Dostęp do interfejsu API wymaga uwierzytelniania OAuth2.0. Aby uzyskać więcej informacji, zobacz Przepływ kodu autoryzacji OAuth 2.0.

Ogólnie rzecz biorąc, należy wykonać następujące kroki, aby użyć interfejsów API:

  • Utwórz aplikację Firmy Microsoft Entra.
  • Uzyskaj token dostępu przy użyciu tej aplikacji.
  • Użyj tokenu, aby uzyskać dostęp do interfejsu API usługi Defender dla Chmury Apps.

W tym artykule wyjaśniono, jak utworzyć aplikację firmy Microsoft Entra, uzyskać token dostępu do usługi Microsoft Defender dla Chmury Apps i zweryfikować token.

Utwórz aplikację

  1. Zaloguj się do platformy Azure przy użyciu użytkownika z rolą Global Administracja istrator.

  2. Przejdź do pozycji Microsoft Entra ID> Rejestracje aplikacji> Nowa rejestracja.

    Image of Microsoft Azure and navigation to application registration.

  3. W formularzu rejestracji wybierz nazwę aplikacji, a następnie wybierz pozycję Zarejestruj.

  4. Aby umożliwić aplikacji dostęp do aplikacji Defender dla Chmury i przypisać mu uprawnienie "Odczytaj wszystkie alerty", na stronie aplikacji wybierz pozycję Uprawnienia>interfejsu API Dodaj>interfejsy API uprawnień używane przez moją organizację>, wpisz Microsoft Cloud App Security, a następnie wybierz pozycję Microsoft Cloud App Security.

    Uwaga

    Usługa Microsoft Cloud App Security nie jest wyświetlana na oryginalnej liście. Zacznij zapisywać swoją nazwę w polu tekstowym, aby zobaczyć, jak się pojawi. Pamiętaj, aby wpisać tę nazwę, mimo że produkt ma teraz nazwę Defender dla Chmury Apps.

    add permission.

    • Wybierz pozycję Badanie uprawnień>aplikacji.Odczyt, a następnie wybierz pozycję Dodaj uprawnienia.

      app permission.

      Musisz wybrać odpowiednie uprawnienia. Investigation.Read jest tylko przykładem. Aby uzyskać informacje o innych zakresach uprawnień, zobacz Obsługiwane zakresy uprawnień

      • Aby określić, które uprawnienia potrzebujesz, zapoznaj się z sekcją Uprawnienia w interfejsie API, który cię interesuje.
  5. Wybierz Udzielanie zgody administratora.

    Uwaga

    Za każdym razem, gdy dodajesz uprawnienie, musisz wybrać pozycję Udziel zgody administratora, aby nowe uprawnienia zaczęły obowiązywać.

    Grant permissions.

  6. Aby dodać wpis tajny do aplikacji, wybierz pozycję Certyfikaty i wpisy tajne, wybierz pozycję Nowy klucz tajny klienta, dodaj opis do wpisu tajnego, a następnie wybierz pozycję Dodaj.

    Uwaga

    Po wybraniu pozycji Dodaj wybierz pozycję Skopiuj wygenerowaną wartość wpisu tajnego. Po opuszczeniu tej wartości nie będzie można pobrać tej wartości.

    Image of create app key.

  7. Zapisz identyfikator aplikacji i identyfikator dzierżawy. Na stronie aplikacji przejdź do pozycji Przegląd i skopiuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy).

    Image of created app id.

  8. Tylko w przypadku partnerów aplikacji Microsoft Defender dla Chmury. Ustaw aplikację jako wielodostępną (dostępną we wszystkich dzierżawach po wyrażeniu zgody). Jest to wymagane w przypadku aplikacji innych firm (na przykład w przypadku tworzenia aplikacji przeznaczonej do uruchamiania w dzierżawie wielu klientów). Nie jest to wymagane , jeśli tworzysz usługę, którą chcesz uruchomić tylko w dzierżawie (na przykład jeśli tworzysz aplikację dla własnego użycia, która będzie współdziałać tylko z własnymi danymi). Aby ustawić aplikację jako wielodostępną:

    • Przejdź do pozycji Uwierzytelnianie i dodaj https://portal.azure.com jako identyfikator URI przekierowania.

    • W dolnej części strony w obszarze Obsługiwane typy kont wybierz pozycję Konta w dowolnej aplikacji katalogu organizacyjnego dla aplikacji z wieloma dzierżawami.

    Aplikacja musi zostać zatwierdzona w każdej dzierżawie, w której zamierzasz jej używać. Dzieje się tak, ponieważ aplikacja współdziała z aplikacją Defender dla Chmury w imieniu klienta.

    Ty (lub twój klient, jeśli piszesz aplikację innej firmy), musisz wybrać link zgody i zatwierdzić aplikację. Zgoda powinna być wykonywana z użytkownikiem, który ma uprawnienia administracyjne w usłudze Active Directory.

    Link zgody jest tworzony w następujący sposób:

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

    Gdzie 000000000-0000-0000-0000-0000000000000 jest zastępowany identyfikatorem aplikacji.

Gotowe! Pomyślnie zarejestrowano aplikację! Zobacz przykłady poniżej, aby uzyskać i zweryfikować tokeny.

Obsługiwane zakresy uprawnień

Nazwa uprawnień opis Obsługiwane akcje
Investigation.read Wykonaj wszystkie obsługiwane akcje dotyczące działań i alertów z wyjątkiem zamykania alertów.
Wyświetlanie zakresów adresów IP, ale nie dodawania, aktualizowania ani usuwania.

Wykonaj wszystkie akcje jednostek.
Lista działań, pobieranie, opinia
Lista alertów, pobieranie, oznaczanie jako przeczytane/nieprzeczytane
Lista jednostek, pobieranie, pobieranie drzewa
Lista podsieci
Investigation.manage Wykonaj wszystkie akcje investigation.read oprócz zarządzania alertami i zakresami adresów IP. Lista działań, pobieranie, opinia
Lista alertów, pobieranie, oznaczanie jako przeczytane/nieprzeczytane, zamknij
Lista jednostek, pobieranie, pobieranie drzewa
Lista podsieci, tworzenie/aktualizowanie/usuwanie
Discovery.read Wykonaj wszystkie obsługiwane akcje dotyczące działań i alertów z wyjątkiem zamykania alertów.
Wyświetlanie listy raportów i kategorii odnajdywania.
Lista alertów, pobieranie, oznaczanie jako przeczytane/nieprzeczytane
Raporty listy odnajdywania, lista kategorii raportów
Discovery.manage Uprawnienia Discovery.read
Zamykanie alertów, przekazywanie plików odnajdywania i generowanie skryptów blokowych
Lista alertów, pobieranie, oznaczanie jako przeczytane/nieprzeczytane, zamknij
Raporty listy odnajdywania, lista kategorii raportów
Przekazywanie pliku odnajdywania, generowanie skryptu bloku
Ustawienia.read Wyświetlanie listy zakresów adresów IP. Lista podsieci
Ustawienia.manage Wyświetlanie listy zakresów adresów IP i zarządzanie nimi. Lista podsieci, tworzenie/aktualizowanie/usuwanie

Pobranie tokenu dostępu

Aby uzyskać więcej informacji na temat tokenów firmy Microsoft Entra, zobacz samouczek firmy Microsoft Entra.

Użyj 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

$resourceAppIdUri = '05a65629-4c1b-48c1-a78b-804c4abdd4af'
$oAuthUri = "https://login.microsoftonline.com/$TenantId/oauth2/token"
$authBody = [Ordered] @{
    resource = "$resourceAppIdUri"
    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

Korzystanie z języka C#

Poniższy kod został przetestowany przy użyciu narzędzia NuGet Microsoft.Identity.Client 4.47.2.

  1. Utwórz nową aplikację konsolową.

  2. Zainstaluj program NuGet Microsoft.Identity.Client.

  3. Dodaj następujące elementy:

    using Microsoft.Identity.Client;
    
  4. Skopiuj i wklej następujący kod w aplikacji (nie zapomnij zaktualizować trzech zmiennych: 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 = "05a65629-4c1b-48c1-a78b-804c4abdd4af";
    
    IConfidentialClientApplication myApp = ConfidentialClientApplicationBuilder.Create(appId).WithClientSecret(appSecret).WithAuthority($"{authority}/{tenantId}").Build();
    
    List scopes = new List() { $"{audience}/.default" };
    
    AuthenticationResult authResult = myApp.AcquireTokenForClient(scopes).ExecuteAsync().GetAwaiter().GetResult();
    
    string token = authResult.AccessToken;
    

Korzystanie z języka Python

Zobacz Biblioteka Microsoft Authentication Library (MSAL) dla języka Python.

Korzystanie z narzędzia Curl

Uwaga

Poniższa procedura zakłada, że program Curl dla systemu Windows jest już zainstalowany na komputerze.

  1. Otwórz wiersz polecenia i ustaw CLIENT_ID na identyfikator aplikacji platformy Azure.
  2. Ustaw CLIENT_SECRET na klucz tajny aplikacji platformy Azure.
  3. Ustaw TENANT_ID identyfikator dzierżawy platformy Azure klienta, który chce używać aplikacji do uzyskiwania dostępu do aplikacji Defender dla Chmury.
  4. Uruchom następujące polecenie:
curl -i -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=%CLIENT_ID%" -d "scope=05a65629-4c1b-48c1-a78b-804c4abdd4af/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID%/oauth2/v2.0/token" -k

Otrzymasz odpowiedź w następującym formularzu:

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

Sprawdzanie poprawności tokenu

Upewnij się, że masz prawidłowy token:

  1. Skopiuj i wklej token uzyskany w poprzednim kroku do usługi JWT , aby go zdekodować.
  2. Sprawdź, czy masz oświadczenie "roles" z żądanymi uprawnieniami
  3. Na poniższej ilustracji widać zdekodowany token uzyskany z aplikacji z uprawnieniami do wszystkich ról aplikacji Microsoft Defender dla Chmury:

Image of token validation.

Uzyskiwanie dostępu do interfejsu API usługi Microsoft Defender dla Chmury Apps przy użyciu tokenu

  1. Wybierz interfejs API, którego chcesz użyć. Aby uzyskać więcej informacji, zobacz interfejsy API usługi Defender dla Chmury Apps.
  2. Ustaw nagłówek autoryzacji w żądaniu HTTP wysyłanym do elementu nośnego {token}" (Element nośny jest schematem autoryzacji).
  3. Czas wygaśnięcia tokenu to jedna godzina. Możesz wysłać więcej niż jedno żądanie z tym samym tokenem.

Poniżej przedstawiono przykład wysyłania żądania w celu uzyskania listy alertów przy użyciu języka C#:

    var httpClient = new HttpClient();

    var request = new HttpRequestMessage(HttpMethod.Get, "https://portal.cloudappsecurity.com/cas/api/v1/alerts/");

    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);

    var response = httpClient.SendAsync(request).GetAwaiter().GetResult();

    // Do something useful with the response

Zobacz też