クイックスタート: テンプレートを一覧表示する (C#)

このクイックスタートでは、MIP Protection SDK を使用して、ユーザーが利用できる保護テンプレートを一覧表示する方法について説明します。

前提条件

先に進む前に、次の前提条件をまだ実行していない場合は完了してください。

保護テンプレートを一覧表示するためのロジックを追加する

Protection エンジン オブジェクトを使用して、ユーザーが利用できる保護テンプレートを一覧表示するロジックを追加します。

  1. 先行する「クイックスタート: Protection SDK 向けのクライアント アプリケーションの初期化 (C#)」の記事で作成した Visual Studio ソリューションを開きます。

  2. ソリューション エクスプローラーを使用して、Main() メソッドの実装を含むプロジェクトの .cs ファイルを開きます。 既定の名前は、それが含まれるプロジェクトと同じであり、プロジェクトの作成時に指定したものです。

  3. Main() 本体の末尾付近の Main() 関数のアプリケーションのシャットダウン セクションの上 (前のクイックスタートを終えた場所) に、次のコードを挿入します。

// List protection templates using protectionEngine and display the list

var templates=protectionEngine.GetTemplates();

for(int i = 0; i < templates.Count; i++)
{
    Console.WriteLine("{0}: {1}", i.ToString(), templates[i].Name + " : " + templates[i].Id);
}

Console.WriteLine("Press a key to continue...");

アプリケーションのビルドとテスト

最後に、クライアント アプリケーションをビルドしてテストします。

  1. Ctrl + Shift + B キー ([ソリューションのビルド]) を使用して、クライアント アプリケーションをビルドします。 ビルド エラーがない場合は、F5 キー ([デバッグの開始]) を使用してアプリケーションを実行します。

  2. プロジェクトがビルドされ、正常に実行された場合、SDK から AcquireToken() メソッドを呼び出すたびに、アプリケーションで ADAL による認証を求めるメッセージが表示される "場合があります"。 キャッシュされた資格情報が既に存在する場合は、サインインするように求められてラベルの一覧が表示されることはありません。

    Visual Studio acquire token sign-in

    • サインイン アカウントでの実行中に、アプリケーションで MIP API にアクセスできるようにすることについての同意を求められることもあります。 これは、Microsoft Entra アプリケーションの登録が (「MIP SDK のセットアップと構成」での概説どおりに) 事前に同意されていないか、別の (アプリケーションの登録先とは異なる) テナントのアカウントでサインインしているときに発生します。 [同意] をクリックして、同意を記録します。

      Visual Studio consent

  3. 認証後、次の例に示したような認証済みユーザーの保護テンプレートがコンソール出力に表示されます。

0: Confidential \ All Employees : a74f5027-f3e3-4c55-abcd-74c2ee41b607
1: Highly Confidential \ All Employees : bb7ed207-046a-4caf-9826-647cff56b990
2: Confidential : 174bc02a-6e22-4cf2-9309-cb3d47142b05
3: Contoso Employees Only : 667466bf-a01b-4b0a-8bbf-a79a3d96f720
Press a key to continue.

Note

1 つ以上の保護テンプレートの ID (bb7ed207-046a-4caf-9826-647cff56b990 など) をコピーして保存しておいてください。次のクイックスタートで使用します。

トラブルシューティング

C# アプリケーションの実行中の問題

まとめ エラー メッセージ 解決策
不正なアクセス トークン An exception occurred... is the access token incorrect/expired? (例外が発生しました... アクセス トークンが正しくないか、有効期限が切れている可能性があります)

Failed API call: profile_add_engine_async Failed with: [class mip::PolicySyncException] Failed acquiring policy, Request failed with http status code: 401, x-ms-diagnostics: [2000001;reason="OAuth token submitted with the request cannot be parsed.";error_category="invalid_token"], correlationId:[35bc0023-3727-4eff-8062-000006d5d672]' (API 呼び出しに失敗しました: profile_add_engine_async 失敗した原因: [class mip::PolicySyncException] ポリシーの取得中にエラーが発生しました。要求が次の http 状態コードで失敗しました: 401、x-ms-diagnostics: [2000001;理由="要求と共に送信された OAuth トークンを解析できません。";error_category="invalid_token"], correlationId:[35bc0023-3727-4eff-8062-000006d5d672]')

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (process 29924) exited with code 0. (C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (process 29924) がコード 0 で終了しました。)

Press any key to close this window. (このウィンドウを閉じるには、任意のキーを押してください) 。 。
プロジェクトは正常にビルドされたが、左記のような出力が表示された場合は、おそらく、AcquireOAuth2Token() メソッドのトークンが無効であるか、有効期限が切れています。 「アプリケーションをビルドしてテストする」に戻ってアクセス トークンを再生成し、もう一度 AcquireOAuth2Token() を更新してから、リビルドと再テストを行います。 jwt.ms シングルページ Web アプリケーションを使用して、トークンとそのクレームを確認および検証することもできます。

次のステップ

認証済みユーザーが利用できる保護テンプレートを一覧表示する方法について学習しました。次のクイックスタートにお進みください。