Intune データ ウェアハウス アプリケーションのみの認証

Azure Active Directory (Azure AD) を使用してアプリケーションを設定し、Intune データ ウェアハウスに対する認証を実行できます。 このプロセスは、設定したアプリケーションにユーザー資格情報へのアクセス権を与えるべきではない Web サイト、アプリ、およびバック グラウンド プロセスで役に立ちます。 次の手順に従い、Azure AD で OAuth 2.0 を使用してアプリケーションを承認します。

承認

Azure Active Directory (Azure AD) では、OAuth 2.0 を使用して Azure AD テナントの Web アプリケーションと Web API へのアクセスを承認できます。 このガイドでは、C# を使用してアプリケーションを認証する方法について説明します。 OAuth 2.0 承認コード フローについては、OAuth 2.0 仕様のセクション 4.1 を参照してください。 詳細については、「OAuth 2.0 と Azure Active Directory を使用した Web アプリケーションへのアクセスの承認」を参照してください。

Azure KeyVault

次のプロセスでは、プライベート メソッドを使用して、アプリ キーの処理および変換を行います。 このプライベート メソッドには SecureString という名前が付けられています。 別の方法として、Azure KeyVault を使用してアプリ キーを格納することも可能です。 詳細については、Key Vaultに関するページを参照してください。

Web アプリの作成

このセクションでは、Intune でポイントする Web アプリについて詳細を説明します。 Web アプリはクライアント/サーバー アプリケーションです。 サーバーから Web アプリが提供されます。これには UI、コンテンツ、および機能が含まれます。 この種のアプリは Web 上で個別に維持されます。 Intune を使用して Web アプリに Intune へのアクセス権を付与します。 データ フローは、Web アプリによって開始されます。

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

  2. [すべてのサービス] > [M365 Azure Active Directory] > [Azure Active Directory] > [アプリの登録] を選択します。

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

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

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

    注意

    後で使用できるように [アプリケーション (クライアント) ID] をアプリ ペインからコピーします。

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

このセクションでは、Azure AD でアプリのキー値を生成します。

  1. [アプリの登録] ペインで、新しく作成したアプリを選択してアプリ ペインを表示します。

  2. ペインの上部にある [証明書とシークレット] を選択して、 [証明書とシークレット] ペインを表示します。

  3. [証明書とシークレット] ペインで [クライアント シークレット] を選択します。

  4. キーの [説明] と、キーの [有効期限] を追加します。

  5. [追加] をクリックして、アプリケーションのキーを保存および更新します。

  6. 生成されたキーの値 (Base64 エンコード) をコピーする必要があります。

    注意

    [証明書とシークレット] ペインから移動すると、キーの値は表示されなくなります。 このペインから後でキーを取得することはできません。 後で使用するためにコピーしておきます。

アプリケーションへのアクセス許可の付与

このセクションでは、アプリケーションにアクセス許可を付与します。

  1. [API のアクセス許可] > [アクセス許可の追加] > [Intune] > [アプリケーションのアクセス許可] を選択します。
  2. get_data_warehouse オプションを選択します (Get data warehouse information from Microsoft Intune(Microsoft Intune からデータ ウェアハウス情報を取得する) )。
  3. [アクセス許可の追加] をクリックします。
  4. [API アクセスの追加] ペインで [完了] をクリックします。
  5. [API のアクセス許可] ペインで [管理者の同意を与える] をクリックし、このアプリケーションの既存のアクセス許可の更新を求められたら [はい] をクリックします。

トークンを生成する

.NET Framework をサポートし、コーディング言語として C# を使用するコンソール アプリ (.NET Framework) プロジェクトを、Visual Studio を使用して作成します。

  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 adalContext = new AuthenticationContext($"https://login.windows.net/" + tenantDomain + "/oauth2/token");
    
         AuthenticationResult authResult = adalContext.AcquireTokenAsync(
             resource: "https://api.manage.microsoft.com/",
             clientCredential: new ClientCredential(
                 applicationId,
                 new SecureClientSecret(applicationSecret))).Result;
    
  10. コード ファイルの先頭に次のコードを追加して、追加の名前空間を追加します。

     using System.Security;
     using Microsoft.IdentityModel.Clients.ActiveDirectory;
     using System.Configuration;
    
  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.IdentityModel.Clients.ActiveDirectory を検索し、関連する 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. 一意のアプリ関連の値に一致するように、appIdappKeytenantDomain の各値を更新します。

  17. アプリを作成します。

    注意

    その他の実装コードについては、Intune データ ウェアハウスのコード例に関するページを参照してください。

次の手順

Azure Key Vault の詳細については、「Azure Key Vault とは」を参照してください。