REST クライアントを使用して Intune データ ウェアハウス API からデータを取得する
RESTful エンドポイントを介して Intune Data Warehouse データ モデルにアクセスできます。 データにアクセスするには、クライアントが OAuth 2.0 を使用して Microsoft Entra ID で承認する必要があります。 アクセスを有効にするには、まず Azure でネイティブ アプリを設定し、Microsoft Intune API にアクセス許可を付与します。 ローカル クライアントが承認を取得した後、クライアントはネイティブ アプリを介して Data Warehouse エンドポイントと通信できます。
Data Warehouse API からデータを取得するようにクライアントを設定する手順では、次の操作を行う必要があります。
- Azure でネイティブ アプリとしてクライアント アプリを作成する
- クライアント アプリに Microsoft Intune API へのアクセス権を付与する
- ローカル REST クライアントを作成してデータを取得する
REST クライアントを使用して API を承認してアクセスする方法を学習するには、次の手順を使用します。 まず、Postman を使用した汎用 REST クライアントの使用について説明します。 Postman は、API を操作するために一般的に使用されるツールのトラブルシューティングと REST クライアントの開発です。 Postman の詳細については、 Postman サイトを参照してください。 その後、C# コード サンプルを確認できます。 このサンプルでは、クライアントを承認し、API からデータを取得する例を示します。
Azure でネイティブ アプリとしてクライアント アプリを作成する
Azure でネイティブ アプリを作成します。 このネイティブ アプリはクライアント アプリです。 ローカル コンピューターで実行されているクライアントは、ローカル クライアントが資格情報を要求したときに Intune Data Warehouse API を参照します。
- Microsoft Entra 管理センターにサインインします。
- [ Microsoft Entra ID>App Registrations ] を選択して、[ アプリの登録 ] ウィンドウを開きます。
- [ 新しいアプリの登録] を選択します。
- アプリの詳細を入力します。
- 名前の "Intune Data Warehouse クライアント" などのフレンドリ 名を入力します。
- [サポートされているアカウントの種類] で、[この組織のディレクトリ内のアカウントのみ (Microsoft のみ - シングル テナント)] を選択します。
-
リダイレクト URI の URL を入力します。 リダイレクト URI は特定のシナリオによって異なりますが、Postman の使用を計画している場合は、「
https://www.getpostman.com/oauth2/callback
」と入力します。 Microsoft Entra ID への認証時に、クライアント認証ステップのコールバックを使用します。
- [登録] を選択します。
- このアプリの アプリケーション (クライアント) ID を メモします。 ID は次のセクションで使用します。
クライアント アプリに Microsoft Intune API へのアクセス権を付与する
これで、Azure でアプリが定義されました。 ネイティブ アプリから Microsoft Intune API へのアクセス権を付与します。
- Microsoft Entra 管理センターにサインインします。
- [ Microsoft Entra ID>App Registrations ] を選択して、[ アプリの登録 ] ウィンドウを開きます。
- アクセス権を付与する必要があるアプリを選択します。 アプリに Intune Data Warehouse クライアントなどの名前を付けました。
- [API のアクセス許可] を選択します>アクセス許可を追加します。
- Intune API を見つけて選択します。 Microsoft Intune API という名前です。
- [ 委任されたアクセス許可 ] ボックスを選択し、[ Microsoft Intune からデータ ウェアハウス情報を取得 する] ボックスをクリックします。
- [アクセス許可を追加する] をクリックします。
- 必要に応じて、[構成済みのアクセス許可] ウィンドウで [ Microsoft に管理者の同意を付与 する] を選択し、[ はい] を選択します。 これにより、現在のディレクトリ内のすべてのアカウントへのアクセスが許可されます。 これにより、テナント内のすべてのユーザーに対して同意ダイアログ ボックスが表示されなくなります。 詳細については、「 アプリケーションと Microsoft Entra ID の統合」を参照してください。
- [ 証明書 & シークレット>+ 新しいクライアント シークレット ] を選択し、新しいシークレットを生成します。 もう一度アクセスできないため、安全な場所にコピーしてください。
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 エンドポイントを取得できます。
- Microsoft Intune 管理センターにサインインします。
- [レポート]、[データ ウェアハウス] の順に選択して、[データ ウェアハウス] ウィンドウ>開きます。
-
レポート サービスの 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
。
トークンの要求に使用する情報を追加する
まだインストールされていない場合は、Postman をダウンロードします。 Postman をダウンロードするには、「 www.getpostman.com」を参照してください。
Postman を開きます。 HTTP 操作 GET を選択 します。
エンドポイント URL をアドレスに貼り付けます。 次のようになります。
https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0
[承認] タブを選択し、[種類] の一覧から [OAuth 2.0] を選択します。
[ 新しいトークンの構成] セクションまで下にスクロールします。
トークン名に「Bearer」 と入力します。
[許可の種類] として [ 承認コード ] を選択します。
コールバック URL を追加します。 コールバック URL が
https://www.getpostman.com/oauth2/callback
。認証 URL を追加します。 次のようになります。
https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
アクセス トークン URL を追加します。 次のようになります。
https://login.microsoftonline.com/common/oauth2/token
Azure で作成し、
Intune Data Warehouse Client
という名前のネイティブ アプリからクライアント ID を追加します。 次のようになります。88C8527B-59CB-4679-A9C8-324941748BB4
Azure で作成したネイティブ アプリ内から生成した クライアント シークレット を追加します。 次のようになります。
Ksml3dhDJs+jfK1f8Mwc8
[ 新しいアクセス トークンの取得] を選択します。
[Active AD 承認] ページに資格情報を入力します。 Postman のトークンの一覧に、
Bearer
という名前のトークンが含まれるようになりました。[ トークンの使用] を選択します。 ヘッダーの一覧には、Authorization の新しいキー値と
Bearer <your-authorization-token>
値が含まれています。
Postman を使用してエンドポイントに呼び出しを送信する
Intune Data Warehouse からデータを取得する REST クライアント (C#) を作成する
次のサンプルには、単純な REST クライアントが含まれています。 このコードでは、.NET ライブラリの httpClient クラスを使用します。 クライアントが Microsoft Entra ID の資格情報を取得すると、クライアントは GET REST 呼び出しを作成して、Data Warehouse API から日付エンティティを取得します。
注:
GitHub で次のコード サンプルにアクセスできます。 サンプルの最新の変更と更新については、GitHub リポジトリを参照してください。
Microsoft Visual Studio を開きます。
[ ファイル>新しいプロジェクト] を選択します。 [Visual C#] を展開し、[コンソール アプリ (.NET Framework)] を選択します。
プロジェクトに
IntuneDataWarehouseSamples
名前を付け、プロジェクトを保存する場所を参照して、[OK] を選択 します。ソリューション エクスプローラーでソリューションの名前を右クリックし、[ソリューションの NuGet パッケージの管理] を選択します。 [ 参照] を選択し、検索ボックスに「
Microsoft.Identity.Client
」と入力します。注:
Microsoft 認証ライブラリ (MSAL) を使用する必要があります。 詳細については、「Microsoft Authentication Library (MSAL) と Microsoft Graph API を使用するようにアプリケーションを更新する」を参照してください。
パッケージを選択し、[ソリューションのパッケージの管理] で IntuneDataWarehouseSamples プロジェクトを選択し、[ インストール] を選択します。
[ 同意 する] を選択して、NuGet パッケージ ライセンスに同意します。
ソリューション エクスプローラーから
Program.cs
を開きます。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(); } } }
コード サンプルの
TODO
を更新します。Ctrl + F5 キーを押して、デバッグ モードで Intune.DataWarehouseAPIClient クライアントをビルドして実行します。
コンソールの出力を確認します。 出力には、Intune テナントの 日付 エンティティから取得された JSON 形式のデータが含まれます。
次の手順
承認、API URL 構造、OData エンドポイントの詳細については、「 Intune Data Warehouse API を使用する」を参照してください。
また、Intune Data Warehouse データ モデルを参照して、API に含まれるデータ エンティティを見つけることもできます。 詳細については、「 Intune Data Warehouse API データ モデル」を参照してください。