Teams Node Requer Permissão Group.ReadWrite.All – Preocupação com Segurança Empresarial

Olá,

ao testar o nó Microsoft Teams para uma implantação empresarial, notei que o nó parece exigir a permissão do Microsoft Graph Group.ReadWrite.All mesmo apenas para enviar uma mensagem para um canal do Teams.

Para testes, já configurei os seguintes escopos delegados para o registro do aplicativo:

  • User.Read

  • Team.ReadBasic.All

  • ChannelMessage.Read.All

  • ChannelMessage.ReadWrite

  • ChannelMessage.Send

  • Subscription.Read.All

  • Chat.Read

Isso já parece excessivamente permissivo para um caso de uso tão simples de uma perspectiva de segurança empresarial.

No entanto, o nó do Teams ainda não funciona a menos que Group.ReadWrite.All seja concedido.

O erro retornado é:

Missing scope permissions on the request. API requires one of ‘ChannelMessage.Send, Group.ReadWrite.All’. Scopes on the request ‘ChannelMessage.Read.All, ChannelMessage.ReadWrite, Chat.Read, openid, Subscription.Read.All, Team.ReadBasic.All, User.Read, profile, email’

O que é especialmente preocupante é que ChannelMessage.Send já está configurado no registro do aplicativo, mas aparentemente não está incluído nos escopos de token efetivos usados pelo nó.

Com base em nossos testes e revisão da documentação da API do Microsoft Graph, não parece que enviar uma mensagem simples em um canal deva exigir Group.ReadWrite.All.

No momento, isso parece ser:

  • um bug na autenticação/manipulação de escopos do nó Teams

  • ou um requisito de permissão desnecessariamente amplo imposto pelo próprio nó

De uma perspectiva de segurança empresarial, esta é uma questão séria porque Group.ReadWrite.All concede acesso extremamente amplo em toda a organização e viola princípios de menor privilégio para um fluxo de trabalho de mensagens simples.

Em seu estado atual, isso torna efetivamente o nó Teams inutilizável em muitos ambientes empresariais devido aos requisitos de segurança e conformidade.

Poderia esclarecer por que essa permissão é necessária e se há suporte planejado para permissões granulares como ChannelMessage.Send?

Obrigado.

Já revisei o nó da comunidade n8n-nodes-msteams-lite. Porém, do ponto de vista de segurança e conformidade empresarial, não tenho certeza se depender de pacotes npm externos da comunidade é uma solução viável a longo prazo.

O repositório atualmente parece não ter estrelas, observadores ou forks

o que dificulta avaliar maturidade, qualidade de manutenção, adoção ou confiabilidade a longo prazo.

Além disso, introduzir pacotes npm mantidos externamente em uma plataforma de automação empresarial introduz seus próprios riscos de segurança e cadeia de suprimentos, especialmente quando esses pacotes interagem com sistemas altamente privilegiados como Microsoft Graph e Teams.

Oi @Daniel_Stahl bem-vindo à comunidade n8n!

A partir da minha análise do comportamento e do erro da Graph API, isso parece estar relacionado à forma como o nó Teams lida com escopos OAuth delegados durante a geração de token, em vez de um requisito intencional para Group.ReadWrite.All; especificamente, ChannelMessage.Send não parece estar incluído no token de acesso efetivo apesar de estar configurado no registro do app, o que explicaria por que a verificação de permissão de fallback do Microsoft Graph está solicitando o escopo mais amplo em vez disso.