僅限 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 應用程式起始。

  1. 登入 Microsoft Intune 系統管理中心

  2. 選取 [所有服務>M365 Microsoft Entra ID>Microsoft Entra ID>應用程式註冊]

  3. 按兩下 [新增註冊 ] 以顯示 [ 註冊應用程式 ] 窗格。

  4. 在 [ 註冊應用程式] 窗格中,新增您的應用程式詳細資料:

  5. 按一下 [註冊]

    注意事項

    從應用程式窗格複製應用程式 (用戶端) 標識 碼以供稍後使用。

建立金鑰 (密碼)

在本節中,Microsoft Entra ID 會為您的應用程式產生密鑰值。

  1. 在 [ 應用程式註冊] 窗格上,選取新建立的應用程式以顯示應用程式窗格。

  2. 選取窗格頂端附近的 [ 憑證 & 秘密 ],以顯示 [ 憑證 & 秘密 ] 窗格。

  3. 在 [憑證 & 秘密] 窗格上選取 [用戶端秘密]。

  4. 新增金鑰 的 [描述 ] 和 [ 到期 ] 期間。

  5. 按兩下 [新增 ] 以儲存並更新應用程式的金鑰。

  6. 您必須將產生的金鑰值複製 (base64 編碼) 。

    注意事項

    當您離開 [ 憑證] & 秘密 ] 窗格之後,金鑰值就會消失。 您之後無法從這個窗格擷取金鑰。 複製它以供稍後使用。

授與應用程式許可權

在本節中,您會將許可權授與應用程式。

  1. 取 [API 許可權>][新增>Intune>應用程式許可權] 許可權
  2. 選擇 [get_data_warehouse ] 選項 (從 Microsoft Intune) 取得數據倉儲資訊
  3. 按兩下 [新增許可權]
  4. 從 [新增 API 存取] 窗格單擊 [完成]。
  5. 按兩下 [從 API 許可權] 窗格授與系統管理員同意,並在升級時按兩下 [],以更新此應用程式已經擁有的任何現有許可權。

產生令牌

使用 Visual Studio 建立控制台應用程式 (.NET Framework) 專案,以支援 .NET Framework,並使用 C# 做為程式代碼撰寫語言。

  1. 取 [檔案>新增>專案] 以顯示 [ 新增專案 ] 對話框。

  2. 在左側,選取 [Visual C#] 以顯示所有 .NET Framework 專案。

  3. 取 [主控台應用程式] (.NET [架構) ],新增應用程式名稱,然後按兩下 [ 確定 ] 以建立應用程式。

  4. [方案總管] 中,選 取 [Program.cs ] 以顯示程序代碼。

  5. 在 [方案總管] 中,新增元件 System.Configuration的參考。

  6. 在快捷功能表中,選取 [ 新增>專案]。 [ 新增專案 ] 對話框隨即顯示。

  7. 在左側的 [ Visual C#] 底下,選取 [ 程序代碼]

  8. 取 [類別],將類別的名稱變更為 [IntuneDataWarehouseClass.cs],然後按兩下 [ 新增]

  9. 在 方法中新增 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;
    
  10. 在程式代碼檔案頂端新增下列程式代碼,以新增其他命名空間:

     using System.Security;
     using Microsoft.Identity.Client;
     using System.Configuration;
    

    注意事項

    您必須使用 MICROSOFT 驗證連結庫 (MSAL) 。 如需詳細資訊,請 參閱更新您的應用程式以使用 Microsoft 驗證連結庫 (MSAL) 和 Microsoft Graph API

  11. 在 方法之後 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;
    }
    
  12. 在 [ 方案總管] 中,以滑鼠右鍵按兩下 [ 參考],然後選取 [ 管理 NuGet 套件]

  13. 搜尋 Microsoft.Identity.Client 並安裝相關Microsoft NuGet 套件。

  14. [方案總管] 中 ,選取並開 啟App.config 檔案。

  15. 新增 區 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>
    
  16. appId更新、 appKeytenantDomain 值,以符合您唯一的應用程式相關值。

  17. 建置您的應用程式。

    注意事項

    若要查看其他實作程序代碼,請參閱 Intune-Data-Warehouse 程式代碼範例

後續步驟

檢閱什麼是 Azure Key Vault,以深入瞭解 Azure Key Vault?