REST 클라이언트를 사용하여 Intune Data Warehouse API에서 데이터 가져오기

RESTful 엔드포인트를 통해 Intune Data Warehouse 데이터 모델에 액세스할 수 있습니다. 데이터에 액세스하려면 클라이언트가 OAuth 2.0을 사용하여 Microsoft Entra ID 권한을 부여해야 합니다. 액세스를 사용하도록 설정하려면 먼저 Azure에서 네이티브 앱을 설정하고 Microsoft Intune API에 권한을 부여합니다. 로컬 클라이언트는 권한 부여를 가져오고 클라이언트는 네이티브 앱을 통해 Data Warehouse 엔드포인트와 통신할 수 있습니다.

Data Warehouse API에서 데이터를 가져오기 위해 클라이언트를 설정하는 단계에는 다음이 필요합니다.

  1. Azure에서 클라이언트 앱을 네이티브 앱으로 Create
  2. 클라이언트 앱에 Microsoft Intune API에 대한 액세스 권한 부여
  3. 로컬 REST 클라이언트를 Create 데이터를 가져옵니다.

다음 단계를 사용하여 REST 클라이언트를 사용하여 API에 권한을 부여하고 액세스하는 방법을 알아봅니다. 먼저 Postman을 사용하여 일반 REST 클라이언트를 사용하는 것을 살펴보겠습니다. Postman은 일반적으로 사용되는 도구 문제 해결 및 API 작업을 위해 REST 클라이언트를 개발하는 도구입니다. Postman에 대한 자세한 내용은 Postman 사이트를 참조하세요. 그런 다음 C# 코드 샘플을 볼 수 있습니다. 이 샘플에서는 클라이언트에 권한을 부여하고 API에서 데이터를 가져오는 예제를 제공합니다.

Azure에서 클라이언트 앱을 네이티브 앱으로 Create

Azure에서 네이티브 앱 Create. 이 네이티브 앱은 클라이언트 앱입니다. 로컬 컴퓨터에서 실행되는 클라이언트는 로컬 클라이언트가 자격 증명을 요청할 때 Intune Data Warehouse API를 참조합니다.

  1. Microsoft Entra 관리 센터에 로그인합니다.
  2. Microsoft Entra ID>앱 등록을 선택하여 앱 등록 창을 엽니다.
  3. 새 앱 등록을 선택합니다.
  4. 앱 세부 정보를 입력합니다.
    1. 이름에 'Intune Data Warehouse 클라이언트'와 같은 친숙한 이름을 입력합니다.
    2. 지원되는계정 유형에 대해 이 조직 디렉터리에서만 계정(Microsoft 전용 - 단일 테넌트)을 선택합니다.
    3. 리디렉션 URI의 URL을 입력합니다. 리디렉션 URI는 특정 시나리오에 따라 달라지게 되지만 Postman을 사용하려는 경우 를 입력합니다 https://www.getpostman.com/oauth2/callback. Microsoft Entra ID 인증할 때 클라이언트 인증 단계에 콜백을 사용합니다.
  5. 등록을 선택하세요.
  6. 이 앱의 애플리케이션(클라이언트) ID 를 확인합니다. 다음 섹션에서 ID를 사용합니다.

클라이언트 앱에 Microsoft Intune API에 대한 액세스 권한 부여

이제 Azure에 정의된 앱이 있습니다. 네이티브 앱에서 Microsoft Intune API에 대한 액세스 권한을 부여합니다.

  1. Microsoft Entra 관리 센터에 로그인합니다.
  2. Microsoft Entra ID>앱 등록을 선택하여 앱 등록 창을 엽니다.
  3. 액세스 권한을 부여해야 하는 앱을 선택합니다. 앱의 이름을 Intune Data Warehouse Client와 같은 이름을 지정했습니다.
  4. API 권한 사용>권한 추가를 선택합니다.
  5. Intune API를 찾아 선택합니다. 이름이 Microsoft Intune API입니다.
  6. 위임된 권한 상자를 선택하고 Microsoft Intune 데이터 웨어하우스 정보 가져오기 상자를 클릭합니다.
  7. 권한 추가를 클릭합니다.
  8. 필요에 따라 구성된 권한 창에서 Microsoft에 대한 관리자 동의 부여 를 선택한 다음, 예를 선택합니다. 그러면 현재 디렉터리의 모든 계정에 대한 액세스 권한이 부여됩니다. 이렇게 하면 테넌트 내의 모든 사용자에 대한 동의 대화 상자가 표시되지 않습니다. 자세한 내용은 Microsoft Entra ID 애플리케이션 통합을 참조하세요.
  9. 인증서 & 비밀>+ 새 클라이언트 비밀을 선택하고 새 비밀을 생성합니다. 다시 액세스할 수 없으므로 안전한 곳에 복사해야 합니다.

Postman을 사용하여 Microsoft Intune API에서 데이터 가져오기

