使用 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. Create 本機 REST 用戶端取得數據

使用下列步驟來瞭解如何使用 REST 用戶端來授權和存取 API。 首先,您將瞭解如何使用Postman的一般 REST 用戶端。 Postman 是一種常用的工具,可針對 REST 用戶端進行疑難解答和開發,以使用 API。 如需Postman的詳細資訊,請參閱 Postman 網站。 然後您可以查看 C# 程式代碼範例。 此範例提供授權用戶端並從 API 取得數據的範例。

在 Azure 中將用戶端應用程式 Create 為原生應用程式

Create Azure 中的原生應用程式。 此原生應用程式是用戶端應用程式。 本機電腦上執行的用戶端會在本機用戶端要求認證時參考 Intune Data Warehouse API。

  1. 登入 Microsoft Entra 系統管理中心
  2. 選擇 [Microsoft Entra ID>][應用程式註冊] 以開啟 [應用程式註冊] 窗格。
  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. 請記下此應用程式 的應用程式 (用戶端) 識別 碼。 您將在下一節中使用識別碼。

將用戶端應用程式存取權授與 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
用戶端識別碼 您已建立,並在 Azure 中建立原生應用程式時記下此資訊。 4184c61a-e324-4f51-83d7-022b6a81b991
用戶端密碼 您已建立,並在 Azure 中建立原生應用程式時記下此資訊。 Ksml3dhDJs+jfK1f8Mwc8
選擇性 (範圍) 您可以將欄位保留空白。

注意:某些 SDK,例如 適用於 Python 的 Microsoft 驗證連結庫 (MSAL) ,可能需要以 雙斜線 定義的範圍 (/) 。

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}

例如, dates 實體看起來像這樣: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

如需詳細資訊,請參閱 Intune Data Warehouse API 端點

進行 REST 呼叫

若要取得 Postman 的新存取令牌,您必須新增 Microsoft Entra 授權 URL、新增用戶端識別碼和客戶端密碼。 Postman 會載入您將在其中輸入認證的授權頁面。

進行呼叫之前,請確認您已將回呼 URL 新增至 Azure 中的應用程式。 回呼 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. 輸入持有人作為 令牌名稱

  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。 看起來應該像這樣:

    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。

Create REST 用戶端 (C#) 從 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

    注意事項

    您必須使用 Microsoft 驗證連結庫 (MSAL) 。 如需詳細資訊,請參閱更新您的應用程式以使用 Microsoft 驗證連結庫 (MSAL) 和 Microsoft 圖形 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 格式數據。

後續步驟

您可以在使用 Intune Data Warehouse API 中找到授權、API URL 結構和 OData 端點的詳細數據。

您也可以參考 Intune Data Warehouse 數據模型來尋找 API 中包含的數據實體。 如需詳細資訊,請參閱 Intune Data Warehouse API 數據模型。