Управление меткой конфиденциальности сообщения или встречи в режиме создания

Совместная работа на рабочем месте осуществляется не только внутри организации, но и распространяется на внешних партнеров. При совместном использовании информации за пределами сети организации важно определить меры по предотвращению потери данных и принудительному применению политик соответствия. Защита информации Microsoft Purview помогает реализовать решения для классификации и защиты конфиденциальной информации. Использование меток конфиденциальности в Outlook — это возможность, настроив ее для защиты данных.

Api JavaScript для Office можно использовать для реализации решений меток конфиденциальности в проектах надстроек Outlook и поддержки следующих сценариев.

  • Автоматически применять метки конфиденциальности к определенным сообщениям и встречам во время их создания, чтобы пользователи могли сосредоточиться на своей работе.
  • Ограничьте дополнительные действия, если к сообщению или встрече применяется определенная метка конфиденциальности, например запретить пользователям добавлять в сообщение внешних получателей.
  • Добавьте верхний или нижний колонтитул в сообщение или встречу на основе метки конфиденциальности в соответствии с бизнес-политиками и юридическими политиками.

Примечание.

Поддержка функции метки конфиденциальности появилась в наборе требований 1.13. Сведения о поддержке этой функции см. в разделе Поддерживаемые клиенты и платформы.

Предварительные требования

Чтобы реализовать функцию метки конфиденциальности в надстройке, у вас должна быть Microsoft 365 E5 подписка. Вы можете получить подписку на Microsoft 365 E5 разработчика в рамках программы microsoft 365 для разработчиков. Дополнительные сведения см. в разделе Вопросы и ответы. Кроме того, вы можете зарегистрироваться для получения бесплатной пробной версии на 1 месяц или приобрести план Microsoft 365.

Поддерживаемые клиенты и платформы

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

Клиент Exchange Online
Windows
Версия 2304 (сборка 16327.20248) или более поздняя
Поддерживается
Mac
Версия 16.77.816.0 или более поздняя
Поддерживается
Веб-браузер (современный пользовательский интерфейс)

новый Outlook в Windows (предварительная версия)
Поддерживается
iOS Неприменимо
Android Неприменимо

Настройка манифеста

Чтобы использовать функцию конфиденциальности в проекте надстройки Outlook, необходимо настроить разрешение на чтение и запись элемента в манифесте надстройки.

  • Унифицированный манифест для Microsoft 365 (предварительная версия): в массиве authorization.permissions.resourceSpecific задайте для свойства name объекта значение MailboxItem.ReadWrite.User.
  • XML-манифест. Задайте для< элемента Permissions> значение ReadWriteItem.

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

Проверка состояния каталога меток конфиденциальности

Метки и политики конфиденциальности настраиваются администратором организации с помощью Портал соответствия требованиям Microsoft Purview. Инструкции по настройке меток конфиденциальности в клиенте см. в статье Создание и настройка меток конфиденциальности и их политик.

Прежде чем получить или задать метку конфиденциальности для сообщения или встречи, необходимо сначала убедиться, что каталог меток конфиденциальности включен в почтовом ящике, где установлена надстройка. Чтобы проверка состояние каталога меток конфиденциальности, вызовите context.sensitivityLabelsCatalog.getIsEnabledAsync в режиме создания.

// Check whether the catalog of sensitivity labels is enabled.
Office.context.sensitivityLabelsCatalog.getIsEnabledAsync((asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        console.log(asyncResult.value);
    } else {
        console.log("Action failed with error: " + asyncResult.error.message);
    }
});

Определение доступных меток конфиденциальности

Если вы хотите определить метки конфиденциальности, доступные для использования в сообщении или встрече в режиме создания, используйте context.sensitivityLabelsCatalog.getAsync. Доступные метки возвращаются в виде объектов SensitivityLabelDetails , которые предоставляют следующие сведения.

  • Имя метки.
  • Уникальный идентификатор (GUID) метки.
  • Описание метки.
  • Цвет, назначенный метки.
  • Настроенные вложенные метки, если они есть.

В следующем примере показано, как определить метки конфиденциальности, доступные в каталоге.

