アプリケーションのみの認証を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 アプリによって開始されます。
Microsoft Intune 管理センターにサインインします。
[すべてのサービス>M365 Microsoft Entra ID>Microsoft Entra ID>アプリの登録] を選択します。
[ 新しい登録 ] をクリックして、[ アプリケーションの登録 ] ウィンドウを表示します。
[ アプリケーションの登録 ] ウィンドウで、アプリの詳細を追加します。
- Intune App-Only認証などのアプリ名。
- サポートされているアカウントの種類。
- アプリケーションの リダイレクト URI 。 これは、認証プロセス中にユーザーが自動的に移動する場所です。 彼らは自分が自分と言う人であることを証明する必要があります。 詳細については、「Microsoft Entra IDでのアプリケーション アクセスとシングル サインオンとは」を参照してください。
[登録] をクリックします。
注:
アプリ ウィンドウから アプリケーション (クライアント) ID を コピーして、後で使用します。
キー (パスワード) を作成する
このセクションでは、Microsoft Entra IDアプリのキー値を生成します。
[アプリの登録] ウィンドウで、新しく作成したアプリを選択してアプリ ウィンドウを表示します。
[ 証明書 & シークレット ] を選択して、ウィンドウの上部付近にある [ 証明書] & [シークレット ] ウィンドウを表示します。
[証明書 & シークレット] ウィンドウで [クライアント シークレット] を選択します。
キーの [説明] と [有効期限] 期間を追加します。
[ 追加] をクリックして、アプリケーションのキーを保存して更新します。
生成されたキー値 (base64 でエンコード) をコピーする必要があります。
注:
[ 証明書] & [シークレット ] ウィンドウのままにすると、キーの値は消えます。 後でこのウィンドウからキーを取得することはできません。 後で使用するためにコピーします。
アプリケーションのアクセス許可を付与する
このセクションでは、アプリケーションにアクセス許可を付与します。
- [API のアクセス許可] を選択します>アクセス許可>Intune>アプリケーションのアクセス許可を追加します。
- [get_data_warehouse] オプションを選択します (Microsoft Intuneからデータ ウェアハウス情報を取得します)。
- [アクセス許可を追加する] をクリックします。
- [API アクセスの追加] ウィンドウで [完了] をクリックします。
- [API のアクセス許可] ウィンドウで [管理者の同意を付与する] をクリックし、昇格されたら [はい] をクリックして、このアプリケーションが既に持っている既存のアクセス許可を更新します。
トークンの生成
Visual Studio を使用して、.NET Frameworkをサポートし、コーディング言語として C# を使用するコンソール アプリ (.NET Framework) プロジェクトを作成します。
[ ファイル>New>Project ] を選択して、[ 新しいプロジェクト ] ダイアログ ボックスを表示します。
左側の [Visual C#] を選択して、すべての.NET Framework プロジェクトを表示します。
[コンソール アプリ (.NET Framework)] を選択し、アプリ名を追加し、[OK] をクリックしてアプリを作成します。
ソリューション エクスプローラーで、[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 Authentication Library (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 ファイルを選択して開きます。
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>
一意のアプリ関連の値と一致するように、
appId
、appKey
、tenantDomain
の値を更新します。アプリをビルドします。
注:
追加の実装コードを確認するには、「Intune-Data-Warehouse のコード例」を参照してください。
次の手順
Azure Key Vaultの詳細については、「Azure Key Vaultとは」を参照してください。