Hola,
mientras probaba el nodo de Microsoft Teams para un despliegue empresarial, noté que el nodo parece requerir el permiso de Microsoft Graph Group.ReadWrite.All incluso para simplemente enviar un mensaje a un canal de Teams.
Para las pruebas, ya configuré los siguientes ámbitos delegados para el registro de la aplicación:
-
User.Read -
Team.ReadBasic.All -
ChannelMessage.Read.All -
ChannelMessage.ReadWrite -
ChannelMessage.Send -
Subscription.Read.All -
Chat.Read
Incluso esto ya parece excesivamente permisivo para un caso de uso tan simple desde la perspectiva de seguridad empresarial.
Sin embargo, el nodo de Teams aún no funciona a menos que se otorgue Group.ReadWrite.All.
El error que se devuelve es:
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’
Lo que es especialmente preocupante es que ChannelMessage.Send ya está configurado en el registro de la aplicación, pero aparentemente no está incluido en los ámbitos de token efectivos utilizados por el nodo.
Según nuestras pruebas y revisión de la documentación de la API de Microsoft Graph, no parece que enviar un simple mensaje de canal deba requerir Group.ReadWrite.All.
En este momento, esto parece ser:
-
un error en la autenticación del nodo de Teams o en el manejo de ámbitos
-
o un requisito de permiso innecesariamente amplio impuesto por el nodo mismo
Desde la perspectiva de seguridad empresarial, esto es un problema grave porque Group.ReadWrite.All otorga acceso extremadamente amplio a nivel de inquilino e incumple los principios de privilegio mínimo para un flujo de trabajo de mensajería simple.
En su estado actual, esto hace que el nodo de Teams sea prácticamente inutilizable en muchos entornos empresariales debido a los requisitos de seguridad y cumplimiento normativo.
¿Podría aclarar por qué se requiere este permiso y si está previsto el soporte para permisos granulares como ChannelMessage.Send?
Gracias.