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

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

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

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

Примечание.

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

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

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

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

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

Клиент Exchange Online.
Веб-браузер (современный пользовательский интерфейс)

новый Outlook в Windows (предварительная версия)
Поддерживается
Windows (классическая версия)
Версия 2304 (сборка 16327.20248) или более поздняя
Поддерживается
Mac
Версия 16.77.816.0 или более поздняя
Поддерживается
Android Неприменимо
iOS Неприменимо

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

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

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

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

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

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

Прежде чем получить или задать метку конфиденциальности для сообщения или встречи, необходимо сначала убедиться, что каталог меток конфиденциальности включен в почтовом ящике, где установлена надстройка. Чтобы проверка состояние каталога меток конфиденциальности, вызовите 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 для активации на основе событий.

См. также