僅限 Intune 資料倉儲應用程式驗證
您可以使用 Microsoft Entra ID 設定應用程式,並向 Intune 數據倉儲進行驗證。 此程式適用於應用程式不應存取使用者認證的網站、應用程式和背景程式。 使用下列步驟,您可以使用 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 來儲存應用程式密鑰。 如需詳細資訊,請參閱 Key Vault。
建立 Web 應用程式
在本節中,您會提供您想要指向 Intune 之 Web 應用程式的詳細數據。 Web 應用程式是用戶端-伺服器應用程式。 伺服器提供 Web 應用程式,其中包含 UI、內容和功能。 這個類型的應用程式會在 Web 上個別維護。 您可以使用 Intune 將 Intune 的存取權授與 Web 應用程式。 數據流是由 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 [架構) ],新增應用程式名稱,然後按兩下 [ 確定 ] 以建立應用程式。
在 [方案總管] 中,選 取 [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 Graph 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 Key Vault,以深入瞭解 Azure Key Vault?