Intune Data Warehouse 僅限應用程式驗證
您可以使用 Microsoft Entra ID 設定應用程式,並向 Intune Data Warehouse 進行驗證。 此程式適用於應用程式不應存取使用者認證的網站、應用程式和背景程式。 使用下列步驟,您可以使用 OAuth 2.0 Microsoft Entra ID 授權您的應用程式。
授權
Microsoft Entra ID 使用 OAuth 2.0 來授權存取 Microsoft Entra 租使用者中的 Web 應用程式和 Web API。 本指南說明如何使用 C# 驗證您的應用程式。 OAuth 2.0 授權碼流程說明於 OAuth 2.0 規格的第 4.1 節。 如需詳細資訊,請參閱使用 OAuth 2.0 和 Microsoft Entra ID 授權存取 Web 應用程式。
Azure KeyVault
下列程式會使用私用方法來處理和轉換應用程式密鑰。 這個私用方法已命名為 SecureString。 或者,您可以使用 Azure KeyVault 來儲存應用程式密鑰。 如需詳細資訊,請參閱 金鑰保存庫。
建立 Web 應用程式
在本節中,您會提供想要指向 Intune 之 Web 應用程式的詳細數據。 Web 應用程式是用戶端-伺服器應用程式。 伺服器提供 Web 應用程式,其中包含 UI、內容和功能。 這個類型的應用程式會在 Web 上個別維護。 您可以使用 Intune 將 Web 應用程式存取權授與 Intune。 數據流是由 Web 應用程式起始。
選取 [所有服務>M365 Microsoft Entra ID>Microsoft Entra ID>應用程式註冊。
按兩下 [新增註冊 ] 以顯示 [ 註冊應用程式 ] 窗格。
在 [ 註冊應用程式] 窗格中,新增您的應用程式詳細資料:
- 應用程式名稱,例如 Intune App-Only 驗證。
- 支援的帳戶類型。
- 應用程式的 重新導向 URI 。 這是使用者在驗證程式期間自動巡覽至的位置。 他們必須證明自己是自己所說的身分。 如需詳細資訊,請參閱什麼是應用程式存取和單一登錄與 Microsoft Entra ID?
按一下 [註冊]。
注意事項
從應用程式窗格複製應用程式 (用戶端) 標識 碼以供稍後使用。
建立金鑰 (密碼)
在本節中,Microsoft Entra ID 會為您的應用程式產生密鑰值。
在 [應用程式註冊] 窗格中,選取新建立的應用程式以顯示應用程式窗格。
選取窗格頂端附近的 [ 憑證 & 秘密 ],以顯示 [ 憑證 & 秘密 ] 窗格。
在 [憑證 & 秘密] 窗格上選取 [用戶端秘密]。
新增金鑰 的 [描述 ] 和 [ 到期 ] 期間。
按兩下 [新增 ] 以儲存並更新應用程式的金鑰。
您必須將產生的金鑰值複製 (base64 編碼) 。
注意事項
當您離開 [ 憑證] & 秘密 ] 窗格之後,金鑰值就會消失。 您之後無法從這個窗格擷取金鑰。 複製它以供稍後使用。
授與應用程式許可權
在本節中,您會將許可權授與應用程式。
- 選取 [API 許可權>][新增許可權>Intune>[應用程式許可權]。
- 選擇 [get_data_warehouse] 選項 (從 Microsoft Intune) 取得數據倉儲資訊。
- 按兩下 [新增許可權]。
- 從 [新增 API 存取] 窗格單擊 [完成]。
- 按兩下 [從 API 許可權] 窗格授與系統管理員同意,並在升級時按兩下 [是],以更新此應用程式已經擁有的任何現有許可權。
產生令牌
使用 Visual Studio 建立控制台應用程式 (.NET Framework) 專案,以支援 .NET Framework,並使用 C# 做為程式代碼撰寫語言。
選 取 [檔案>新增>專案] 以顯示 [ 新增專案 ] 對話框。
在左側,選取 [Visual C#] 以顯示所有 .NET Framework 專案。
選取 [主控台應用程式 (.NET Framework) ],新增應用程式名稱,然後按兩下 [確定] 以建立應用程式。
在 方案總管 中,選取 [Program.cs] 以顯示程序代碼。
在 方案總管 中,加入元件
System.Configuration
的參考。在快捷功能表中,選取 [ 新增>專案]。 [ 新增專案 ] 對話框隨即顯示。
在左側的 [ Visual C#] 底下,選取 [ 程序代碼]。
選 取 [類別],將類別的名稱變更為 [IntuneDataWarehouseClass.cs],然後按兩下 [ 新增]。
在 方法中新增
Main
下列程式代碼:var applicationId = ConfigurationManager.AppSettings["appId"].ToString(); SecureString applicationSecret = ConvertToSecureStr(ConfigurationManager.AppSettings["appKey"].ToString()); // Load as SecureString from configuration file or secret store (i.e. Azure KeyVault) var tenantDomain = ConfigurationManager.AppSettings["tenantDomain"].ToString(); var msalContext = new AuthenticationContext($"https://login.windows.net/" + tenantDomain + "/oauth2/token"); AuthenticationResult authResult = msalContext.AcquireTokenAsync( resource: "https://api.manage.microsoft.com/", clientCredential: new ClientCredential( applicationId, new SecureClientSecret(applicationSecret))).Result;
在程式代碼檔案頂端新增下列程式代碼,以新增其他命名空間:
using System.Security; using Microsoft.Identity.Client; using System.Configuration;
注意事項
您必須使用 MICROSOFT 驗證連結庫 (MSAL) 。 如需詳細資訊,請參閱更新您的應用程式以使用 Microsoft 驗證連結庫 (MSAL) 和Microsoft 圖形 API。
在 方法之後
Main
,新增下列私用方法來處理和轉換應用程式密鑰:private static SecureString ConvertToSecureStr(string appkey) { if (appkey == null) throw new ArgumentNullException("AppKey must not be null."); var secureAppKey = new SecureString(); foreach (char c in appkey) secureAppKey.AppendChar(c); secureAppKey.MakeReadOnly(); return secureAppKey; }
在 方案總管 中,以滑鼠右鍵按兩下 [參考],然後選取 [管理 NuGet 套件]。
搜尋 Microsoft.Identity.Client 並安裝相關Microsoft NuGet 套件。
在 [方案總管 選取並開啟App.config 檔案。
新增 區
appSettings
段,讓 xml 如下所示:<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> </startup> <appSettings> <add key="appId" value="App ID created from 'Create a Web App' procedure"/> <add key="appKey" value="Key created from 'Create a key' procedure" /> <add key="tenantDomain" value="contoso.onmicrosoft.com"/> </appSettings> </configuration>
appId
更新、appKey
和tenantDomain
值,以符合您唯一的應用程式相關值。建置您的應用程式。
注意事項
若要查看其他實作程序代碼,請參閱 Intune-Data-Warehouse 程式代碼範例。
後續步驟
若要深入瞭解 Azure 金鑰保存庫,請檢閱什麼是 Azure 金鑰保存庫?