Краткое руководство: Перечисление меток конфиденциальности (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. MIP SDK предоставляет эти значения в параметре challenge элемента AcquireOAuth2Token().

    • Запустите сценарий 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 завершился с ошибкой: [class mip::PolicySyncException] Не удалось получить политику, запрос завершился ошибкой с кодом состояния HTTP: 401, x-ms-diagnostics: [2000001;reason="Токен OAuth, отправленный с запросом, не может быть проанализирован.";error_category="invalid_token"], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]'

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (процесс 29924) завершился с кодом 0.

Нажмите любую клавишу, чтобы закрыть это окно. . .
Если проект успешно собирается, но вы видите вывод, похожий на тот, что слева, маркер в методе AcquireOAuth2Token(), скорее всего, недействителен или истёк. Вернитесь к созданию скрипта PowerShell для генерации токенов доступа, пересоздайте токен доступа, обновите AcquireOAuth2Token(), и затем пересоберите/перепроверьте. Вы также можете изучить и проверить токен и его утверждения с помощью одностраничного веб-приложения jwt.ms.
Метки конфиденциальности не настроены n/a Если проект успешно выполняет сборку, но выходные данные не отображаются в окне консоли, убедитесь, что метки конфиденциальности вашей организации настроены правильно. Дополнительные сведения см. в разделе "Настройка и настройка пакета SDK MIP" в разделе "Определение параметров таксономии меток и защиты".

Дальнейшие действия

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