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 w oparciu o 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.
Tworzenie aplikacji dla aplikacji Defender dla Chmury
W centrum administracyjnym firmy Microsoft Entra zarejestruj nową aplikację. Aby uzyskać więcej informacji, zobacz Szybki start: rejestrowanie aplikacji w centrum administracyjnym firmy Microsoft Entra.
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.
Wybierz pozycję Badanie uprawnień>aplikacji.Odczyt, a następnie wybierz pozycję Dodaj uprawnienia.
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.
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ć.
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.
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).
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ć wielodostępną aplikację:
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 wielodostępnej.
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świetl zakresy adresów IP, ale nie dodaj, zaktualizuj lub usuń. 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 |
Settings.read | Wyświetlanie listy zakresów adresów IP. | Lista podsieci |
Settings.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.
Utwórz nową aplikację konsolową.
Zainstaluj program NuGet Microsoft.Identity.Client.
Dodaj następujące elementy:
using Microsoft.Identity.Client;
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 = "00001111-aaaa-2222-bbbb-3333cccc4444"; // 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.
- Otwórz wiersz polecenia i ustaw CLIENT_ID na identyfikator aplikacji platformy Azure.
- Ustaw CLIENT_SECRET na klucz tajny aplikacji platformy Azure.
- Ustaw TENANT_ID identyfikator dzierżawy platformy Azure klienta, który chce używać aplikacji do uzyskiwania dostępu do aplikacji Defender dla Chmury.
- 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:
- Skopiuj i wklej token uzyskany w poprzednim kroku do usługi JWT , aby go zdekodować.
- Sprawdź, czy masz oświadczenie "roles" z żądanymi uprawnieniami
- Na poniższej ilustracji widać zdekodowany token uzyskany z aplikacji z uprawnieniami do wszystkich ról aplikacji Microsoft Defender dla Chmury:
Uzyskiwanie dostępu do interfejsu API usługi Microsoft Defender dla Chmury Apps przy użyciu tokenu
- Wybierz interfejs API, którego chcesz użyć. Aby uzyskać więcej informacji, zobacz interfejsy API usługi Defender dla Chmury Apps.
- Ustaw nagłówek autoryzacji w żądaniu HTTP wysyłanym do elementu nośnego {token}" (Element nośny jest schematem autoryzacji).
- 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