Поделиться через


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

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

Необходимые компоненты

Прежде чем продолжить, выполните следующие предварительные требования:

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

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

  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-ADALToken из модуля ADAL.PS, который вы установили ранее, как описано в статье "Установка и настройка пакета SDK MIP".

  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 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. Эти значения предоставляются пакетом SDK MIP в параметре challenge AcquireOAuth2Token():

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

      Visual Studio acquire token sign-in

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

      Visual Studio consent

  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), так как вы будете использовать его в следующем кратком руководстве.

Устранение неполадок

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

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

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]'

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (process 29924) exited with code 0.

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

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

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