// It's recommended to check the status of the catalog of sensitivity labels before
// calling other sensitivity label methods.
Office.context.sensitivityLabelsCatalog.getIsEnabledAsync((asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded && asyncResult.value == true) {
        // Identify available sensitivity labels in the catalog.
        Office.context.sensitivityLabelsCatalog.getAsync((asyncResult) => {
            if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
                const catalog = asyncResult.value;
                console.log("Sensitivity Labels Catalog:");
                catalog.forEach((sensitivityLabel) => {
                    console.log(`Name: ${sensitivityLabel.name}`);
                    console.log(`ID: ${sensitivityLabel.id}`);
                    console.log(`Tooltip: ${sensitivityLabel.tooltip}`);
                    console.log(`Color: ${sensitivityLabel.color}`);
                    console.log(`Sublabels: ${JSON.stringify(sensitivityLabel.children)}`);
                });
            } else {
                console.log("Action failed with error: " + asyncResult.error.message);
            }
        });
    } else {
        console.log("Action failed with error: " + asyncResult.error.message);
    }
});

Получение метки конфиденциальности сообщения или встречи

Чтобы получить метку конфиденциальности, применяемую в настоящее время к сообщению или встрече в режиме создания, вызовите метод item.sensitivityLabel.getAsync , как показано в следующем примере. Возвращает guid метки конфиденциальности.

// It's recommended to check the status of the catalog of sensitivity labels before
// calling other sensitivity label methods.
Office.context.sensitivityLabelsCatalog.getIsEnabledAsync((asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded && asyncResult.value == true) {
        // Get the current sensitivity label of a message or appointment.
        Office.context.mailbox.item.sensitivityLabel.getAsync((asyncResult) => {
            if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
                console.log(asyncResult.value);
            } else {
                console.log("Action failed with error: " + asyncResult.error.message);
            }
        });
    } else {
        console.log("Action failed with error: " + asyncResult.error.message);
    }
});

Установка метки конфиденциальности для сообщения или встречи

Вы можете задать только одну метку конфиденциальности для сообщения или встречи в режиме создания. Перед настройкой метки вызовите context.sensitivityLabelsCatalog.getAsync. Это гарантирует, что метка, которую вы хотите применить, будет доступна для использования. Это также помогает определить GUID метки, который потребуется для применения метки к почтовому элементу. После подтверждения доступности метки передайте ее GUID в качестве параметра в item.sensitivityLabel.setAsync, как показано в следующем примере.

// It's recommended to check the status of the catalog of sensitivity labels before
// calling other sensitivity label methods.
Office.context.sensitivityLabelsCatalog.getIsEnabledAsync((asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded && asyncResult.value == true) {
        // Identify available sensitivity labels in the catalog.
        Office.context.sensitivityLabelsCatalog.getAsync((asyncResult) => {
            if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
                const catalog = asyncResult.value;
                if (catalog.length > 0) {
                    // Get the GUID of the sensitivity label.
                    var id = catalog[0].id;
                    // Set the mail item's sensitivity label using the label's GUID.
                    Office.context.mailbox.item.sensitivityLabel.setAsync(id, (asyncResult) => {
                        if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
                            console.log(asyncResult.status);
                        } else {
                            console.log("Action failed with error: " + asyncResult.error.message);
                        }
                    });
                } else {
                    console.log("Catalog list is empty");
                }
            } else {
                console.log("Action failed with error: " + asyncResult.error.message);
            }
        });
    } else {
        console.log("Action failed with error: " + asyncResult.error.message);
    }
});

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

// It's recommended to check the status of the catalog of sensitivity labels before
// calling other sensitivity label methods.
Office.context.sensitivityLabelsCatalog.getIsEnabledAsync((asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded && asyncResult.value == true) {
        // Identify available sensitivity labels in the catalog.
        Office.context.sensitivityLabelsCatalog.getAsync((asyncResult) => {
            if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
                const catalog = asyncResult.value;
                if (catalog.length > 0) {
                    // Set the mail item's sensitivity label using the SensitivityLabelDetails object.
                    Office.context.mailbox.item.sensitivityLabel.setAsync(catalog[0], (asyncResult) => {
                        if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
                            console.log(asyncResult.status);
                        } else {
                            console.log("Action failed with error: " + asyncResult.error.message);
                        }
                    });
                } else {
                    console.log("Catalog list is empty");
                }
            } else {
                console.log("Action failed with error: " + asyncResult.error.message);
            }
        });
    } else {
        console.log("Action failed with error: " + asyncResult.error.message);
    }
});

Обнаружение изменений меток конфиденциальности с помощью события OnSensitivityLabelChanged

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

Событие OnSensitivityLabelChanged доступно через функцию активации на основе событий. Сведения о настройке, отладке и развертывании надстройки на основе событий, которая использует это событие, см. в статье Настройка надстройки Outlook для активации на основе событий.

См. также