このクイックスタートでは、実行時にポリシー SDK の MIP SDK .NET ラッパーによって使用されるクライアント初期化パターンを実装する方法について説明します。
注
MIP .NET Policy SDK を使用するすべてのクライアント アプリケーションには、このクイック スタートの手順が必要です。 開始する前に 、MIP SDK の設定と構成 を完了します。
前提条件
まだ行っていない場合は、次の手順を実行してください。
- Microsoft Information Protection (MIP) SDK のセットアップと構成。 このクイック スタートの前に、次の手順を完了してください。
- 必要 に応じて:
Visual Studio ソリューションとプロジェクトを作成する
Visual Studio 2022 以降を開き、[ ファイル ] メニューの [ 新規作成]、[ プロジェクト] の順に選択します。
- コンソール アプリ (.NET 8 以降を対象とする) を選択します。
- プロジェクトの 名前 と 場所 を指定します。
MIP Policy SDK と MSAL の NuGet パッケージを追加します。
- ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[NuGet パッケージの管理...] を選択します。
- [参照] を選択し、検索ボックスに「Microsoft.InformationProtection」と入力して、Microsoft.InformationProtection.Policy パッケージをインストールします。
- Microsoft.Identity.Client を検索してインストールします。
認証デリゲートを実装する
AuthDelegateImplementationという名前の新しいクラスを追加します。using Microsoft.InformationProtection; using Microsoft.Identity.Client; public class AuthDelegateImplementation : IAuthDelegate { private ApplicationInfo _appInfo; private IPublicClientApplication _app; public AuthDelegateImplementation(ApplicationInfo appInfo) { _appInfo = appInfo; } public string AcquireToken(Identity identity, string authority, string resource, string claims) { var authorityUri = new Uri(authority); authority = string.Format("https://{0}/{1}", authorityUri.Host, "<Tenant-GUID>"); _app = PublicClientApplicationBuilder .Create(_appInfo.ApplicationId) .WithAuthority(authority) .WithDefaultRedirectUri() .Build(); var accounts = _app.GetAccountsAsync().GetAwaiter().GetResult(); string[] scopes = new string[] { resource.EndsWith('/') ? $"{resource}.default" : $"{resource}/.default" }; var result = _app.AcquireTokenInteractive(scopes) .WithAccount(accounts.FirstOrDefault()) .WithPrompt(Prompt.SelectAccount) .ExecuteAsync() .ConfigureAwait(false) .GetAwaiter() .GetResult(); return result.AccessToken; } }
同意デリゲートを実装する
ConsentDelegateImplementationという名前の新しいクラスを追加します。using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
ポリシー プロファイルとエンジンを初期化する
Program.csを更新してMipContextを作成し、PolicyProfileを読み込み、PolicyEngineを追加します。using Microsoft.InformationProtection; using Microsoft.InformationProtection.Policy; // Application info for Microsoft Entra app registration ApplicationInfo appInfo = new ApplicationInfo() { ApplicationId = "<application-id>", ApplicationName = "MIP SDK Policy Quickstart", ApplicationVersion = "1.0" }; // Create MipConfiguration and MipContext var mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Trace, false, CacheStorageType.OnDiskEncrypted); var mipContext = MIP.CreateMipContext(mipConfiguration); // Create auth and consent delegates var authDelegate = new AuthDelegateImplementation(appInfo); var consentDelegate = new ConsentDelegateImplementation(); // Create PolicyProfile var profileSettings = new PolicyProfileSettings(mipContext, CacheStorageType.OnDiskEncrypted); var profile = MIP.LoadPolicyProfileAsync(profileSettings).GetAwaiter().GetResult(); // Create PolicyEngine var engineSettings = new PolicyEngineSettings( id: "<user@contoso.com>", authDelegate: authDelegate, clientData: "", locale: "en-US") { Identity = new Identity("<user@contoso.com>") }; var engine = profile.AddEngineAsync(engineSettings).GetAwaiter().GetResult(); Console.WriteLine("Policy engine loaded successfully.");ビルドとテスト。 アプリケーションは、ポリシー サービスを初期化して接続する必要があります。