Поделиться через


Доступ к приложениям Microsoft Defender для облака с помощью контекста приложения

На этой странице описывается создание приложения для получения программного доступа к приложениям Defender для облака без пользователя. Если вам нужен программный доступ к приложениям Defender для облака от имени пользователя, см. статью "Получить доступ с помощью контекста пользователя". Если вы не уверены, какой доступ вам нужен, см . страницу "Управление маркерами API".

Microsoft Defender для облака Приложения предоставляют большую часть своих данных и действий с помощью набора программных API. Эти API помогут автоматизировать рабочие потоки и инновации на основе возможностей приложений Defender для облака. Для доступа к API требуется проверка подлинности OAuth2.0. Дополнительные сведения см. в статье OAuth 2.0.

Как правило, вам потребуется выполнить следующие действия, чтобы использовать API:

  • Создайте приложение Microsoft Entra.
  • Получите маркер доступа с помощью этого приложения.
  • Используйте маркер для доступа к API приложений Defender для облака.

В этой статье объясняется, как создать приложение Microsoft Entra, получить маркер доступа для Microsoft Defender для облака Apps и проверить маркер.

Создать приложение

  1. Войдите в Azure с помощью пользователя с ролью Глобального Администратор istrator.

  2. Перейдите к идентификатору Microsoft Entra ID> Регистрация приложений> New.

    Image of Microsoft Azure and navigation to application registration.

  3. В форме регистрации выберите имя приложения и нажмите кнопку "Зарегистрировать".

  4. Чтобы разрешить приложению доступ к приложениям Defender для облака и назначить ему разрешение "Чтение всех оповещений", на странице приложения выберите API Permissions>Add permissionis>my organization,> введите Microsoft Cloud App Security и выберите Microsoft Cloud App Security.

    Примечание.

    Microsoft Cloud App Security не отображается в исходном списке. Начните писать его имя в текстовом поле, чтобы увидеть его. Не забудьте ввести это имя, даже если продукт теперь называется Defender для облака Apps.

    add permission.

    • Выберите "Исследование разрешений>приложения.Чтение", а затем нажмите кнопку "Добавить разрешения".

      app permission.

      Необходимо выбрать соответствующие разрешения. Investigation.Read является только примером. Сведения о других область разрешения см. в разделе "Поддерживаемые область"

      • Чтобы определить нужное разрешение, ознакомьтесь с разделом "Разрешения " в API, который вы хотите вызвать.
  5. Выберите Предоставить согласие администратора.

    Примечание.

    Каждый раз, когда вы добавляете разрешение, необходимо выбрать предоставление согласия администратора для принятия нового разрешения.

    Grant permissions.

  6. Чтобы добавить секрет в приложение, выберите сертификаты и секреты, выберите новый секрет клиента, добавьте описание в секрет и нажмите кнопку "Добавить".

    Примечание.

    После нажатия кнопки "Добавить" выберите "Скопировать созданное значение секрета". Вы не сможете получить это значение после выхода.

    Image of create app key.

  7. Запишите идентификатор приложения и идентификатор клиента. На странице приложения перейдите к обзору и скопируйте идентификатор приложения (клиента) и идентификатор каталога (клиента).

    Image of created app id.

  8. Только для партнеров Microsoft Defender для облака Apps. Настройте мультитенантное приложение (доступно во всех клиентах после согласия). Это необходимо для сторонних приложений (например, если вы создаете приложение, которое предназначено для запуска в клиенте нескольких клиентов). Это не обязательно, если вы создаете службу, которую вы хотите запустить только в клиенте (например, если вы создаете приложение для собственного использования, которое будет взаимодействовать только с собственными данными). Чтобы настроить мультитенантное приложение, выполните приведенные далее действия.

    • Перейдите к проверке подлинности и добавьте https://portal.azure.comURI перенаправления.

    • В нижней части страницы в разделе "Поддерживаемые типы учетных записей" выберите "Учетные записи" в любом приложении каталога организации.

    Вам нужно, чтобы приложение было утверждено в каждом клиенте, где вы планируете использовать его. Это связано с тем, что приложение взаимодействует с Defender для облака Приложения от имени вашего клиента.

    Вы (или ваш клиент, если вы пишете стороннее приложение) должны выбрать ссылку согласия и утвердить свое приложение. Согласие должно быть сделано с пользователем, у которого есть права администратора в Active Directory.

    Ссылка на согласие формируется следующим образом:

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

    Где 00000000-0000-0000-0000-0000000000 заменяется идентификатором приложения.