Postman과 같은 일반 REST 클라이언트에서 Intune Data Warehouse API로 작업할 수 있습니다. Postman은 API의 기능, 기본 OData 데이터 모델에 대한 인사이트를 제공하고 API 리소스에 대한 연결 문제를 해결할 수 있습니다. 이 섹션에서는 로컬 클라이언트에 대한 Auth2.0 토큰 생성에 대한 정보를 찾을 수 있습니다. 클라이언트는 Microsoft Entra ID 인증하고 API 리소스에 액세스하기 위해 토큰이 필요합니다.

전화를 걸 때 필요한 정보

Postman을 사용하여 REST 호출을 수행하려면 다음 정보가 필요합니다.

특성 설명 예제
콜백 URL 앱 설정 페이지에서 콜백 URL로 설정합니다. https://www.getpostman.com/oauth2/callback
토큰 이름 자격 증명을 Azure 앱에 전달하는 데 사용되는 문자열입니다. 프로세스는 Data Warehouse API를 호출할 수 있도록 토큰을 생성합니다. 무기명
인증 URL 인증하는 데 사용되는 URL입니다. https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
액세스 토큰 URL 토큰을 부여하는 데 사용되는 URL입니다. https://login.microsoftonline.com/common/oauth2/token
클라이언트 ID Azure에서 네이티브 앱을 만들 때 이를 만들고 기록했습니다. 4184c61a-e324-4f51-83d7-022b6a81b991
클라이언트 암호 Azure에서 네이티브 앱을 만들 때 이를 만들고 기록했습니다. Ksml3dhDJs+jfK1f8Mwc8
범위(선택 사항) 필드를 비워 둘 수 있습니다.

