重要
Azure Communication Services のこの機能は、現在プレビュー段階にあります。 プレビュー段階の機能は一般公開されており、新規および既存の Microsoft のすべてのお客様が使用できます。
このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能がサポートされていないか、機能が制約されている可能性があります。
詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
Microsoft Teams 管理者は、Teams 会議中に Teams ユーザーから機密情報が漏洩することを防ぐために、データ損失防止 (DLP) のためのポリシーを構成できます。 開発者は、Teams 会議のチャット機能を Azure Communication Services と統合できます。 これを実装するには、Azure Communication Services UI ライブラリまたはカスタム統合を使用します。 この記事では、UI ライブラリを使用せずにデータ損失防止を組み込む方法について説明します。
メッセージの編集時にリアルタイムの更新をリッスンするようにアプリケーションを設定する必要があります。 Teams ユーザーが機密性の高いコンテンツを含むメッセージを送信すると、メッセージは自動的に空白のメッセージに置き換えられ、"policyViolation" という結果のフラグが付けられます。 アプリケーションは、メッセージがブロックされていることを反映するようにユーザー インターフェイスを更新する必要があります。 たとえば、"機密情報が含まれるため、メッセージがブロックされました" などのメッセージを表示します。メッセージが送信されてからポリシー違反が検出されて適用されるまで、通常は数秒の短い遅延が発生する可能性があります。 次のコードの例を見つけることができます。
DLP ポリシーは、Teams ユーザーによって送信されたメッセージにのみ適用され、Azure Communications ユーザーが機密情報を送信するのを防ぐことはありません。
リアルタイム チャット通知のサブスクライブによるデータ損失防止
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
}
}