Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Принудительное применение прав управления правами на доступ к данным , определенным на портале соответствия , является ответственностью разработчика приложения. Пакет SDK предоставляет API и набор перечислителей для упрощения этих проверок доступа.
В приведенных ниже примерах и таблицах показано, какие сценарии требуют проверки доступа, список прав для проверки и как выполнить проверку.
Список прав и результаты
Полный список прав и описаний использования см. в разделе "Настройка прав использования для Azure Information Protection". В этой статье определяются обязанности разработчика приложений в принудительном обеспечении соблюдения прав и активированных функций при наличии или отсутствии определенных прав.
Это важно
Ответственность разработчиков приложений заключается в том, чтобы проверять и обеспечивать принудительное применение прав. Сбой при проверке может привести к потере данных.
Сценарии
Где и как приложение выполняет проверки доступа, зависит от типа создаваемого приложения. Приложения, обрабатывающие выходные данные всего файла и не имеющие пользовательского интерфейса, чаще всего используют права EXTRACT
или OWNER
. Для приложений с пользовательским интерфейсом требуется большинство детализированных элементов управления, блокировка доступа к пользовательским элементам управления и пути экспорта в приложении. Примеры кода см. в разделе проверки доступа .
Приложения без пользовательского интерфейса
Приложения без пользовательского интерфейса часто являются сервисными или интерфейсами командной строки (CLI). При обработке файлов, защищенных Purview Information Protection , необходимо убедиться, что пользователь без правильных прав не может использовать службу или интерфейс командной строки для экспорта файла в незащищенном формате.
Эти приложения должны проверить наличие прав OWNER или EXTRACT . Пользователи с владельцем могут выполнять любую операцию. Пользователи с EXTRACT могут напрямую удалить защиту или сохранить в новом формате, даже если этот формат не поддерживает защиту.
Приложения с пользовательским интерфейсом
Приложения пакета SDK для файлов с пользовательским интерфейсом должны реализовывать элементы управления, ограничивающие доступ к операциям, которые пользователь не может выполнять. Одним из примеров такого приложения является просмотрщик Azure Information Protection. Средство просмотра временно расшифровывает файл и отображает содержимое в окне приложения. Он выполняет детализированные проверки доступа перед отображением документа и отключает элементы пользовательского интерфейса на основе результатов проверок доступа.
Частичный рабочий процесс выполнения проверок доступа может выглядеть следующим образом:
- Имеет ли пользователь право ВЛАДЕЛЬЦА ? Если да, включите все элементы управления и остановите обработку других прав.
- Имеет ли пользователь право на печать? Если да, включите элемент управления печати. Если нет, отключите элемент управления печати.
- Имеет ли пользователь право EXPORT ? Если да, включите элементы управления экспортом и элементы пользовательского интерфейса. Если нет, отключите эти элементы.
- Есть ли у пользователя право на EXTRACT? Если да, включите копирование и снимки экрана. Если нет, отключите эти функции.
- Есть ли у пользователя право на редактирование? Если да, включите редактирование и сохранение текущего элемента. Если нет, установите элемент только для чтения.
Эти проверки должны выполняться для всех разрешений в списке прав и таблице результатов , за исключением права VIEW . Файл не будет доступен без этого права.
Выполнение проверок доступа
Шаблоны проверки доступа аналогичны пакетам SDK для файлов и защиты для C++, .NET и Java.
В этих примерах кода предполагается, что вы выполнили шаги по инициализации SDK и создали движок и обработчик.
- Краткое руководство. Инициализация клиентского приложения (C++)
- Краткое руководство. Инициализация клиентского приложения (C#)
- Быстрый старт: Инициализация клиентского приложения для SDK защиты (C++)
- Быстрый старт: Инициализация клиентского приложения для защитных SDK (C#)
Выполнение проверок доступа в пакете SDK для файлов с помощью .NET
Этот фрагмент кода предполагает, что файл FileHandler был создан и указывает на допустимый файл.
// Validate that the file referred to by the FileHandler is protected.
if(handler.Protection != null)
{
// Validate that user has rights to remove protection from the file.
if(handler.Protection.AccessCheck(Rights.Extract))
{
// If user has Extract right, remove protection and commit the change. Otherwise, throw exception.
handler.RemoveProtection();
bool result = handler.CommitAsync(outputPath).GetAwaiter().GetResult();
return result;
}
else
{
throw new Microsoft.InformationProtection.Exceptions.AccessDeniedException("User lacks EXPORT right.");
}
}
Выполнение проверок доступа в пакете SDK для защиты с помощью .NET
В этом фрагменте кода предполагается, что созданный ProtectionHandler предназначен для использования.
// Validate that the file referred to by the FileHandler is protected.
if(protectionHandler != null)
{
// Validate that user has rights to remove protection from the file.
if(protectionHandler.AccessCheck(Rights.Print))
{
// If the user has the print right, enable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(true);
}
else
{
// If the user does not have the print right, disable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(false);
}
}
Выполнение проверок доступа в пакете SDK для файлов с помощью C++
Этот фрагмент кода предполагает, что файл FileHandler был создан и указывает на допустимый файл.
// Validate that the file referred to by the FileHandler is protected.
if (fileHandler->GetProtection() != nullptr)
{
if (fileHandler->GetProtection()->AccessCheck(mip::rights::Extract()))
{
auto commitPromise = std::make_shared<std::promise<bool>>();
auto commitFuture = commitPromise->get_future();
fileHandler->RemoveProtection();
fileHandler->CommitAsync(outputFile, commitPromise);
result = commitFuture.get();
}
else
{
throw std::runtime_error("User doesn't have EXTRACT right.");
}
}
Выполнение проверок доступа в пакете SDK для защиты с помощью C++
В этом фрагменте кода предполагается, что ProtectionHandler был создан для потребления.
// Validate that the file referred to by the FileHandler is protected.
if (protectionHandler != nullptr)
{
if (protectionHandler->AccessCheck(mip::rights::Print()))
{
// If the user has the print right, enable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(true);
}
else
{
// If the user does not have the print right, disable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(false);
}
}
Дальнейшие шаги
Теперь, когда у вас есть представление о правильном выполнении проверок доступа и применении прав, связанных с этими проверками, перейдите к основным понятиям обработчика файлов , чтобы узнать больше об удалении защиты из файлов.