您可以使用 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 規格的 4.1 節說明了 OAuth 2.0 授權碼流程。 如需詳細資訊,請參閱使用 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 IDMicrosoft>Entra ID>應用程式註冊。
按一下 [新增註冊 ] 以顯示 [註冊應用程式] 窗格。
在 [註冊應用程式 ] 窗格中,新增您的應用程式詳細資料:
- 應用程式名稱,例如 Intune App-Only Auth。
- 支援的 帳戶類型。
- 應用程式的 重新導向 URI 。 這是使用者在驗證程序期間自動瀏覽到的位置。 他們被要求證明他們是他們所說的人。 如需詳細資訊,請參閱什麼是使用 Microsoft Entra ID 存取應用程式和單一登入?
按一下 [註冊]。
注意事項
從應用程式窗格複製 應用程式 (用戶端) 識別碼 ,以便稍後使用。
建立金鑰 (密碼)
在本節中,Microsoft Entra ID 會為您的應用程式產生機碼值。
在 [應用程式註冊] 窗格上,選取新建立的應用程式以顯示 [應用程式] 窗格。
選取窗格頂端附近的 [憑證 & 秘密 ],以顯示 [ 憑證 & 秘密] 窗格。
選取 [憑證 & 密碼] 窗格上的 [用戶端密碼]。
新增金鑰的 Description 和 Expires 持續時間。
按一下 [新增 ] 以儲存並更新應用程式的金鑰。
您必須將產生的機碼值複製 (base64 編碼) 。
注意事項
離開 [憑證 & 秘密] 窗格後,機碼值就會消失。 您之後無法從此窗格擷取金鑰。 請複製它以供日後使用。
授與應用程式權限
在本節中,您會授與應用程式權限。
- 選取 API 權限>新增權限>IntuneApplication>權限。
- 選擇 [從Microsoft Intune) 取得資料倉儲資訊 (get_data_warehouse選項。
- 按一下 [新增權限]。
- 按一下 [新增 API 存取] 窗格中的 [完成]。
- 從 [API 權限] 窗格中按一下 [授與系統管理員同意],然後在升級時按一下 [是],以更新此應用程式已擁有的任何現有權限。
產生權杖
使用 Visual Studio,建立支援.NET Framework並使用 C# 做為編碼語言的主控台應用程式 (.NET Framework) 專案。
選取 [ 檔案>]、[新增>專案 ] 以顯示 [新增專案 ] 對話方塊。
在左側,選取 [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) 。 如需詳細資訊,請參閱更新您的應用程式以使用 MSAL) 和Microsoft圖形 API (Microsoft 驗證程式庫。
在方法之後
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>更新 、
appKey和tenantDomain值,appId以符合您唯一的應用程式相關值。建置您的應用程式。
注意事項
若要查看其他實作程式碼,請參閱 Intune-Data-Warehouse 程式碼範例。
後續步驟
若要深入了解Azure 金鑰保存庫,請參閱什麼是 Azure 金鑰保存庫?