您可以透過 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 是疑難排解和開發 REST 用戶端以使用 API 的常用工具。 如需有關 Postman 的詳細資訊,請參閱 Postman 網站。 然後可以查看 C# 程式碼範例。 此範例提供授權用戶端以及從 API 取得資料的範例。
在 Azure 中將用戶端應用程式建立為原生應用程式
在 Azure 中建立原生應用程式。 此原生應用程式是用戶端應用程式。 當本機用戶端要求認證時,在本機電腦上執行的用戶端會參考 Intune Data Warehouse API。
- 登入 Microsoft Entra 系統管理中心。
- 選擇 [Microsoft Entra ID>] App 註冊以開啟 [應用程式註冊] 窗格。
- 選取 新增應用程式註冊。
- 輸入應用程式詳細資料。
- 輸入易記名稱,例如名稱做為 'Intune Data Warehouse Client'。
- 針對支援的帳戶類型,選取 [僅限此組織目錄中的帳戶] ([僅限Microsoft - 單一租用戶]) 。
- 輸入 重新導向 URI 的 URL。 重新導向 URI 將視具體案例而定,但如果您打算使用 Postman,請輸入
https://www.getpostman.com/oauth2/callback。 向 Microsoft Entra ID 驗證時,您將使用用戶端驗證步驟的回呼。
- 選取 [登錄]。
- 記下此應用程式的 應用程式 (用戶端) 識別碼 。 您將在下一節中使用該識別碼。
授與用戶端應用程式 Microsoft Intune API 的存取權
您現在已在 Azure 中定義應用程式。 授與原生應用程式對 Microsoft Intune API 的存取權。
- 登入 Microsoft Entra 系統管理中心。
- 選擇 [Microsoft Entra ID>] App 註冊以開啟 [應用程式註冊] 窗格。
- 選取您需要授與存取權的應用程式。 您將應用程式命名為例如 Intune Data Warehouse Client。
- 選取 API 權限>新增權限。
- 尋找並選取 Intune API。 它名為 Microsoft Intune API。
- 選取 [委派權限] 方塊,然後按一下 [從 Microsoft Intune 取得資料倉儲資訊] 方塊。
- 按一下 [新增權限]。
- 或者,在 [ 已設定的權限 ] 窗格中選取 [ 授與 Microsoft 系統管理員同意 ],然後選取 [是]。 這會授與目前目錄中所有帳戶的存取權。 這可防止租用戶中的每個使用者都顯示同意對話方塊。 如需詳細資訊,請參閱整合應用程式與 Microsoft Entra ID。
- 選取 [憑證] & [密碼>] + [新增用戶端密碼],然後產生新的密碼。 請務必將其複製到安全的地方,因為您將無法再次訪問它。
使用 Postman 從 Microsoft Intune API 取得資料
您可以使用 Intune Data Warehouse API 搭配一般 REST 用戶端,例如 Postman。 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,例如 Microsoft 驗證程式庫 (適用於 Python 的 MSAL) ,可能需要以 雙斜線 (//) 定義範圍。 |
範圍 = ['https://api.manage.microsoft.com//.default'] |
| 補助類型 | 權杖是授權碼。 | 授權碼 |
OData 端點
您也需要端點。 若要取得您的 Data Warehouse 端點,您需要自訂摘要 URL。 您可以從 [Data Warehouse] 窗格取得 OData 端點。
- 登入 Microsoft Intune 系統管理中心。
- 選取 報表>資料倉儲 以開啟 Data Warehouse 窗格。
- 複製 Reporting Service 的 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、新增您的用戶端識別碼和用戶端密碼。 Postman 將載入授權頁面,您將在其中輸入您的認證。
在進行呼叫之前,請確認您已將回呼 URL 新增至 Azure 中的應用程式。 回呼 URL 為 https://www.getpostman.com/oauth2/callback。
新增用來要求權杖的資訊
如果您尚未安裝 Postman,請下載 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]。
向下捲動至 [設定新權杖 ] 區段。
權杖名稱的 Type 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為 的原生應用程式新增用戶端識別碼。 它看起來應該像這樣:88C8527B-59CB-4679-A9C8-324941748BB4新增您在 Azure 中建立之原生應用程式中產生的用戶端密碼。 它看起來應該像這樣:
Ksml3dhDJs+jfK1f8Mwc8選取 [取得新的存取權杖]。
在 Active AD 授權頁面中輸入您的認證。 Postman 中的權杖清單現在包含名為
Bearer的權杖。選取 [ 使用權杖]。 標頭清單包含 Authorization 的新機碼值和值
Bearer <your-authorization-token>。
使用 Postman 將通話傳送至端點
建立 REST 用戶端 (C#) 以從Intune Data Warehouse取得資料
下列範例包含簡單的 REST 用戶端。 該程式碼使用 .NET 程式庫中的 httpClient 類別。 用戶端取得 Microsoft Entra ID 認證後,用戶端會建構 GET REST 呼叫,以從 Data Warehouse API 擷取日期實體。
注意事項
您可以在 GitHub 上存取下列程式碼範例。 請參閱 GitHub 存放庫,以取得範例的最新變更和更新。
開啟 Microsoft Visual Studio。
選擇 [ 檔案>] [新增專案]。 展開 [Visual C#],然後選擇 [主控台應用程式 (.NET Framework) ]。
為專案
IntuneDataWarehouseSamples命名,瀏覽至您要儲存專案的位置,然後選取 [確定]。以滑鼠右鍵按一下方案總管中的解決方案名稱,然後選取 [管理解決方案的 NuGet 套件]。 選取 [瀏覽],然後在搜尋方塊中輸入
Microsoft.Identity.Client。注意事項
您必須使用 Microsoft 驗證程式庫 (MSAL) 。 如需詳細資訊,請參閱更新您的應用程式以使用 MSAL) 和Microsoft圖形 API (Microsoft 驗證程式庫。
選擇套件,在 [管理解決方案的套件] 底下選取 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程式碼範例中的 s。按 Ctrl + F5 以建立並執行 Intune。處於偵錯模式的 DataWarehouseAPIClient 用戶端。
檢閱主控台輸出。 輸出包含從 Intune 租用戶中的日期實體提取的 JSON 格式資料。
後續步驟
您可以在使用 Intune Data Warehouse API 中找到授權、API URL 結構和 OData 端點的詳細資料。
您也可以參考 Intune Data Warehouse 資料模型,以尋找 API 中包含的資料實體。 如需詳細資訊,請參閱 Intune Data Warehouse API 資料模型。