Готово. Вы успешно зарегистрировали приложение! См. примеры, приведенные ниже, для получения и проверки маркеров.

Поддерживаемые область разрешений

Имя разрешения Description Поддерживаемые действия
Investigation.read Выполните все поддерживаемые действия по действиям и оповещениям, кроме закрытия оповещений.
Просмотр диапазонов IP-адресов, но не добавление, обновление или удаление.

Выполните все действия сущностей.
Список действий, получение, обратная связь
Список оповещений, получение, пометка как чтение или непрочитанное
Список сущностей, получение, дерево получения
Список подсетей
Исследование.manage Выполняйте все действия исследования.read в дополнение к управлению оповещениями и диапазонами IP-адресов. Список действий, получение, обратная связь
Список оповещений, получение, отметка как чтение или непрочитанное, закрытие
Список сущностей, получение, дерево получения
Список подсетей, создание, обновление и удаление
Discovery.read Выполните все поддерживаемые действия по действиям и оповещениям, кроме закрытия оповещений.
Вывод списка отчетов и категорий обнаружения.
Список оповещений, получение, пометка как чтение или непрочитанное
Отчеты списка обнаружения, категории отчетов списка
Discovery.manage Разрешения discovery.read
Закрытие оповещений, отправка файлов обнаружения и создание скриптов блоков
Список оповещений, получение, отметка как чтение или непрочитанное, закрытие
Отчеты списка обнаружения, категории отчетов списка
Отправка файла обнаружения, создание скрипта блокировки
Параметры.read Список диапазонов IP-адресов. Список подсетей
Параметры.manage Вывод списка диапазонов IP-адресов и управление ими. Список подсетей, создание, обновление и удаление

Получение маркера доступа.

Дополнительные сведения о токенах Microsoft Entra см. в руководстве по Microsoft Entra.

С помощью 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

Использование C#

Следующий код был протестирован с помощью NuGet Microsoft.Identity.Client 4.47.2.

  1. Создайте новое консольное приложение.

  2. Установите NuGet Microsoft.Identity.Client.

  3. Добавьте следующий код:

    using Microsoft.Identity.Client;
    
  4. Скопируйте и вставьте следующий код в приложение (не забудьте обновить три переменные: ): 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;
    

Использование Python

См . библиотеку проверки подлинности Майкрософт (MSAL) для Python.

Использование Curl

Примечание.

В следующей процедуре предполагается, что Curl для Windows уже установлен на компьютере.

  1. Откройте командную строку и задайте CLIENT_ID идентификатору приложения Azure.
  2. Задайте CLIENT_SECRET секрету приложения Azure.
  3. Задайте TENANT_ID идентификатору клиента Azure, который хочет использовать приложение для доступа к Defender для облака приложениям.
  4. Выполните следующую команду:
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

Вы получите ответ в следующей форме:

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

проверка маркера безопасности;

Убедитесь, что вы получили правильный маркер:

  1. Скопируйте и вставьте маркер, полученный на предыдущем шаге , в JWT , чтобы декодировать его.
  2. Убедитесь, что вы получаете утверждение "роли" с требуемыми разрешениями
  3. На следующем рисунке вы увидите декодированные маркеры, полученные из приложения с разрешениями для всех ролей Microsoft Defender для облака Apps:

Image of token validation.

Использование маркера для доступа к API приложений Microsoft Defender для облака

  1. Выберите API, который вы хотите использовать. Дополнительные сведения см. в Defender для облака API приложений.
  2. Задайте заголовок авторизации в http-запросе, который отправляется в "Bearer {token}" (Bearer — это схема авторизации).
  3. Срок действия маркера составляет один час. Вы можете отправить несколько запросов с одним и тем же маркером.

Ниже приведен пример отправки запроса для получения списка оповещений с помощью 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

См. также