Интеграция с политиками защиты от потери данных Microsoft Teams
Внимание
Функции, описанные в этой статье, в настоящее время находятся в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания. Ее не следует использовать для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Администратор Microsoft Teams может настроить политики защиты от потери данных (DLP), чтобы предотвратить утечку конфиденциальной информации от пользователей Teams во время собраний Teams. Разработчики могут интегрировать функции чата в собрания Teams с Службы коммуникации Azure. Это можно сделать с помощью библиотеки пользовательского интерфейса Службы коммуникации Azure или пользовательской интеграции. В этой статье описывается, как включить защиту от потери данных без использования библиотеки пользовательского интерфейса.
Необходимо настроить приложение для прослушивания обновлений в режиме реального времени при редактировании сообщений. Если пользователь Teams отправляет сообщение, содержащее конфиденциальное содержимое, сообщение будет автоматически заменено пустым сообщением и помечается результатом policyViolation. Приложение должно обновить пользовательский интерфейс, чтобы отразить, что сообщение заблокировано. Например, отображается сообщение, например "Сообщение заблокировано, так как оно содержит конфиденциальную информацию". Помните, что может быть краткая задержка, как правило, в течение нескольких секунд между отправкой сообщения и при обнаружении и применении нарушения политики. Ниже приведен пример такого кода.
Важно отметить, что политики защиты от потери данных применяются только к сообщениям, отправленным пользователями Teams, и не препятствуют отправке конфиденциальных данных пользователям связи Azure.
Защита от потери данных с подпиской на уведомления чата в режиме реального времени
let endpointUrl = '<replace with your resource endpoint>';
// The user access token generated as part of the pre-requisites
let userAccessToken = '<USER_ACCESS_TOKEN>';
let chatClient = new ChatClient(endpointUrl, new AzureCommunicationTokenCredential(userAccessToken));
await chatClient.startRealtimeNotifications();
chatClient.on("chatMessageEdited", (e) => {
if (e.policyViolation?.result == "contentBlocked") {
// Show UI message blocked
}
});
Защита от потери данных с получением предыдущих сообщений чата
const messages = chatThreadClient.listMessages();
for await (const message of messages) {
if (message.policyViolation?.result == "contentBlocked") {
// Show UI message blocked
}
}