Краткое руководство: Перечисление меток конфиденциальности (C++)

В этом кратком руководстве показано, как использовать пакет SDK для файлов MIP для перечисления меток конфиденциальности, настроенных для вашей организации.

Необходимые условия

Если вы еще не сделали этого, перед продолжением обязательно выполните следующие предварительные требования:

Добавьте логику для перечисления меток конфиденциальности

Добавьте логику для перечисления меток конфиденциальности организации с помощью объекта обработчика файлов.

  1. Откройте решение Visual Studio, созданное в предыдущей статье "Краткое руководство. Инициализация клиентского приложения (C++)".

  2. С помощью обозревателя решений откройте файл .cpp в проекте, который содержит реализацию main() метода. По умолчанию используется то же имя, что и проект, содержащий его, указанный во время создания проекта.

  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 для создания маркеров доступа, запрашиваемых пакетом SDK в реализации AuthDelegateImpl::AcquireOAuth2Token . Сценарий использует командлет Get-MsalToken из модуля MSAL.PS, который вы установили ранее в разделе "Установка и настройка MIP SDK".

  1. Создайте файл скрипта PowerShell (расширение.ps1) и скопируйте и вставьте следующий скрипт в файл:

    • $authority и $resourceUrl обновляются позже в следующем разделе.
    • Обновите $appId и $redirectUri, так чтобы они соответствовали значениям, которые вы указали в регистрации приложения Microsoft Entra.
    $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 Microsoft Entra app registration
    $redirectUri = 'bltest://authorize'              # Redirect URI of the Microsoft Entra app registration
    $scope = $resourceUrl + "/.default"
    $response = Get-MsalToken -ClientId $appId -Authority $authority -RedirectUri $redirectUri -Scopes $scope -Interactive
    $response.AccessToken | clip                     # Copy the access token text to the clipboard
    
  2. Сохраните файл скрипта, чтобы его можно было запустить позже, когда запрашивается клиентское приложение.

Создание и тестирование приложения

Наконец, создайте и протестируйте клиентское приложение.

  1. Используйте F6 (Сборка решения) для построения клиентского приложения. Если у вас нет ошибок сборки, используйте F5 (начать отладку) для запуска приложения.

  2. Если ваш проект успешно проходит сборку и запуск, приложение запрашивает токен доступа каждый раз, когда SDK вызывает метод AcquireOAuth2Token(). Вы можете повторно использовать ранее созданный маркер, если запрашивается несколько раз, а запрошенные значения совпадают.

  3. Чтобы создать маркер доступа для запроса, вернитесь к скрипту PowerShell и выполните следующие действия.

    • Обновите переменные $authority и $resourceUrl. Они должны соответствовать значениям, указанным в выходных данных консоли на шаге 2. Эти значения предоставляются пакетом SDK MIP в параметре challengeAcquireOAuth2Token():

    • Запустите сценарий PowerShell. Командлет Get-MsalToken запускает запрос проверки подлинности Microsoft Entra, аналогичный приведенному ниже примеру. Укажите ту же учетную запись, указанную в выходных данных консоли на шаге 2. После успешного входа токен доступа будет помещен в буфер обмена.

      Получение токена для входа в Visual Studio

    • Кроме того, вам может потребоваться предоставить согласие, чтобы разрешить приложению доступ к API MIP во время выполнения под учетной записью входа. Это происходит, когда регистрация приложения Microsoft Entra не предоставляется предварительно (как описано в разделе "Настройка и настройка пакета SDK MIP") или вы входите с учетной записью из другого клиента (отличного от того, где зарегистрировано приложение). Просто нажмите кнопку "Принять" , чтобы записать свое согласие.

      Согласие 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 . . .
    

    Замечание

    Скопируйте и сохраните идентификатор одной или нескольких меток конфиденциальности (например, f42a3342-8706-4288-bd31-ebb85995028z), так как вы будете использовать его в следующем кратком руководстве.

Troubleshooting

Проблемы во время выполнения приложения C++

Сводка Сообщение об ошибке Решение
Недопустимый токен доступа Произошло исключение... токен доступа неправильный или истек срок его действия?

Сбой вызова API: profile_add_engine_async завершился с: [класс mip::PolicySyncException] Не удалось получить политику, запрос завершился ошибкой с кодом состояния 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.
Метки конфиденциальности не настроены n/a Если проект успешно выполняет сборку, но в окне консоли нет выходных данных, убедитесь, что метки конфиденциальности вашей организации настроены правильно. Дополнительные сведения см. в разделе "Настройка и настройка пакета SDK MIP" в разделе "Определение параметров таксономии меток и защиты".

Дальнейшие шаги

Теперь, когда вы узнали, как вывести список меток конфиденциальности для вашей организации, попробуйте следующее краткое руководство.