Přístup k Microsoft Defender for Cloud Apps s kontextem aplikace
Tato stránka popisuje, jak vytvořit aplikaci pro získání programového přístupu k Defender for Cloud Apps bez uživatele. Pokud potřebujete programový přístup k Defender for Cloud Apps 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, podívejte se na stránku Správa tokenů rozhraní API .
Microsoft Defender for Cloud Apps zpřístupňuje většinu svých dat a akcí prostřednictvím sady programových rozhraní API. Tato rozhraní API pomáhají automatizovat pracovní toky a inovovat na základě možností Defender for Cloud Apps. 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 pokud chcete rozhraní API používat, musíte 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í API Defender for Cloud Apps.
Tento článek vysvětluje, jak vytvořit aplikaci Microsoft Entra, získat přístupový token pro Microsoft Defender for Cloud Apps a ověřit token.
Vytvoření aplikace pro Defender for Cloud Apps
V Centrum pro správu Microsoft Entra zaregistrujte novou aplikaci. Další informace najdete v tématu Rychlý start: Registrace aplikace pomocí Centrum pro správu Microsoft Entra.
Pokud chcete aplikaci povolit přístup k Defender for Cloud Apps a přiřadit jí oprávnění Číst všechna upozornění, vyberte na stránce vaší aplikace možnost Oprávnění> rozhraní API Přidat rozhraní APIoprávnění>, kterápoužívá> moje organizace, zadejte Microsoft Cloud App Security a pak vyberte Microsoft Cloud App Security.
Poznámka
Microsoft Cloud App Security se nezobrazuje v původním seznamu. Začněte psát jeho název do textového pole, aby se zobrazilo. Nezapomeňte zadat tento název, i když se teď produkt nazývá Defender for Cloud Apps.
Vyberte Oprávnění> aplikaceInvestigation.Read a pak vyberte Přidat oprávnění.
Musíte vybrat příslušná oprávnění. Investigation.Read je jenom příklad. Další obory oprávnění najdete v tématu Podporované obory 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.
Vyberte Udělit souhlas správce.
Poznámka
Pokaždé, když přidáte oprávnění, musíte vybrat Udělit souhlas správce , aby se nové oprávnění projevilo.
Pokud chcete do aplikace přidat tajný kód, vyberte Certifikáty & tajných kódů, vyberte Nový tajný klíč klienta, 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.
Poznamenejte si ID aplikace a ID tenanta. Na stránce aplikace přejděte na Přehled a zkopírujte ID aplikace (klienta) a ID adresáře (tenanta).
Pouze pro partnery Microsoft Defender for Cloud Apps. Nastavte aplikaci na více tenantů (k dispozici ve všech tenantech po 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). Nastavení víceklientských aplikací:
Přejděte na Ověřování a přidejte
https://portal.azure.com
jako identifikátor URI přesměrování.V dolní části stránky v části Podporované typy účtů vyberte Účty v libovolném organizačním adresáři souhlas aplikace pro 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 Defender for Cloud Apps 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 000000000-0000-0000-0000-0000000000000 je nahrazeno ID vaší aplikace.
Hotovo! Úspěšně jste zaregistrovali aplikaci! V následujících příkladech najdete informace o získání a ověření tokenu.
Podporované obory oprávnění
Název oprávnění | Popis | Podporované akce |
---|---|---|
Investigation.read | Proveďte všechny podporované akce s aktivitami a výstrahami s výjimkou uzavíracích výstrah. Umožňuje zobrazit rozsahy IP adres, ale nepřidávejte, neaktualizujete ani neodstraňovat. Proveďte všechny akce entit. |
Seznam aktivit, načtení, zpětná vazba Seznam upozornění, načtení, označení jako přečtené/nepřečtené Seznam entit, načtení, strom načtení Seznam podsítí |
Investigation.manage | Kromě správy výstrah a rozsahů IP adres proveďte všechny akce investigation.read. | Seznam aktivit, načtení, zpětná vazba Seznam upozornění, načtení, označení jako přečtené/nepřečtené, zavření Seznam entit, načtení, strom načtení Seznam podsítí, vytvoření, aktualizace nebo odstranění |
Discovery.read | Proveďte všechny podporované akce s aktivitami a výstrahami s výjimkou uzavíracích výstrah. Vypište sestavy a kategorie zjišťování. |
Seznam upozornění, načtení, označení jako přečtené/nepřečtené Sestavy seznamu zjišťování, seznam kategorií sestav |
Discovery.manage | Oprávnění Discovery.read Zavření upozornění, nahrání souborů zjišťování a generování blokovacích skriptů |
Seznam upozornění, načtení, označení jako přečtené/nepřečtené, zavření Sestavy seznamu zjišťování, seznam kategorií sestav Nahrání souboru zjišťování, vygenerování blokového skriptu |
Settings.read | Vypíše rozsahy IP adres. | Seznam podsítí |
Settings.manage | Výpis a správa rozsahů IP adres | Seznam podsítí, vytvoření, aktualizace nebo odstranění |
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
$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
Použití jazyka C#
Následující kód byl testován pomocí NuGet Microsoft.Identity.Client 4.47.2.
Vytvořte novou konzolovou aplikaci.
Nainstalujte NuGet Microsoft.Identity.Client.
Přidejte následující:
using Microsoft.Identity.Client;
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 = "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;
Použití Pythonu
Viz Microsoft Authentication Library (MSAL) pro Python.
Použití funkce Curl
Poznámka
Následující postup předpokládá, že curl pro Windows je již v počítači nainstalovaný.
- Otevřete příkazový řádek a nastavte CLIENT_ID na ID aplikace Azure.
- Nastavte CLIENT_SECRET na tajný kód aplikace Azure.
- Nastavte TENANT_ID na ID tenanta Azure zákazníka, který chce používat vaši aplikaci pro přístup k Defender for Cloud Apps.
- 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=05a65629-4c1b-48c1-a78b-804c4abdd4af/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID%/oauth2/v2.0/token" -k
Získáte odpověď v následující podobě:
{"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:
- Zkopírujte token, který jste získali v předchozím kroku, a vložte ho do JWT , abyste ho dekódoval.
- 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 Microsoft Defender for Cloud Apps rolím:
Použití tokenu pro přístup k rozhraní API Microsoft Defender for Cloud Apps
- Zvolte rozhraní API, které chcete použít. Další informace najdete v tématu rozhraní API Defender for Cloud Apps.
- Nastavte autorizační hlavičku v požadavku HTTP, který odešlete na "Bearer {token}" (Bearer je autorizační schéma).
- 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://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