> ## Documentation Index
> Fetch the complete documentation index at: https://zeropath.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Integração com Microsoft Teams

> Receba notificações de scan e alertas de vulnerabilidades nos canais do seu Microsoft Teams

<h2 id="overview">
  Visão Geral
</h2>

O ZeroPath publica notificações de scan e alertas de vulnerabilidades em canais do Microsoft Teams como [Adaptive Cards](https://adaptivecards.io/). Cada canal de destino é registrado separadamente, e as regras de notificação escolhem quais eventos vão para quais canais.

**Não é necessário registrar um aplicativo no Azure AD, obter consentimento de administrador do tenant nem configurar permissões do Microsoft Graph.** O ZeroPath entrega em uma URL de *incoming webhook* por canal, criada pelo próprio dono do canal dentro do Teams — então um único dono de canal pode habilitar alertas para o seu canal sem envolver os administradores do Microsoft 365.

<Note>
  A URL do webhook é a credencial completa para publicar naquele canal. Trate-a como uma senha: qualquer pessoa que a tenha pode publicar no canal. O ZeroPath a armazena criptografada e nunca a exibe novamente depois de salvá-la.
</Note>

<h2 id="setup">
  Configuração
</h2>

<h3 id="create-webhook">
  1. Crie o webhook no Teams
</h3>

Faça isso uma vez para cada canal em que deseja receber alertas.

1. No Microsoft Teams, abra o canal e escolha **… (Mais opções) → Workflows**.
2. Selecione o modelo **"Post to a channel when a webhook request is received"**.
3. Confirme a equipe e o canal e clique em **Add workflow**.
4. Copie a **HTTP POST URL** gerada. Ela se parece com `https://prod-12.westus.logic.azure.com/workflows/…?sig=…`.

<Note>
  Criar um workflow exige permissão para adicionar workflows àquela equipe. Se o menu Workflows não aparecer, peça a um proprietário da equipe que crie o workflow e lhe envie a URL.
</Note>

<h3 id="register-channel">
  2. Registre o canal no ZeroPath
</h3>

1. Navegue até **Settings → Integrations** no painel do ZeroPath.
2. Clique em **Add Integration** e depois em **Microsoft Teams**.
3. Informe um **rótulo do canal** — é ele que aparece no seletor das regras de notificação, então use o nome do canal (por exemplo `#appsec-alerts`).
4. Cole a **HTTP POST URL** do passo 1 e salve.

O ZeroPath valida o host da URL antes de aceitá-la; apenas hosts de webhook emitidos pela Microsoft (`*.logic.azure.com`, `*.webhook.office.com`, `*.azure-apihub.net`, `*.powerplatform.com`) sobre HTTPS são permitidos.

Para adicionar mais canais depois, selecione a integração **Microsoft Teams** em **Settings → Integrations** e use **Add a channel**.

<h3 id="test-message">
  3. Envie uma mensagem de teste
</h3>

No painel da integração Microsoft Teams, clique no ícone de **envio** ao lado de um canal. O ZeroPath publica um card de confirmação usando o mesmo formato de payload das notificações reais, então um teste bem-sucedido comprova que o canal aceita o que o ZeroPath realmente envia — e não apenas que a URL responde.

<h3 id="route-notifications">
  4. Direcione notificações para o canal
</h3>

Canais do Teams não recebem nada até que uma regra de notificação os selecione.

1. Navegue até **Settings → Notifications**.
2. Crie uma regra (ou edite uma existente) e selecione **Microsoft Teams** como canal.
3. Marque os canais do Teams para os quais a regra deve entregar.
4. Escolha os tipos de evento, o escopo de repositórios e o limite de pontuação de vulnerabilidade.

Uma regra que seleciona Microsoft Teams precisa indicar ao menos um canal do Teams, para que nunca exista uma regra habilitada que não entrega em lugar algum.

<h2 id="notification-types">
  Tipos de Notificação
</h2>

Qualquer evento de notificação suportado pelo ZeroPath pode ser direcionado ao Teams, incluindo:

| Evento                                                | Descrição                                                                                                             |
| ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| **Repository added**                                  | Um repositório foi conectado ao ZeroPath                                                                              |
| **Scan started / complete / failed**                  | Ciclo de vida de scans completos e agendados, incluindo o primeiro scan automático de um repositório recém-adicionado |
| **PR scan started / complete**                        | Ciclo de vida do scan de pull request                                                                                 |
| **New vulnerabilities (full scan / PR)**              | Dispara apenas quando o scan encontrou descobertas novas                                                              |
| **Vulnerability patched / reopened / status changed** | Atividade de triagem e remediação                                                                                     |
| **Descobertas de SCA e containers**                   | Novos CVEs e novos problemas de dependências ou imagens de container                                                  |
| **Eventos de SLA**                                    | Descobertas que passaram do limite de SLA e alta taxa de consumo de SLA                                               |

Defina um **limite de pontuação de vulnerabilidade** (0–100) na regra para filtrar ruído de baixa severidade: apenas descobertas com pontuação igual ou superior ao limite são incluídas.

<h3 id="notification-format">
  Formato da Notificação
</h3>

Notificações de novas vulnerabilidades renderizam uma seção de card por descoberta, mostrando:

* **Título** — com link direto para a descoberta no aplicativo ZeroPath
* **Severidade** — selo colorido com a pontuação composta (por exemplo 🔴 Critical (92))
* **Status** — status atual da descoberta (Open, Patched, False positive, …)
* **Arquivo afetado** — o arquivo e a linha onde a descoberta foi detectada
* **Pull request** — o PR que disparou o scan, em notificações de scan de PR
* **Introduzido por** — o autor do git blame que introduziu as linhas vulneráveis, quando disponível
* **Trecho da descrição** — um resumo curto da descoberta

Até cinco descobertas aparecem por mensagem, das mais severas para as menos severas. Quando existem mais descobertas do que isso, o card termina com um link para os resultados completos do scan no ZeroPath.

Notificações do Teams e do Slack são geradas a partir dos mesmos modelos de evento, então os dois canais permanecem consistentes em texto, truncamento e em quais descobertas incluem.

<h2 id="managing-channels">
  Gerenciando Canais
</h2>

Selecione a integração **Microsoft Teams** em **Settings → Integrations** para gerenciar os destinos:

* **Enviar uma mensagem de teste** — verifica se o webhook ainda aceita publicações.
* **Remover um canal** — exclui a URL de webhook armazenada. As regras de notificação que o indicavam são atualizadas: o canal é removido de cada regra, regras que ficam sem canais do Teams deixam de direcionar ao Teams, e uma regra que fica sem nenhum canal é desabilitada.
* **Desconectar o Microsoft Teams** — remove todos os canais registrados e atualiza as regras que os utilizavam.

Um canal exibido como **Paused** é ignorado na entrega. O ZeroPath pausa um canal quando o Teams rejeita o webhook de forma permanente (por exemplo, o workflow foi excluído ou desligado); recrie o workflow no Teams e adicione a nova URL como um canal.

Como a URL do webhook é somente escrita, um canal existente não pode ser editado — substitua-o removendo o canal e adicionando a nova URL.

<h2 id="rate-limiting">
  Limitação de Taxa
</h2>

As entregas para cada canal do Teams são espaçadas de forma independente, e um canal que começa a falhar sofre recuo exponencial. Assim, um destino com problemas não pode atrasar as entregas para os seus outros canais ou para outras integrações.

O Teams rejeita cards muito grandes, então o ZeroPath trunca títulos, descrições e cabeçalhos para manter cada card confortavelmente dentro do limite.

<h2 id="troubleshooting">
  Solução de Problemas
</h2>

**Não estou recebendo notificações**

* Confirme que uma regra de notificação seleciona **Microsoft Teams** *e* marca o canal específico — registrar um canal, por si só, não entrega nada.
* Verifique se a regra está habilitada e cobre o repositório e o tipo de evento esperados.
* Verifique se o limite de pontuação não está filtrando todas as descobertas.
* Envie uma mensagem de teste para confirmar que o webhook ainda funciona.

**"Invalid Microsoft Teams webhook URL"**

* A URL precisa ser HTTPS e estar em um host de webhook da Microsoft. Copie a **HTTP POST URL** do próprio workflow do Teams, em vez da barra de endereços do navegador, e cole-a por completo.

**O canal aparece como Paused**

* O Teams rejeitou o webhook de forma permanente. Verifique se o workflow ainda existe e está ligado no Teams; se foi excluído, crie um novo e registre a nova URL.

**O Teams exibe um card com `<` ou `&amp;` literais**

* Reporte isso como um bug: o texto das notificações é traduzido do dialeto de marcação do Slack para o markdown que o Teams renderiza, e escapes remanescentes indicam um template que ignorou essa tradução.
