API를 사용하는 경우 사용자 없이 엔드포인트용 Microsoft Defender 액세스해야 할 수 있습니다. 예를 들어 백그라운드에서 실행되고 organization 대신하여 엔드포인트용 Defender와 상호 작용하는 서비스를 만들 수 있습니다. 이 경우 사용자 없이 엔드포인트용 Defender에 액세스할 수 있는 애플리케이션을 만들어야 합니다.
API 액세스에는 OAuth2.0 인증이 필요합니다.
필수 구성 요소
Azure에서 앱을 만들기 위한 Microsoft Entra 역할을 갖습니다. 예를 들어 애플리케이션 관리자입니다.
1단계: Azure에서 앱 만들기
Azure 포털에 로그인합니다.
앱 등록 검색하고 앱 등록 이동합니다.
새 등록을 선택합니다.
애플리케이션의 이름을 선택한 다음 등록을 선택합니다.
애플리케이션 페이지에서 API 권한 > 관리 > 내 organization 사용하는 권한 > API 추가로 이동합니다.
API 권한 요청 페이지에서 WindowsDefenderATP를 검색하고 선택합니다.
필요한 사용 권한 유형을 선택한 다음 권한 추가를 선택합니다.
위임된 권한 - 사용자인 것처럼 앱으로 로그인합니다.
애플리케이션 권한 - API as a Service에 액세스합니다.
앱에 대한 적절한 권한을 선택합니다. 필요한 권한을 확인하려면 호출하는 API의 사용 권한 섹션을 참조하세요. 다음은 이와 관련된 두 가지 예입니다.
권한 추가를 선택합니다.
2단계: 앱에 비밀 추가
애플리케이션 페이지에서 인증서 & 비밀>새 클라이언트 암호를 선택합니다.
클라이언트 비밀 추가 창에서 설명 및 만료 날짜를 추가합니다.
추가를 선택합니다.
만든 비밀의 값을 복사합니다. 페이지를 나가면 이 값을 검색할 수 없습니다.
앱의 개요 페이지에서 애플리케이션(클라이언트) ID 및 디렉터리(테넌트) ID를 복사합니다. 앱을 인증하려면 이 ID가 필요합니다.
애플리케이션 ID 및 테넌트 ID를 적어 씁니다. 애플리케이션 페이지에서 개요 로 이동하여 다음을 복사합니다.
다중 테넌트 앱
엔드포인트용 Microsoft Defender 파트너는 앱을 다중 테넌트로 설정해야 합니다. 여러 고객의 테넌트에서 실행되는 앱을 만들려는 경우 앱을 다중 테넌트 앱으로 설정합니다.
Azure 앱 페이지에서 인증 관리>로 이동합니다.
플랫폼을 추가합니다.
플랫폼 구성 창에서 웹을 선택합니다.
리디렉션 URI에 를 추가하고
https://portal.azure.com
구성을 선택합니다.지원되는 계정 유형 옵션에서 모든 조직 디렉터리의 계정을 선택하고 저장을 선택합니다.
앱을 실행한 후에는 앱을 사용하려는 각 테넌트에서 승인해야 합니다. 애플리케이션이 고객을 대신하여 엔드포인트용 Defender와 상호 작용하기 때문입니다. 사용자 또는 고객이 동의 링크를 선택하고 앱을 승인해야 합니다. 관리자 권한이 있는 사용자에게 동의를 제공합니다.
동의 링크를 구성하는 방법은 다음과 같습니다. 를 앱 ID로 대체 00000000-0000-0000-0000-000000000000
합니다.
https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true
액세스 토큰 가져오기
이 섹션에서는 앱의 액세스 토큰을 가져오는 몇 가지 방법을 나열합니다.
# This script acquires the App Context Token and stores it in the variable $token for later use.
# Paste your Tenant ID, App ID, and App Secret (App key) into the quotes below.
$tenantId = '' ### Paste your tenant ID here
$appId = '' ### Paste your Application ID here
$appSecret = '' ### Paste your Application key here
$sourceAppIdUri = 'https://api.securitycenter.microsoft.com/.default'
$oAuthUri = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token"
$authBody = [Ordered] @{
scope = "$sourceAppIdUri"
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
$token
토큰 유효성 검사
이 섹션의 프로세스에 따라 올바른 토큰을 얻었는지 확인합니다. 동일한 토큰을 사용하여 둘 이상의 요청을 보낼 수 있습니다. 토큰은 1시간 후에 만료됩니다.
토큰을 사용하여 엔드포인트용 Microsoft Defender API에 액세스
사용할 API 를 선택합니다.
로 보내는 요청에서
http
권한 부여 헤더를Bearer {token}
설정합니다. 전달자는 권한 부여 체계입니다.
예제
이 예제에서는 C#을 사용하여 경고 목록을 가져오기 위한 요청을 보냅니다.
var httpClient = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.securitycenter.microsoft.com/api/alerts");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response = httpClient.SendAsync(request).GetAwaiter().GetResult();