共用方式為


建立應用程式以代表使用者存取 Microsoft Defender 全面偵測回應 API

重要事項

部分資訊與發行前版本產品有關,在正式發行之前可能會實質上進行修改。 Microsoft 對此處提供的資訊,不提供任何明確或隱含的瑕疵擔保。

本頁說明如何建立應用程式,以代表單一使用者取得 Microsoft Defender 全面偵測回應的程式存取權限。

例如,如果你需要程式化存取Microsoft Defender 全面偵測回應但沒有明確的使用者 (,例如你正在撰寫背景應用程式或守護程序) ,請參考「建立應用程式以存取無使用者」Microsoft Defender 全面偵測回應。 如果你需要為多個租戶提供存取權限——例如,服務大型組織或一群客戶——請參閱「建立一個與合作夥伴有權限存取 Microsoft Defender 全面偵測回應 API 的應用程式」。如果你不確定需要哪種存取方式,請參閱「開始使用」。

Microsoft Defender 全面偵測回應透過一組程式化 API 公開其大部分資料與操作。 這些 API 幫助你自動化工作流程,並善用 Microsoft Defender 全面偵測回應的功能。 此 API 存取需要 OAuth2.0 認證。 欲了解更多資訊,請參閱 OAuth 2.0 授權碼流程

一般來說,你需要採取以下步驟才能使用這些 API:

  • 建立一個 Microsoft Entra 應用程式。
  • 使用這個應用程式取得存取權杖。
  • 使用令牌來存取 Microsoft Defender 全面偵測回應 API。

本文說明如何:

  • 建立 Microsoft Entra 應用程式
  • 取得 Microsoft Defender 全面偵測回應的存取權杖
  • 驗證代幣

注意事項

當代表使用者存取 Microsoft Defender 全面偵測回應 API 時,你需要正確的應用程式權限和使用者權限。

提示

如果你有權限在入口網站執行某個動作,你就有權限在 API 裡執行該動作。 欲了解更多角色與權限資訊,請參閱「以 Microsoft Entra 全域角色管理 Microsoft Defender 全面偵測回應權限」。

建立應用程式

  1. 登入 Azure

  2. 導航至 Microsoft Entra ID>應用程式註冊>新註冊

    Azure 入口網站管理面板中的新註冊選項

  3. 在表單中,選擇申請名稱,輸入以下資訊以申請 URI,然後選擇 註冊

    Azure 入口網站的應用程式註冊窗格

  4. 在你的應用程式頁面,選擇 API 權限> 新增我組織使用的>權限> API,輸入 Microsoft Threat Protection,然後選擇 Microsoft Threat Protection。 您的應用程式現在可以存取 Microsoft Defender 全面偵測回應。

    提示

    Microsoft Threat Protection 是 Microsoft Defender 全面偵測回應的舊稱,原本的清單中不會出現。 你需要先在文字框裡寫下它的名字,這樣它才會出現。

    貴組織的 API 面板顯示在 Microsoft Defender 入口網站

    • 選擇委 派權限。 選擇與你的情境相關的權限,例如 (Incident.Read) ,然後選擇 新增權限

      Microsoft Defender 入口網站中的委派權限面板

    注意事項

    你需要為你的情境選擇相關的權限。 Read all Incident 只是一個例子。 要判斷你需要哪個權限,請查看你想呼叫的 API 中的 權限 區塊。

    例如,要 執行進階查詢,請選擇「執行進階查詢」權限;要 隔離裝置,請選擇「隔離機器」權限。

  5. 選擇 授予管理員同意。 每次新增權限時,必須選擇 「授予管理員同意 」才能生效。

    Microsoft Defender 入口網站中的管理員同意授予面板

  6. 請將你的申請ID和租戶ID記錄在安全的地方。 他們會在你申請頁面的 「概覽 」裡列出。

    Microsoft Defender 入口網站中的概覽窗格

取得存取權杖

欲了解更多關於 Microsoft Entra 令牌的資訊,請參閱 Microsoft Entra 教學

代表使用 PowerShell 的使用者取得存取權杖

使用 MSAL.PS 函式庫取得授權權限的存取權杖。 請執行以下指令以代表使用者取得存取權杖:

Install-Module -Name MSAL.PS # Install the MSAL.PS module from PowerShell Gallery

$TenantId = " " # Paste your directory (tenant) ID here.
$AppClientId="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # Paste your application (client) ID here.

$MsalParams = @{
   ClientId = $AppClientId
   TenantId = $TenantId
   Scopes   = 'https://graph.microsoft.com/User.Read.All','https://graph.microsoft.com/Files.ReadWrite','https://api.securitycenter.windows.com/AdvancedQuery.Read'
}

$MsalResponse = Get-MsalToken @MsalParams
$AccessToken  = $MsalResponse.AccessToken
 
$AccessToken # Display the token in PS console

驗證代幣

  1. 將標記複製貼上到 JWT 來解碼。
  2. 確保解碼後的權杖中 的角色主張包含 所需的權限。

在下圖中,你可以看到一個從應用程式取得的解碼令牌,權限為 Incidents.Read.AllIncidents.ReadWrite.AllAdvancedHunting.Read.All 、 和 :

Microsoft Defender 入口網站中解碼令牌面板中的權限區塊

使用該令牌存取 Microsoft Defender 全面偵測回應 API

  1. 選擇你想在事件 (或進階狩獵) 使用的 API。 欲了解更多資訊,請參閱支援的 Microsoft Defender 全面偵測回應 API。
  2. 在你即將發送的 HTTP 請求中,將授權標頭設為 "Bearer" <token>,持有者為授權方案,令牌為你已驗證的令牌。
  3. 該代幣將在一小時內過期。 你可以在同一段時間內用同一令牌發送多個請求。

以下範例說明如何使用 C# 發送請求以取得事件清單。

    var httpClient = new HttpClient();
    var request = new HttpRequestMessage(HttpMethod.Get, "https://api.security.microsoft.com/api/incidents");

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

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

提示

想要深入了解? 請到我們的技術社群中與 Microsoft 安全性社群互動: Microsoft Defender 全面偵測回應技術社群