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


Доступ к проверка в пакете SDK Защита информации Microsoft Purview

Принудительное применение прав управления правами на доступ к данным, определенным на портале соответствия, является ответственностью разработчика приложения. Пакет SDK предоставляет API и набор перечислителей для упрощения этих проверка доступа.

В приведенных ниже примерах и таблицах показано, какие сценарии требуют доступа проверка, список прав для проверка и как выполнить проверка.

Список прав и результаты

Полный список прав и описаний использования см. в разделе "Настройка прав использования для Azure Information Protection". В этой статье определяются обязанности разработчика приложений в функциях принудительного применения прав и включенных функций при наличии определенных прав или нет.

Важно!

Это ответственность разработчиков приложений как к проверка, так и к принудительному применению прав. Сбой выполнения проверка может привести к потере данных.

Сценарии

Где и как приложение выполняет проверка доступа, зависит от типа создаваемого приложения. Приложения, обрабатывающие выходные данные полнофайлового файла и не имеющие пользовательского интерфейса, чаще всего используют EXTRACT права или OWNER права. Для приложений с пользовательским интерфейсом требуется большинство детализированных элементов управления, блокировка доступа к пользовательским элементам управления и пути экспорта в приложении. Примеры кода см. в разделе проверка доступа.

Приложения без пользовательского интерфейса

Приложения без пользовательского интерфейса часто являются интерфейсами командной строки или интерфейсами командной строки. При обработке файлов, защищенных Purview Information Protection, необходимо убедиться, что пользователь без правильных прав не может использовать службу или интерфейс командной строки для экспорта файла в незащищенном формате.

Эти приложения должны проверить наличие прав OWNER или EXTRACT . Пользователи с владельцем могут выполнять любую операцию. Пользователи с помощью EXTRACT могут напрямую удалить защиту или сохранить в новом формате, даже если этот формат не поддерживает защиту.

Приложения с пользовательским интерфейсом

Приложения пакета SDK для файлов с пользовательским интерфейсом должны реализовывать элементы управления, ограничивающие доступ к операциям, которые пользователь не может выполнять. Одним из примеров такого приложения является средство просмотра Azure Information Protection. Средство просмотра временно расшифровывает файл и отображает содержимое в окне приложения. Он выполняет детализированный доступ проверка перед отображением документа и отключает элементы пользовательского интерфейса на основе результатов проверка доступа.

Частичный рабочий процесс выполнения проверка доступа может выглядеть следующим образом:

  • Имеет ли пользователь право ВЛАДЕЛЬЦА ? Если да, включите все элементы управления и остановите обработку других прав.
  • Имеет ли пользователь право PRINT ? Если да, включите элемент управления печати. Если нет, отключите элемент управления печати.
  • Имеет ли пользователь право EXPORT ? Если да, включите элементы управления экспортом и элементы пользовательского интерфейса. Если нет, отключите эти элементы.
  • Имеет ли пользователь право EXTRACT ? Если да, включите копирование и снимки экрана. Если нет, отключите эти функции.
  • Правильно ли у пользователя правка ? Если да, включите редактирование и сохранение текущего элемента. В противном случае сделайте элемент только для чтения.

Эти проверка должны выполняться для всех разрешений в списке прав и таблице результатов, за исключением права VIEW. Файл не будет доступен без этого права.

Выполнение проверка доступа

Шаблоны для выполнения проверка доступа аналогичны пакетам SDK для файлов и защиты для C++, .NET и Java.

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

Выполнение проверок доступа в пакете 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);
    }
}

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

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