您可以透過 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>應用程式註冊] 以開啟 [應用程式註冊] 窗格。
- 選取 [新增應用程式註冊]。
- 輸入應用程式詳細資料。
- 輸入易記名稱,例如 [名稱] 的 'Intune Data Warehouse Client'。
- 針對 [支援的帳戶類型] 選取 [僅限此組織目錄中的帳戶] ([僅限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>應用程式註冊] 以開啟 [應用程式註冊] 窗格。
- 選取您需要授與存取權的應用程式。 您已將應用程式命名為 Intune Data Warehouse 用戶端。
- 選取 [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。 | https://www.getpostman.com/oauth2/callback |
| 權杖名稱 | 用來將認證傳遞至 Azure 應用程式的字串。 此程式會產生您的權杖,以便您可以呼叫Data Warehouse API。 | 持單 |
| 驗證網址 | 這是用於驗證的 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) ) 可能需要以 雙斜線 (//) 定義的範圍。 |
範圍 = ['https://api.manage.microsoft.com//.default'] |
| 撥款類型 | 權杖是授權碼。 | 授權碼 |
OData 端點
您還需要端點。 若要取得您的Data Warehouse端點,您將需要自訂摘要URL。 您可以從 [Data Warehouse] 窗格取得 OData 端點。
- 登入 Microsoft Intune 系統管理中心。
- 選取>Data Warehouse 以開啟 Data Warehouse 窗格。
- 複製 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選擇 Authorization (授權) 索引標籤,然後從 Type (類型) 清單中選取 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的原生應用程式新增用戶端識別碼。 它應該看起來像:88C8527B-59CB-4679-A9C8-324941748BB4新增您從您在 Azure 中建立的原生應用程式內產生的 用戶端密碼 。 它應該看起來像:
Ksml3dhDJs+jfK1f8Mwc8選取 [取得新的存取權杖]。
在 Active AD 授權頁面中輸入您的認證。 Postman 中的權杖清單現在包含名為
Bearer的權杖。選取 [使用權杖]。 標頭清單包含 Authorization 的新索引鍵值和值
Bearer <your-authorization-token>。
使用 Postman 將呼叫傳送至端點
(C#) 建立 REST 用戶端,以從 Intune Data Warehouse 取得資料
下列範例包含簡單的 REST 用戶端。 程式碼會使用 .NET 程式庫中的 httpClient 類別。 一旦用戶端取得 Microsoft Entra ID 的認證,用戶端就會建構 GET REST 呼叫,以從 Data Warehouse API 擷取日期實體。
注意事項
您可以在 GitHub 上存取下列程式碼範例。 請參閱 GitHub 存放庫,以取得範例的最新變更和更新。
開啟 Microsoft Visual Studio。
選擇File New Project (檔案>新增專案)。 展開 Visual C#,然後選擇 [主控台應用程式 (.NET Framework) ]。
為專案
IntuneDataWarehouseSamples命名,流覽至您要儲存專案的位置,然後選取 [確定]。以滑鼠右鍵按一下方案總管中的解決方案名稱,然後選取 [管理解決方案的 NuGet 套件]。 選取 [瀏覽],然後在搜尋方塊中輸入。
Microsoft.Identity.Client注意事項
您必須使用 Microsoft 驗證程式庫 (MSAL) 。 如需詳細資訊,請參閱更新您的應用程式以使用 MSAL) (驗證程式庫Microsoft Microsoft圖形 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程式碼範例中的 s。按 Ctrl + F5 以偵錯模式建置並執行 Intune.DataWarehouseAPIClient 用戶端。
檢閱主控台輸出。 輸出包含從 Intune 租用戶中的 dates 實體提取的 JSON 格式資料。
後續步驟
您可以在使用 Intune Data Warehouse API 中找到授權、API URL 結構和 OData 端點的詳細數據。
您也可以參考 Intune Data Warehouse 資料模型,以尋找 API 中包含的資料實體。 如需詳細資訊,請參閱 Intune Data Warehouse API 資料模型。