共用方式為


Intune Data Warehouse Application-Only 驗證

您可以使用 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 應用程式起始。

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

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

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

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

    • 應用程式名稱,例如 Intune App-Only 驗證
    • 支援的帳戶類型
    • 應用程式的 重新導向 URI 。 這是使用者在驗證程式期間自動導覽的位置。 他們必須證明他們就是他們所說的那個人。 如需詳細資訊,請參閱 什麼是使用 Microsoft Entra ID 存取和單一登入?
  5. 按一下 [註冊]

    注意事項

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

建立金鑰 (密碼)

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

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

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

  3. 選取 [憑證] & [密碼] 窗格上的用戶端密碼

  4. 新增金鑰的 [說明] 和金鑰的 [到期] 持續時間。

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

  6. 您必須將產生的索引鍵值複製 (base64 編碼) 。

    注意事項

    離開 [憑證 & 密碼 ] 窗格之後,索引鍵值就會消失。 您稍後無法從此窗格擷取金鑰。 複製它以供以後使用。

授與應用程式權限

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

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

產生權杖

使用 Visual Studio,建立支援.NET Framework並使用 C# 作為編碼語言的主控台應用程式 (.NET Framework) 專案。

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

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

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

  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) 。 如需詳細資訊,請參閱更新您的應用程式以使用 MSAL) (驗證程式庫Microsoft Microsoft圖形 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. 更新 appIdappKey和 值 tenantDomain ,以符合您唯一的應用程式相關值。

  17. 建置您的應用程式。

    注意事項

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

後續步驟

檢閱什麼是 Azure 金鑰保存庫,以深入瞭解 Azure 金鑰保存庫?