Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве показано, как использовать пакет SDK для файлов MIP для перечисления меток конфиденциальности, настроенных для вашей организации.
Необходимые условия
Если вы еще не сделали этого, перед продолжением обязательно выполните следующие предварительные требования:
- Пожалуйста, сначала завершите выполнение Краткого руководства: Инициализация клиентского приложения (C++), которое создает начальное решение Visual Studio. В этом кратком руководстве по перечислению меток конфиденциальности используется предыдущий, чтобы создать начальную версию решения.
- При необходимости: ознакомьтесь с понятиями меток классификации .
Добавьте логику для перечисления меток конфиденциальности
Добавьте логику для вывода списка меток конфиденциальности вашей организации с помощью объекта файлового ядра.
Откройте решение Visual Studio, созданное в предыдущей статье "Краткое руководство. Инициализация клиентского приложения (C++)".
В Обозреватель решений откройте файл .cpp в проекте, который содержит реализацию
main()метода. По умолчанию используется то же имя, что и проект, содержащий его, указанный во время создания проекта.Добавьте следующую директиву
usingпослеusing mip::FileEngine;, ближе к началу файла:using std::endl;Ближе к концу тела
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".
Создайте файл скрипта 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- Обновите
Сохраните файл скрипта, чтобы его можно было запустить позже, когда клиентское приложение запрашивает его.
Создание и тестирование приложения
Создайте и протестируйте клиентское приложение.
Используйте F6 (Сборка решения) для построения клиентского приложения. Если у вас нет ошибок сборки, используйте F5 (начать отладку) для запуска приложения.
Если ваш проект успешно собирается и запускается, приложение запрашивает токен доступа каждый раз, когда SDK вызывает метод
AcquireOAuth2Token(). Можно повторно использовать ранее созданный маркер, если приложение запрашивает несколько раз, а запрошенные значения одинаковы.Чтобы создать маркер доступа для запроса, вернитесь к скрипту PowerShell и выполните следующие действия.
Обновите переменные
$authorityи$resourceUrl. Они должны соответствовать значениям, указанным в выходных данных консоли на шаге 2. MIP SDK предоставляет эти значения в параметреchallengeэлементаAcquireOAuth2Token().Запустите сценарий PowerShell. Командлет
Get-MsalTokenзапускает запрос проверки подлинности Microsoft Entra, как показано в следующем примере. Укажите ту же учетную запись, указанную в выходных данных консоли на шаге 2. После успешного входа в систему командлет помещает токен доступа в буфер обмена.Кроме того, может потребоваться дать согласие, чтобы разрешить приложению доступ к API MIP при работе под учётной записью, под которой выполнен вход. Это происходит, когда регистрация приложения Microsoft Entra не предоставляется предварительно (как описано в разделе "Настройка и настройка пакета SDK MIP") или вы входите с учетной записью из другого клиента (отличного от того, где зарегистрировано приложение). Нажмите кнопку "Принять" , чтобы записать свое согласие.
После вставки маркера доступа в приглашение из шага 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" в разделе "Определение параметров таксономии меток и защиты". |
Дальнейшие действия
Теперь, когда вы знаете, как перечислить метки конфиденциальности для вашей организации, попробуйте следующее краткое руководство.
- Ознакомьтесь с примером пакета SDK для MIP для C++ на GitHub.