次の方法で共有


REST クライアントを使用して Intune データ ウェアハウス 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>App Registrations] を選択して、[アプリの登録] ウィンドウを開きます。
  3. [ 新しいアプリの登録] を選択します。
  4. アプリの詳細を入力します。
    1. 名前の "Intune Data Warehouse Client" などのフレンドリ名を入力します
    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>App Registrations] を選択して、[アプリの登録] ウィンドウを開きます。
  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 用 Microsoft Authentication Library (MSAL) などの一部の SDK では、 二重スラッシュ (//) で定義されたスコープが必要な場合があります。

SCOPE = [''https://api.manage.microsoft.com//.default]
許可の種類 トークンは承認コードです。 認証コード

OData エンドポイント

エンドポイントも必要です。 Data Warehouse エンドポイントを取得するには、カスタム フィード URL が必要です。 OData エンドポイントは、Data Warehouse ペインから取得できます。

  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

詳細については、「Intune Data Warehouse API エンドポイント」を参照してください。

REST 呼び出しを行う

Postman の新しいアクセス トークンを取得するには、Microsoft Entra承認 URL を追加し、クライアント ID とクライアント シークレットを追加する必要があります。 Postman は、資格情報を入力する承認ページを読み込みます。

呼び出しを行う前に、Azure のアプリにコールバック URL が既に追加されていることを確認します。 コールバック URL は です https://www.getpostman.com/oauth2/callback

トークンの要求に使用する情報を追加する

  1. まだインストールされていない場合は、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. トークン名に「Bearer」 と入力します

  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. [Active 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を保存する場所を参照して、[OK] を選択します

  4. ソリューション エクスプローラーでソリューションの名前を右クリックし、[ソリューションの NuGet パッケージの管理] を選択します。 [ 参照] を選択し、検索ボックスに「」と入力 Microsoft.Identity.Client します。

    注:

    Microsoft 認証ライブラリ (MSAL) を使用する必要があります。 詳細については、「Microsoft Authentication Library (MSAL) と 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. コード サンプルの TODOs を更新します。

  10. Ctrl + F5 キーを押して、Intuneをビルドして実行します。デバッグ モードの DataWarehouseAPIClient クライアント。

    JSON 形式で取得された日付エンティティ。

  11. コンソールの出力を確認します。 出力には、Intune テナントの日付エンティティから取得された JSON 形式のデータが含まれます。

次の手順

承認、API URL 構造、OData エンドポイントの詳細については、「Intune Data Warehouse API を使用する」を参照してください。

また、Intune Data Warehouse データ モデルを参照して、API に含まれるデータ エンティティを見つけることもできます。 詳細については、「API データ モデルのIntune Data Warehouse」を参照してください。