您可以使用 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、內容和功能。 這種類型的應用程式在網路上單獨維護。 您可以使用 Intune 來授與 Web 應用程式對 Intune 的存取權。 資料流程是由 Web 應用程式起始。
選取 [所有服務>] [M365 Microsoft Entra ID] [Microsoft Entra ID>>] [應用程式註冊]。
按一下 [新增註冊 ] 以顯示 [註冊應用程式] 窗格。
在 [註冊應用程式] 窗格中,新增您的應用程式詳細資料:
- 應用程式名稱,例如 Intune App-Only 驗證。
- 支援的帳戶類型。
- 應用程式的 重新導向 URI 。 這是使用者在驗證程式期間自動導覽的位置。 他們必須證明他們就是他們所說的那個人。 如需詳細資訊,請參閱 什麼是使用 Microsoft Entra ID 存取和單一登入?
按一下 [註冊]。
注意事項
從應用程式窗格複製 應用程式 (用戶端) 識別碼 ,以便稍後使用。
建立金鑰 (密碼)
在本節中,Microsoft Entra ID 會為您的應用程式產生索引鍵值。
在 [應用程式註冊] 窗格中,選取您新建立的應用程式以顯示應用程式窗格。
選取窗格頂端附近的 [憑證 & 秘密 ] 以顯示 [憑證 & 秘密 ] 窗格。
選取 [憑證] & [密碼] 窗格上的用戶端密碼。
新增金鑰的 [說明] 和金鑰的 [到期] 持續時間。
按一下 新增 以儲存並更新應用程式的金鑰。
您必須將產生的索引鍵值複製 (base64 編碼) 。
注意事項
離開 [憑證 & 密碼 ] 窗格之後,索引鍵值就會消失。 您稍後無法從此窗格擷取金鑰。 複製它以供以後使用。
授與應用程式權限
在本節中,您會將權限授與應用程式。
- 選取 [API 許可權>] [新增許可權>] [Intune>應用程式許可權]。
- 選擇 [從 Intune) 取得數據倉儲資訊 (get_data_warehouse Microsoft 選項。
- 按一下新增權限。
- 按一下 新增 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 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 金鑰保存庫?