사용자를 대신하여 Microsoft Defender XDR API에 액세스하는 앱 만들기
적용 대상:
- Microsoft Defender XDR
중요
일부 정보는 상용으로 출시되기 전에 실질적으로 수정될 수 있는 사전 릴리스된 제품과 관련이 있습니다. Microsoft는 여기에서 제공하는 정보와 관련하여 명시적이거나 묵시적인 어떠한 보증도 제공하지 않습니다.
이 페이지에서는 애플리케이션을 만들어 단일 사용자를 대신하여 Microsoft Defender XDR에 프로그래밍 방식으로 액세스하는 방법을 설명합니다.
정의된 사용자 없이 Microsoft Defender XDR에 프로그래밍 방식으로 액세스해야 하는 경우(예: 백그라운드 앱 또는 디먼을 작성하는 경우) 사용자 없이 Microsoft Defender XDR에 액세스할 앱 만들기를 참조하세요. 여러 테넌트(예: 대규모 조직 또는 고객 그룹에 서비스를 제공하는 경우)에 대한 액세스를 제공해야 하는 경우 Microsoft Defender XDR API에 대한 파트너 액세스 권한이 있는 앱 만들기를 참조하세요. 어떤 종류의 액세스가 필요한지 잘 모르는 경우 시작을 참조하세요.
Microsoft Defender XDR은 프로그래밍 방식 API 집합을 통해 많은 데이터와 작업을 노출합니다. 이러한 API는 워크플로를 자동화하고 Microsoft Defender XDR의 기능을 활용하는 데 도움이 됩니다. 이 API 액세스에는 OAuth2.0 인증이 필요합니다. 자세한 내용은 OAuth 2.0 권한 부여 코드 흐름을 참조하세요.
일반적으로 이러한 API를 사용하려면 다음 단계를 수행해야 합니다.
- Microsoft Entra 애플리케이션을 만듭니다.
- 이 애플리케이션을 사용하여 액세스 토큰을 가져옵니다.
- 토큰을 사용하여 Microsoft Defender XDR API에 액세스합니다.
이 문서에서는 다음 방법을 설명합니다.
- Microsoft Entra 애플리케이션 만들기
- Microsoft Defender XDR에 대한 액세스 토큰 가져오기
- 토큰 유효성 검사
참고
사용자를 대신하여 Microsoft Defender XDR API에 액세스할 때 올바른 애플리케이션 권한 및 사용자 권한이 필요합니다.
팁
포털에서 작업을 수행할 수 있는 권한이 있는 경우 API에서 작업을 수행할 수 있는 권한이 있습니다.
앱 만들기
전역 관리자 역할을 가진 사용자로 Azure에 로그인합니다.
Microsoft Entra ID>앱 등록 새 등록으로> 이동합니다.
양식에서 애플리케이션의 이름을 선택하고 리디렉션 URI에 대한 다음 정보를 입력한 다음 등록을 선택합니다.
- 애플리케이션 유형: 공용 클라이언트
- 리디렉션 URI:https://portal.azure.com
애플리케이션 페이지에서 API 권한>내 조직에서 사용하는>권한> 추가 API를 선택하고, Microsoft Threat Protection을 입력하고, Microsoft Threat Protection을 선택합니다. 이제 앱에서 Microsoft Defender XDR에 액세스할 수 있습니다.
팁
Microsoft Threat Protection 은 Microsoft Defender XDR의 이전 이름이며 원래 목록에 표시되지 않습니다. 표시되는 것을 보려면 텍스트 상자에 이름을 쓰기 시작해야 합니다.
관리자 동의 부여를 선택합니다. 권한을 추가할 때마다 적용하려면 관리자 동의 부여 를 선택해야 합니다.
안전한 곳에 애플리케이션 ID와 테넌트 ID를 기록합니다. 애플리케이션 페이지의 개요 아래에 나열됩니다.
액세스 토큰 가져오기
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
토큰 유효성 검사
- 토큰을 복사하여 JWT 에 붙여넣어 디코딩합니다.
- 디코딩된 토큰 내의 역할 클레임에 원하는 권한이 포함되어 있는지 확인합니다.
다음 이미지에서는 , Incidents.ReadWrite.All
및 AdvancedHunting.Read.All
권한을 사용하여 앱Incidents.Read.All
에서 획득한 디코딩된 토큰을 볼 수 있습니다.
토큰을 사용하여 Microsoft Defender XDR API 액세스
- 사용하려는 API(인시던트 또는 고급 헌팅)를 선택합니다. 자세한 내용은 지원되는 Microsoft Defender XDR API를 참조하세요.
- 보내려는 http 요청에서 권한 부여 헤더를
"Bearer" <token>
로 설정하고, 전달자는 권한 부여 체계이고, 토큰 은 유효성이 검사된 토큰으로 설정합니다. - 토큰은 1시간 이내에 만료됩니다. 이 시간 동안 동일한 토큰으로 둘 이상의 요청을 보낼 수 있습니다.
다음 예제에서는 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 Defender XDR API 개요
- Microsoft Defender XDR API 액세스
- 'Hello world' 앱 만들기
- 사용자 없이 Microsoft Defender XDR에 액세스하는 앱 만들기
- Microsoft Defender XDR API에 대한 다중 테넌트 파트너 액세스 권한이 있는 앱 만들기
- API 제한 및 라이선스에 대해 알아보기
- 오류 코드 이해
- 사용자 로그인 및 API 액세스를 위한 OAuth 2.0 권한 부여
팁
더 자세히 알아보고 싶으신가요? 기술 커뮤니티: Microsoft Defender XDR Tech Community에서 Microsoft 보안 커뮤니티에 참여하세요.