Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Implemente a funcionalidade personalizada de encriptação e desencriptação num suplemento do Outlook para proteger as comunicações de e-mail. O OnMessageDecrypt evento permite que o suplemento identifique automaticamente mensagens encriptadas e processe a desencriptação, a apresentação de conteúdos e as notificações de erro.
Descrição geral dos fluxos de trabalho de encriptação e desencriptação
Dica
- Os fluxos de trabalho de encriptação e desencriptação implementam a funcionalidade de ativação baseada em eventos. Se não estiver familiarizado com a ativação baseada em eventos nos suplementos do Outlook, recomendamos que saiba primeiro sobre a funcionalidade e a respetiva implementação. Para saber mais, veja Ativar suplementos com eventos.
- O conjunto de requisitos mínimo e as plataformas suportadas podem variar para cada API recomendada nesta secção. Recomendamos que verifique todos os requisitos em relação aos conjuntos de requisitos da API JavaScript do Outlook e que o complemente com documentação para a API específica.
A tabela seguinte fornece uma descrição geral dos fluxos de trabalho de encriptação e desencriptação de um suplemento do Outlook. Também identifica se um passo requer uma solução personalizada ou se é suportado pela biblioteca de API javaScript (Office.js) do Office.
| Etapa | Implementação |
|---|---|
| O utilizador compõe uma mensagem e utiliza o suplemento para aplicar regras de encriptação | Tem de implementar o seu próprio protocolo de encriptação para que o suplemento possa proteger o conteúdo da mensagem e os respetivos anexos. |
| O utilizador envia a mensagem | Implemente um processador para o evento OnMessageSend para que o suplemento possa executar automaticamente o protocolo de encriptação quando o utilizador selecionar Enviar. Para identificar uma mensagem encriptada com o suplemento durante o processo de desencriptação, utilize as APIs de cabeçalhos da Internet para adicionar um cabeçalho a uma mensagem. A chave de cabeçalho tem de corresponder ao valor especificado no HeaderName atributo do <elemento LaunchEvent> para o evento OnMessageDecrypt no manifesto do suplemento. Para obter mais informações, veja Implementar a desencriptação com a ativação baseada em eventos. |
| O destinatário recebe a mensagem encriptada e abre-a | Se o destinatário tiver o mesmo suplemento que foi utilizado para encriptar a mensagem instalada no Outlook, o suplemento verifica se a chave de cabeçalho incluída na mensagem corresponde ao valor especificado para o OnMessageDecrypt evento no manifesto. Esta operação é efetuada automaticamente por um suplemento que processa o OnMessageDecrypt evento, para que não tenha de implementar manualmente o marcar. Se os cabeçalhos corresponderem, o evento ocorre e o OnMessageDecrypt processador é executado. Para obter mais informações, veja Implementar a desencriptação com a ativação baseada em eventos. |
| O suplemento desencripta a mensagem | Tem de implementar o seu próprio protocolo de desencriptação no OnMessageDecrypt processador de eventos. Enquanto o suplemento desencripta a mensagem e os respetivos anexos, é apresentada uma notificação ao utilizador para alertá-lo de que a mensagem está a ser processada pelo suplemento. Esta notificação é apresentada automaticamente por um suplemento que processa o OnMessageDecrypt evento, para que não tenha de criar manualmente um. |
| O destinatário vê a mensagem desencriptada e os respetivos anexos, se existirem | Depois de concluída a operação de desencriptação, é apresentada automaticamente uma notificação ao utilizador para alertá-lo de que o suplemento terminou o processamento da mensagem. No processador OnMessageDecrypt , chame o método event.completed e transmita-lhe um objeto MessageDecryptEventCompletedOptions . Com o MessageDecryptEventCompletedOptions objeto, pode especificar se pretende apresentar o conteúdo desencriptado ao destinatário. Para obter mais informações, veja Implementar o processamento de eventos. |
Experimentar um suplemento concluído
Para ver imediatamente um suplemento de encriptação concluído em ação, experimente o exemplo Encriptar e desencriptar mensagens no Outlook.
Implementar a desencriptação com a ativação baseada em eventos
Tem de implementar os seus próprios protocolos de encriptação e desencriptação. O suplemento também tem de ser configurado para processar o OnMessageDecrypt evento para determinar convenientemente quando o suplemento pode desencriptar uma mensagem e apresentar os conteúdos desencriptados. Para implementar o OnMessageDecrypt evento, tem de:
Ambientes suportados
O OnMessageDecrypt evento é suportado na superfície De Leitura da Mensagem. O suporte varia consoante o cliente e o ambiente do Exchange, conforme mostrado na tabela seguinte.
| Cliente | Exchange Online | Exchange Subscription Edition (SE) | Exchange Server 2019 | Exchange Server 2016 |
|---|---|---|---|---|
| Navegador da Web | Com suporte | Não disponível | Não disponível | Não disponível |
| Windows (novo) | Com suporte | Não disponível | Não disponível | Não disponível |
|
Windows (clássico) Versão 2602 (Compilação 19725.20126) e posterior |
Com suporte | Não disponível | Não disponível | Não disponível |
| Mac | Não disponível | Não disponível | Não disponível | Não disponível |
| Android | Não disponível | Não disponível | Não disponível | Não disponível |
| iOS | Não disponível | Não disponível | Não disponível | Não disponível |
Configurar o manifesto
Observação
O OnMessageDecrypt evento e "extensions.autoRunEvents.events.options.headerName" a propriedade estão em pré-visualização com o manifesto unificado. Não utilize a funcionalidade de desencriptação com o manifesto unificado num suplemento de produção.
No ficheiro manifest.json do suplemento, tem de configurar a "extensions.runtimes" matriz e adicionar a "extensions.autoRunEvents" matriz para ativar a ativação baseada em eventos no suplemento.
Adicione o objeto a seguir à
"extensions.runtimes"matriz. Observe o seguinte sobre esta marcação.- O
"id"do runtime está definido como o nome"autorun_runtime"descritivo . - A
"code"propriedade tem uma propriedade subordinada"page"que está definida como um ficheiro HTML e uma propriedade subordinada"script"que está definida como um ficheiro JavaScript. O Office utiliza um destes valores consoante a plataforma.- Outlook na Web e o novo Outlook no Windows executam o processador num runtime do browser, que carrega um ficheiro HTML. Esse ficheiro, por sua vez, contém uma
<script>etiqueta que carrega o ficheiro JavaScript. - O Outlook clássico no Windows executa o processador de eventos num runtime apenas javaScript, que carrega diretamente um ficheiro JavaScript. Para obter mais informações, consulte Runtimes nos Suplementos do Office.
- Outlook na Web e o novo Outlook no Windows executam o processador num runtime do browser, que carrega um ficheiro HTML. Esse ficheiro, por sua vez, contém uma
- A
"lifetime"propriedade está definida como"short", o que significa que o runtime é iniciado quando o evento é acionado e é encerrado quando o processador é concluído. -
As ações mapeiam processadores JavaScript para os
OnMessageSendeventos eOnMessageDecrypt.
"runtimes": [ { "requirements": { "capabilities": [ { "name": "Mailbox", "minVersion": "1.16" } ] }, "id": "autorun_runtime", "type": "general", "code": { "page": "https://localhost:3000/launchevents.html", "script": "https://localhost:3000/launchevents.js" }, "lifetime": "short", "actions": [ { "id": "onMessageSendHandler", "type": "executeFunction" }, { "id": "onMessageDecryptHandler", "type": "executeFunction" } ] } ],- O
Adicione a seguinte
"autoRunEvents"matriz como uma propriedade do objeto na"extensions"matriz. Observe o seguinte sobre esta marcação.- É criado um objeto de evento para cada evento que o suplemento processa. Neste exemplo, é criado um objeto de evento para
OnMessageSende outro paraOnMessageDecrypt. Ambos os eventos utilizam o nome"messageSending"do evento de manifesto unificado e"messageDecrypt", conforme descrito na tabela de eventos suportados. - Para garantir que o processador adequado é executado quando ocorre um evento, o nome da função fornecido em
"actionId"tem de corresponder ao nome utilizado na"id"propriedade do objeto aplicável na matriz de"runtimes.actions"um passo anterior. - A propriedade "opções" fornece configuração adicional para os
OnMessageSendeventos eOnMessageDecrypt.- Para
OnMessageSend, a opção "sendMode" especifica se um utilizador é capaz de enviar a sua mensagem se não cumprir as condições de um suplemento. Neste exemplo, a opção"softBlock"é especificada. Para saber mais sobre as opções de modo de envio, consulte a secção "Opções do modo de envio disponíveis" de Eventos Handle OnMessageSend e OnAppointmentSend no seu suplemento do Outlook com Alertas Inteligentes. - Para
OnMessageDecrypt, a opção "headerName" especifica o nome do cabeçalho da Internet utilizado para identificar se uma mensagem foi encriptada pelo suplemento. O mesmo cabeçalho é adicionado a uma mensagem encriptada pelo suplemento.
- Para
"autoRunEvents": [ { "events": [ { "type": "messageSending", "actionId": "onMessageSendHandler", "options": { "sendMode": "softBlock" } }, { "type": "messageDecrypt", "actionId": "onMessageDecryptHandler", "options": { "headerName": "contoso-encrypted" } } ] } ]- É criado um objeto de evento para cada evento que o suplemento processa. Neste exemplo, é criado um objeto de evento para
Implementar o processamento de eventos
O OnMessageDecrypt processador de eventos é utilizado para executar a operação de desencriptação e determinar se pretende apresentar o conteúdo desencriptado de uma mensagem.
- Para garantir que o processador é executado quando o
OnMessageDecryptevento ocorre, chameOffice.actions.associateno ficheiro JavaScript onde o processador é implementado. Esta ação mapeia o nome do processador especificado noFunctionNameatributo do<LaunchEvent>elemento no manifesto para o seu equivalente JavaScript. - Após a conclusão da operação de desencriptação, tem de chamar para indicar
event.completedao cliente que o suplemento concluiu o processamento doOnMessageDecryptevento. Para apresentar os conteúdos desencriptados de uma mensagem e os respetivos anexos, transmita um objeto MessageDecryptEventCompletedOptions à chamada e defina aevent.completedrespetiva propriedade allowEvent comotrue. Em seguida, especifique o conteúdo desencriptado da mensagem nas propriedades emailBody e attachments do objeto. Também pode especificar quaisquer dados que o seu suplemento possa precisar para processamento na propriedade contextData . Por exemplo, pode armazenar cabeçalhos de Internet personalizados para desencriptar mensagens em cenários de resposta e reencaminhamento.
Observação
Tenha em atenção o seguinte ao criar um suplemento baseado em eventos para o Outlook clássico no Windows.
- As importações não são atualmente suportadas no ficheiro JavaScript que contém o processador de eventos.
- Quando a função JavaScript especificada no manifesto para processar uma execução de evento, o código no
Office.onReady()eOffice.initializenão é executado. Recomendamos que adicione qualquer lógica de arranque necessária ao processador de eventos, como verificar a versão do Outlook do utilizador, ao processador de eventos.
Segue-se um exemplo de um OnMessageDecrypt processador de eventos.
function onMessageDecryptHandler(event) {
// Your code to decrypt the contents of a message would appear here.
...
// Use the results from your decryption process to display the decrypted contents of the message body and attachments.
const decryptedBodyContent = "<p>Please find attached the recent report and its supporting documentation.</p>";
const decryptedBody = {
coercionType: Office.CoercionType.Html,
content: decryptedBodyContent
};
// Decrypted content and properties of a file attachment.
const decryptedPdfFile = "JVBERi0xLjQKJeLjz9MKNCAwIG9i...";
const pdfFileName = "Fabrikam_Report_202509";
// Decrypted properties of a cloud attachment.
const cloudFilePath = "https://contosostorage.com/reports/weekly_forecast.xlsx";
const cloudFileName = "weekly_forecast.xlsx";
// Decrypted content and properties of an inline image.
const decryptedImageFile = "iVBORw0KGgoAAAANSUhEUgAA...";
const imageFileName = "banner.png";
const imageContentId = "image001.png@01DC1DD9.1A4AA300";
const decryptedAttachments = [
{
attachmentType: Office.MailboxEnums.AttachmentType.File,
content: decryptedPdfFile,
isInline: false,
name: pdfFileName
},
{
attachmentType: Office.MailboxEnums.AttachmentType.Cloud,
isInline: false,
name: cloudFileName,
path: cloudFilePath
},
{
attachmentType: Office.MailboxEnums.AttachmentType.File,
content: decryptedImageFile,
contentId: imageContentId,
isInline: true,
name: imageFileName
}
];
event.completed({
allowEvent: true,
emailBody: decryptedBody,
attachments: decryptedAttachments,
contextData: { messageType: "ReplyFromDecryptedMessage" }
});
}
// IMPORTANT: To ensure your add-in is supported in Outlook, remember to map the event handler name specified in the manifest to its JavaScript counterpart.
Office.actions.associate("onMessageDecryptHandler", onMessageDecryptHandler);
Dica
Quando as imagens são adicionadas a uma mensagem como anexos inline, é-lhes atribuído automaticamente um ID de conteúdo. No corpo de uma mensagem, o ID de conteúdo de um anexo inline é especificado no src atributo do <img> elemento semelhante ao seguinte exemplo.
<img width=96 height=96 id="Picture_1" src="cid:image001.png@01DC1E6F.FC7C7410">
Para identificar e fornecer facilmente estes anexos inline durante a desencriptação, recomendamos que guarde os IDs de conteúdo dos anexos inline no cabeçalho da mensagem durante a encriptação. Ligue para Office.context.mailbox.item.getAttachmentsAsync para obter o ID de conteúdo de um anexo inline. Em seguida, ligue para Office.context.mailbox.item.internetHeaders.setAsync para guardar o ID no cabeçalho da mensagem.
Desencriptar anexos de itens do Outlook (pré-visualização)
O suporte para desencriptar anexos de itens do Outlook (Office.MailboxEnums.AttachmentType.Itemparticularmente anexos de e-mail) está disponível para pré-visualização no Outlook na Web e no Windows (novo e clássico). Para pré-visualizar esta funcionalidade no Outlook clássico no Windows, tem de instalar a Versão 2606 (Compilação 20114.15110) ou posterior. Em seguida, adira ao programa Microsoft 365 Insider e selecione a opção Canal Beta para aceder às compilações beta do Office. Para testar esta funcionalidade com o código de exemplo neste artigo, atualize a onMessageDecryptHandler função com o seguinte código.
// Decrypted content and properties of an email attachment.
const decryptedEmailFile = "VGhpcyBpcyBhIHRleHQgZmlsZS4=...";
const emailFileName = "Fabrikam_Report_202508.eml";
const decryptedAttachments = [
...
{
attachmentType: Office.MailboxEnums.AttachmentType.Item,
content: decryptedEmailFile,
name: emailFileName
}
];
...
Personalizar mensagens de erro para a operação de desencriptação (pré-visualização)
As mensagens de erro personalizadas para operações de desencriptação falhadas estão disponíveis para pré-visualização no Outlook na Web e no Windows (novo e clássico). Para pré-visualizar esta funcionalidade no Outlook clássico no Windows, tem de instalar a Versão 2606 (Compilação 20114.15110) ou posterior. Em seguida, adira ao programa Microsoft 365 Insider e selecione a opção Canal Beta para aceder às compilações beta do Office.
Se a operação de desencriptação falhar, a allowEvent propriedade da event.completed chamada está definida como falsee o Outlook apresenta a seguinte notificação predefinida ao utilizador: "<O nome> do suplemento não conseguiu processar a sua mensagem". Para especificar uma mensagem de erro personalizada, defina a propriedade errorMessage da chamada do event.completed suplemento. A sua mensagem personalizada tem o prefixo "Erro do nome> do <suplemento:". Se não for possível mostrar a sua mensagem personalizada, a notificação predefinida é apresentada.
O seguinte exemplo de código mostra como especificar uma mensagem de erro personalizada para o suplemento de desencriptação.
event.completed({
allowEvent: false,
errorMessage: "This message couldn't be decrypted. Contact the Contoso IT team for further assistance."
});
Gerir a distribuição de conteúdo desencriptado (pré-visualização)
Para ajudar a impedir a distribuição não autorizada de conteúdo desencriptado, as opções de controlo de acesso estão disponíveis para pré-visualização no Outlook na Web e no Windows (novo e clássico). Para pré-visualizar esta funcionalidade no Outlook clássico no Windows, tem de instalar a Versão 2606 (Compilação 20114.15110) ou posterior. Em seguida, adira ao programa Microsoft 365 Insider e selecione a opção Canal Beta para aceder às compilações beta do Office.
Para limitar a impressão, cópia ou gravação de conteúdo desencriptado, inclua a propriedade accessControls da event.completed chamada. Em seguida, defina allowPrint, allowCopyPaste e allowSave properties como false. Se a accessControls propriedade não for especificada, os controlos de acesso são predefinidos para true.
Para testar esta funcionalidade com o código de exemplo neste artigo, atualize a event.completed chamada da onMessageDecryptHandler função com o seguinte código.
event.completed({
allowEvent: true,
emailBody: decryptedBody,
attachments: decryptedAttachments,
contextData: { messageType: "ReplyFromDecryptedMessage" },
accessControls: {
allowPrint: false,
allowCopyPaste: false,
allowSave: false
}
});
Observação
- No Outlook na Web, definir a
allowCopyPastepropriedade parafalsetambém impede que os utilizadores capturem o ecrã sob a forma de capturas de ecrã ou gravações. A política de captura de ecrã permanece em vigor até que o utilizador recarregue o separador do browser Outlook. - No Outlook na Web e no novo Outlook no Windows, definir a
allowPrintpropriedade parafalsedesativar o menu de contexto (que fornece opções como Copiar, Selecionar tudo e Imprimir). Se aallowCopyPastepropriedade estiver definida comotrue, o utilizador ainda pode copiar conteúdo premindo Ctrl+C, mas a opção Copiar no menu de contexto não está disponível.
Comportamento e limitações
Tenha em atenção os comportamentos e limitações dos suplementos baseados em eventos. Para saber mais, veja Ativar suplementos com eventos.
Uma vez que cada suplemento utiliza o seu próprio protocolo de encriptação, uma mensagem só pode ser desencriptada pelo mesmo suplemento que o encriptou. Quando um utilizador não tem o suplemento necessário instalado para desencriptar uma mensagem, uma notificação alerta-o de que a mensagem está encriptada. Para orientar o utilizador através do processo de desencriptação, personalize uma mensagem de marcador de posição para o corpo da mensagem encriptada. A mensagem de marcador de posição pode incluir informações sobre como instalar o seu suplemento. Para definir o corpo da mensagem durante o processo de encriptação, ligue para Office.context.mailbox.item.body.setAsync.
Para garantir a segurança e confidencialidade dos dados, os conteúdos desencriptados não são armazenados no cliente do Outlook. O conteúdo de uma mensagem encriptada é desencriptado sempre que um utilizador a abre.
Primeiro, é necessário desencriptar uma mensagem encriptada para que um utilizador possa responder ou reencaminhá-la. Um utilizador não pode responder ou reencaminhar uma mensagem encriptada enquanto está a ser desencriptada.
Se um utilizador navegar para outro item de correio enquanto uma mensagem encriptada estiver a ser desencriptada, o processo de desencriptação deixa de ser executado. O utilizador tem de selecionar ou abrir novamente a mensagem para ativar o processo de desencriptação.
Ao responder ou reencaminhar mensagens encriptadas, os rascunhos são guardados sem encriptação na pasta Rascunhos .
A
attachmentspropriedade doevent.completedmétodo não suporta anexos do tipoOffice.MailboxEnums.AttachmentType.Item, exceto a pré-visualização no Outlook na Web e no Windows (novo e clássico). Para saber mais, veja Desencriptar anexos de itens do Outlook (pré-visualização).Os suplementos de encriptação personalizados não podem encriptar mensagens que já estejam protegidas por DRM ou S/MIME.
No Outlook na Web e no novo Outlook no Windows, quando as mensagens encriptadas são agrupadas por conversação, apenas a mensagem atualmente selecionada do tópico de conversação é desencriptada. As outras mensagens no thread de conversação permanecem encriptadas até serem selecionadas.
No Outlook na Web e no novo Outlook no Windows, os utilizadores só podem transferir uma mensagem desencriptada no formato EML. A opção para transferir no formato MSG não está disponível.
Notificações de desencriptação
Os suplementos que processam o OnMessageDecrypt evento apresentam automaticamente notificações em determinados cenários de desencriptação, conforme descrito na tabela seguinte.
| Notificação | Cenário |
|---|---|
| <O nome> do suplemento não está disponível e não consegue processar a sua mensagem neste momento. | Aplica-se apenas ao Outlook clássico no Windows. Esta notificação é apresentada quando o suplemento não é carregado porque um erro impediu o carregamento do suplemento ou o cliente ou computador do utilizador está offline. |
| <O nome> do suplemento não conseguiu processar a sua mensagem. | Foi encontrado um erro enquanto o suplemento estava a desencriptar a mensagem. Para repetir a operação de desencriptação, o destinatário tem de mudar para outra mensagem e, em seguida, abrir novamente a mensagem encriptada para invocar o OnMessageDecrypt evento. |
| <O suplemento de nome> do suplemento está a desencriptar a sua mensagem. | O suplemento está a processar o OnMessageDecrypt evento para desencriptar a mensagem. |
| Esta mensagem é encriptada pelo <suplemento de nome> do suplemento. | Esta notificação é apresentada aos destinatários que não têm o suplemento de encriptação necessário instalado. Para fornecer orientações sobre como desencriptar a mensagem, inclua uma mensagem de marcador de posição no corpo da mensagem encriptada. Para obter mais informações, veja Comportamento e limitações. |
| <O suplemento de nome> do suplemento desencriptou a sua mensagem. | O suplemento desencriptou com êxito o conteúdo da mensagem. O utilizador pode agora ver a mensagem e os respetivos anexos. |
| <O nome> do suplemento está a demorar mais tempo do que o esperado para processar a sua mensagem. | O suplemento está em execução há mais de cinco segundos, mas menos de cinco minutos. |
| <O nome> do suplemento excedeu o limite de tempo. Para tentar novamente, selecione outro e-mail e, em seguida, regresse a esta mensagem. | O suplemento excede o tempo limite após a execução durante cinco minutos. Para repetir a operação de desencriptação, o destinatário tem de mudar para outra mensagem e, em seguida, abrir novamente a mensagem encriptada para invocar o OnMessageDecrypt evento. |
| <O nome> do suplemento excedeu o limite de tempo. (pré-visualização) | O suplemento excede o tempo limite após a execução durante cinco minutos. Esta notificação inclui uma ação Repetir para que o destinatário possa repetir a operação de desencriptação sem mudar para outra mensagem. Esta funcionalidade de repetição está disponível para pré-visualização no Outlook na Web e no Windows (novo e clássico). Para pré-visualizar esta funcionalidade no Outlook clássico no Windows, tem de instalar a Versão 2606 (Compilação 20114.15110) ou posterior. Em seguida, adira ao programa Microsoft 365 Insider e selecione a opção Canal Beta para aceder às compilações beta do Office. |
| <O nome> do suplemento não consegue processar esta mensagem porque está protegido por uma funcionalidade de segurança incorporada. | O suplemento tenta processar uma mensagem que já está protegida por DRM ou S/MIME. |
| Mensagem de erro personalizada (pré-visualização) | Foi encontrado um erro enquanto o suplemento estava a desencriptar a mensagem. Para repetir a operação de desencriptação, o destinatário tem de mudar para outra mensagem e, em seguida, abrir novamente a mensagem encriptada para invocar o OnMessageDecrypt evento. Para obter orientações sobre como personalizar uma mensagem de erro para a operação de desencriptação, veja Personalizar mensagens de erro para a operação de desencriptação (pré-visualização). |
Confira também
- Exemplo: Encriptar e desencriptar mensagens no Outlook
- Privacidade e segurança para Suplementos do Office
- Ativar suplementos com eventos
- Resolver problemas de suplementos baseados em eventos e relatórios de spam
- Obter e definir cabeçalhos da Internet numa mensagem num suplemento do Outlook
- Gerir a etiqueta de confidencialidade da sua mensagem ou compromisso no modo de composição