次の方法で共有


クイックスタート: 秘密度ラベルを一覧表示する (C++)

このクイック スタートでは、MIP ファイル SDK を使用して、組織用に構成された秘密度ラベルを一覧表示する方法について説明します。

[前提条件]

まだ行っていない場合は、続行する前に次の前提条件を満たしていることを確認してください。

秘密度ラベルを一覧表示するロジックを追加する

ファイル エンジン オブジェクトを使用して、組織の秘密度ラベルを一覧表示するロジックを追加します。

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

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

  3. usingの後、ファイルの先頭付近に次のusing mip::FileEngine; ディレクティブを追加します。

    using std::endl;
    
  4. main() 本体の末尾付近の最後の } ブロックの右中かっこ catch の下、return 0; の上 (先行するクイックスタートで終えた場所) に次のコードを挿入します。

    // List sensitivity labels
    cout << "\nSensitivity labels for your organization:\n";
    auto labels = engine->ListSensitivityLabels();
    for (const auto& label : labels)
    {
       cout << label->GetName() << " : " << label->GetId() << endl;
    
       for (const auto& child : label->GetChildren())
       {
         cout << "->  " << child->GetName() << " : " << child->GetId() << endl;
       }
    }
    system("pause");
    

アクセス トークンを生成する PowerShell スクリプトを作成する

次の PowerShell スクリプトを使用してアクセス トークンを生成します。アクセス トークンは、 AuthDelegateImpl::AcquireOAuth2Token 実装で SDK によって要求されます。 このスクリプトでは、前にインストールした ADAL.PS モジュールの "MIP SDK のセットアップと構成" の Get-ADALToken コマンドレットを使用します。

  1. PowerShell スクリプト ファイル (拡張子.ps1) を作成し、次のスクリプトをコピーしてファイルに貼り付けます。

    • $authority$resourceUrl は、後のセクションで更新されます。
    • Microsoft Entra アプリの登録で指定した値と一致するように、 $appId$redirectUriを更新します。
    $authority = '<authority-url>'                   # Specified when SDK calls AcquireOAuth2Token()
    $resourceUrl = '<resource-url>'                  # Specified when SDK calls AcquireOAuth2Token()
    $appId = '0edbblll-8773-44de-b87c-b8c6276d41eb'  # App ID of the Azure AD app registration
    $redirectUri = 'bltest://authorize'              # Redirect URI of the Azure AD app registration
    $response = Get-ADALToken -Resource $resourceUrl -ClientId $appId -RedirectUri $redirectUri -Authority $authority -PromptBehavior:RefreshSession
    $response.AccessToken | clip                     # Copy the access token text to the clipboard
    
  2. 後でクライアント アプリケーションから要求されたときに実行できるように、スクリプト ファイルを保存します。

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

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

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

  2. プロジェクトが正常にビルドされて実行されると、SDK が AcquireOAuth2Token() メソッドを呼び出すたびに、アプリケーションによってアクセス トークンの入力が求められます。 複数回プロンプトが表示され、要求された値が同じである場合は、以前に生成されたトークンを再利用できます。

  3. プロンプトのアクセス トークンを生成するには、PowerShell スクリプトに戻り、次の操作を行います。

    • $authority変数と$resourceUrl変数を更新します。 これらは、手順 2 のコンソール出力で指定された値と一致する必要があります。 これらの値は、の パラメーターで MIP SDK によって提供されます。

    • PowerShell スクリプトを実行します。 Get-ADALToken コマンドレットは、次の例のように Microsoft Entra 認証プロンプトをトリガーします。 手順 2 のコンソール出力で指定したのと同じアカウントを指定します。 サインインに成功すると、アクセス トークンがクリップボードに配置されます。

      Visual Studio でトークン サインインを取得する

    • サインイン アカウントで実行中に、アプリケーションが MIP API にアクセスできるようにするために、同意が必要になる場合もあります。 これは、Microsoft Entra アプリケーションの登録が事前に同意されていない場合 (「MIP SDK のセットアップと構成」で説明されているように)、または別のテナント (アプリケーションが登録されているテナント以外) のアカウントでサインインしている場合に発生します。 同意を記録するには、[ 承諾 ] をクリックするだけです。

      Visual Studio の同意

  4. 手順 2 のプロンプトにアクセス トークンを貼り付けた後、次の例のように、コンソール出力に秘密度ラベルが表示されます。

    Non-Business : 87ba5c36-17cf-14793-bbc2-bd5b3a9f95cz
    Public : 83867195-f2b8-2ac2-b0b6-6bb73cb33afz
    General : f42a3342-8706-4288-bd31-ebb85995028z
    Confidential : 074e457c-5848-4542-9a6f-34a182080e7z
    Highly Confidential : f55c2dea-db0f-47cd-8520-a52e1590fb6z
    
    Press any key to continue . . .
    

    次のクイック スタートで使用するように、1 つ以上の秘密度ラベル ( f42a3342-8706-4288-bd31-ebb85995028z など) の ID をコピーして保存します。

トラブルシューティング

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

概要 エラーメッセージ 解決策
不正なアクセス トークン 例外が発生しました...アクセス トークンが正しくないか、有効期限が切れていますか?

失敗した API 呼び出し: profile_add_engine_async失敗しました。[class mip::P olicySyncException] ポリシーの取得に失敗しました。要求は http 状態コード 401、x-ms-diagnostics: [2000001; で失敗しました。reason="要求と共に送信された OAuth トークンは解析できません。"error_category="invalid_token"], correlationId:[35bc0023-3727-4eff-8062-000006d5d672]'

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (プロセス 29924) がコード 0 で終了しました。

このウィンドウを閉じるには、任意のキーを押します。 . .
プロジェクトが正常にビルドされていても、左側のような出力が表示される場合は、 AcquireOAuth2Token() メソッドに無効なトークンまたは期限切れのトークンが含まれている可能性があります。 PowerShell スクリプトの作成に戻り、アクセス トークンを生成してアクセス トークンを再生成し、AcquireOAuth2Token()をもう一度更新し、再構築/再テストします。 jwt.ms シングルページ Web アプリケーションを使用して、トークンとその要求を調べて確認することもできます。
感度ラベルが設定されていない n/a プロジェクトが正常にビルドされていても、コンソール ウィンドウに出力がない場合は、組織の秘密度ラベルが正しく構成されていることを確認してください。 詳細については、「ラベル分類と保護設定の定義」の「 MIP SDK のセットアップと構成」を参照してください。

次のステップ

組織の秘密度ラベルを一覧表示する方法を学習したので、次のクイック スタートをお試しください。