Intune Data Warehouseアプリケーション専用認証

Microsoft Entra ID を使用してアプリケーションを設定し、Intune Data Warehouseに対する認証を行うことができます。 このプロセスは、アプリケーションがユーザー資格情報にアクセスできない Web サイト、アプリ、バックグラウンド プロセスに役立ちます。 次の手順を使用して、OAuth 2.0 を使用してMicrosoft Entra ID でアプリケーションを承認します。

Authorization

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 を使用して、Web アプリに Intune へのアクセス権を付与します。 データ フローは、Web アプリによって開始されます。

  1. Microsoft Intune 管理センターにサインインします。

  2. [すべてのサービス>M365 Microsoft Entra ID>Microsoft Entra IDアプリの登録] を選択>します

  3. [ 新しい登録 ] をクリックして、[ アプリケーションの登録 ] ウィンドウを表示します。

  4. [ アプリケーションの登録 ] ウィンドウで、アプリの詳細を追加します。

  5. [登録] をクリックします。

    注:

    アプリ ウィンドウから アプリケーション (クライアント) ID を コピーして、後で使用します。

キー (パスワード) を作成する

このセクションでは、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をサポートし、コーディング言語として C# を使用するコンソール アプリ (.NET Framework) プロジェクトを作成します。

  1. [ ファイル>] [新しい>プロジェクト ] を選択して、[ 新しいプロジェクト ] ダイアログ ボックスを表示します。

  2. 左側の [Visual C#] を選択して、すべての.NET Framework プロジェクトを表示します。

  3. [コンソール アプリ (.NET Framework)] を選択し、アプリ名を追加し、[OK] クリックしてアプリを作成します。

  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 Authentication Library (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. xml が appSettings 次のように表示されるようにセクションを追加します。

    <?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 Key Vaultの詳細については、「Azure Key Vaultとは」を参照してください。