참고: Python용 MSAL(Microsoft 인증 라이브러리)과 같은 일부 SDK에는 이중 슬래시(//)로 정의된 scope 필요할 수 있습니다.

SCOPE = ['https://api.manage.microsoft.com//.default']
권한 부여 유형 토큰은 권한 부여 코드입니다. 권한 부여 코드

OData 엔드포인트

엔드포인트도 필요합니다. Data Warehouse 엔드포인트를 가져오려면 사용자 지정 피드 URL이 필요합니다. Data Warehouse 창에서 OData 엔드포인트를 가져올 수 있습니다.

  1. Microsoft Intune 관리 센터에 로그인합니다.
  2. 보고서>데이터 웨어하우스를 선택하여 Data Warehouse 창을 엽니다.
  3. 보고 서비스에 대한 OData 피드 아래의 사용자 지정 피드 URL을 복사합니다. 다음과 같이 표시됩니다. https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0

엔드포인트는 다음 형식을 따릅니다. https://fef.{yourtenant}.manage.microsoft.com/ReportingService/DataWarehouseFEService/{entity}?api-version={verson-number}

예를 들어 날짜 엔터티는 다음과 같습니다. https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

자세한 내용은 API 엔드포인트 Intune Data Warehouse 참조하세요.

REST 호출

Postman에 대한 새 액세스 토큰을 가져오려면 Microsoft Entra 권한 부여 URL을 추가하고 클라이언트 ID 및 클라이언트 암호를 추가해야 합니다. Postman은 자격 증명을 입력할 권한 부여 페이지를 로드합니다.

호출하기 전에 Azure에서 앱에 콜백 URL을 이미 추가했는지 확인합니다. 콜백 URL은 입니다 https://www.getpostman.com/oauth2/callback.

토큰을 요청하는 데 사용되는 정보 추가

  1. Postman이 아직 설치되어 있지 않은 경우 Postman을 다운로드합니다. Postman을 다운로드하려면 www.getpostman.com 참조하세요.

  2. Postman을 엽니다. HTTP 작업 GET을 선택합니다.

  3. 엔드포인트 URL을 주소에 붙여넣습니다. 다음과 같이 표시됩니다.

    https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

  4. 권한 부여 탭을 선택하고 유형 목록에서 OAuth 2.0을 선택합니다.

  5. 새 토큰 구성 섹션까지 아래로 스크롤합니다.

  6. 토큰 이름에 전달자를 입력합니다.

  7. 권한 부여 유형으로 권한 부여 코드를 선택합니다.

  8. 콜백 URL을 추가합니다. 콜백 URL은 입니다 https://www.getpostman.com/oauth2/callback.

  9. 인증 URL을 추가합니다. 다음과 같이 표시됩니다.

    https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/

  10. 액세스 토큰 URL을 추가합니다. 다음과 같이 표시됩니다.

    https://login.microsoftonline.com/common/oauth2/token

  11. Azure에서 만들고 라는 Intune Data Warehouse Client네이티브 앱에서 클라이언트 ID를 추가합니다. 다음과 같이 표시됩니다.

    88C8527B-59CB-4679-A9C8-324941748BB4

  12. Azure에서 만든 네이티브 앱 내에서 생성한 클라이언트 비밀을 추가합니다. 다음과 같이 표시됩니다.

    Ksml3dhDJs+jfK1f8Mwc8

  13. 새 액세스 토큰 가져오기를 선택합니다.

    액세스 토큰에 대한 정보입니다.

  14. 활성 AD 권한 부여 페이지에서 자격 증명을 입력합니다. 이제 Postman의 토큰 목록에 라는 Bearer토큰이 포함됩니다.

  15. 토큰 사용을 선택합니다. 헤더 목록에는 Authorization의 새 키 값과 값 Bearer <your-authorization-token>이 포함됩니다.

Postman을 사용하여 엔드포인트에 호출 보내기

  1. 보내기를 선택합니다.

  2. 반환 데이터는 Postman 응답 본문에 표시됩니다.

    Postman 클라이언트 상태 200 OK와 같습니다.

REST 클라이언트(C#)를 Create Intune Data Warehouse

다음 샘플에는 간단한 REST 클라이언트가 포함되어 있습니다. 코드는 .NET 라이브러리의 httpClient 클래스를 사용합니다. 클라이언트가 Microsoft Entra ID 자격 증명을 획득하면 클라이언트는 GET REST 호출을 생성하여 Data Warehouse API에서 날짜 엔터티를 검색합니다.

참고

GitHub에서 다음 코드 샘플에 액세스할 수 있습니다. 샘플에 대한 최신 변경 내용 및 업데이트는 GitHub 리포지토리를 참조하세요.

  1. Microsoft Visual Studio를 엽니다.

  2. 파일>새 프로젝트를 선택합니다. Visual C#을 확장하고 콘솔 앱(.NET Framework)을 선택합니다.

  3. 프로젝트 IntuneDataWarehouseSamples이름을 로 지정하고 프로젝트를 저장할 위치로 이동한 다음 확인을 선택합니다.

  4. 솔루션 탐색기 솔루션 이름을 마우스 오른쪽 단추로 클릭한 다음 솔루션용 NuGet 패키지 관리를 선택합니다. 찾아보기를 선택한 다음 검색 상자에 를 입력 Microsoft.Identity.Client 합니다.

    참고

    MSAL(Microsoft 인증 라이브러리)을 사용해야 합니다. 자세한 내용은 MSAL(Microsoft 인증 라이브러리) 및 Microsoft Graph API를 사용하도록 애플리케이션 업데이트를 참조하세요..

  5. 패키지를 선택하고 솔루션에 대한 패키지 관리에서 IntuneDataWarehouseSamples 프로젝트를 선택한 다음 설치를 선택합니다.

  6. 동의를 선택하여 NuGet 패키지 라이선스를 수락합니다.

  7. 솔루션 탐색기 엽니다Program.cs.

    Visual Studio에서 Program.cs 및 솔루션 탐색기.

  8. Program.cs 코드를 다음 코드로 바꿉 있습니다.

    namespace IntuneDataWarehouseSamples
    {
    using System;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using Microsoft.Identity.Client;
    
    class Program
    {
     static void Main(string[] args)
    {
    /**
    * TODO: Replace the below values with your own.
    * emailAddress - The email address of the user that you will authenticate as.
    *
    * password  - The password for the above email address.
    *    This is inline only for simplicity in this sample. We do not
    *    recommend storing passwords in plaintext.
    *
    * applicationId - The application ID of the native app that was created in AAD.
    *
    * warehouseUrl   - The data warehouse URL for your tenant. This can be found in
    *      the Microsoft Intune admin center.
    *
    * collectionName - The name of the warehouse entity collection you would like to
    *      access.
    */
    var emailAddress = "intuneadmin@yourcompany.com";
    var password = "password_of(intuneadmin@yourcompany.com)";
    var applicationId = "<Application ID>";
    var warehouseUrl = "https://fef.{yourinfo}.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0";
    var collectionName = "dates";
    
    var msalContext = new AuthenticationContext("https://login.windows.net/common/oauth2/token");
    AuthenticationResult authResult = msalContext.AcquireTokenAsync(
    resource: "https://api.manage.microsoft.com/",
    clientId: applicationId,
    userCredential: new UserPasswordCredential(emailAddress, password)).Result;
    
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
    
    var uriBuilder = new UriBuilder(warehouseUrl);
    uriBuilder.Path += "/" + collectionName;
    
    HttpResponseMessage response = httpClient.GetAsync(uriBuilder.Uri).Result;
    
    Console.Write(response.Content.ReadAsStringAsync().Result);
    Console.ReadKey();
    }
    }
    }
    
  9. TODO코드 샘플에서 를 업데이트합니다.

  10. Ctrl + F5를 눌러 Intune 빌드하고 실행합니다. 디버그 모드의 DataWarehouseAPIClient 클라이언트입니다.

    JSON 형식으로 검색된 날짜 엔터티입니다.

  11. 콘솔 출력을 검토합니다. 출력에는 Intune 테넌트에서 날짜 엔터티에서 가져온 JSON 형식의 데이터가 포함됩니다.

다음 단계

권한 부여, API URL 구조 및 OData 엔드포인트에 대한 자세한 내용은 Intune Data Warehouse API 사용에서 확인할 수 있습니다.

Intune Data Warehouse 데이터 모델을 참조하여 API에 포함된 데이터 엔터티를 찾을 수도 있습니다. 자세한 내용은 API 데이터 모델 Intune Data Warehouse 참조하세요.