Pular para o conteúdo principal

Auditoria Automatizada de Caixas Compartilhadas no Microsoft 365 com Azure Logic Apps e KQL

O que essa Logic App faz?

Todos os dias, às 08:00 da manhã, o fluxo:

  1. Executa uma consulta KQL no Log Analytics.

  2. Filtra operações de:

    • Criação (New-Mailbox)

    • Alteração (Set-Mailbox)

    • Exclusão (Remove-Mailbox)

  3. Identifica apenas as caixas compartilhadas com base no parâmetro "Shared".

  4. Extrai dados relevantes:

    • Nome/Display Nome da caixa

    • Operação realizada

    • Responsável

    • Horário da ação (convertido para horário de Brasília)

  5. Envia automaticamente uma mensagem para um grupo do Microsoft Teams, com um resumo claro e organizado das alterações.

Exemplo da mensagem enviada para o Teams:

🔔 Alterações em Caixa Compartilhada

Foram detectadas 3 alterações em Caixa Compartilhada no Microsoft 365:

📋 Resumo das Alterações:
- Nome da Caixa Compartilhada: FinanceiroDept
- Operações realizadas: Set-Mailbox
- Usuários responsáveis: joao.silva@empresa.com

⏰ Horários das alterações (Horário de Brasília):
04/06/2025 07:58
Consulta KQL utilizada:

OfficeActivity
| where RecordType == "ExchangeAdmin"
| where Operation in ("New-Mailbox", "Set-Mailbox", "Remove-Mailbox")
| where Parameters contains "Shared"
| extend paramArray = parse_json(Parameters)
| mv-expand paramArray
| extend ParamName = tostring(paramArray.Name), ParamValue = tostring(paramArray.Value)
| where ParamName in ("Name", "DisplayName")
| summarize
MailboxName = make_list(iff(ParamName == "Name", ParamValue, ""), 1),
DisplayName = make_list(iff(ParamName == "DisplayName", ParamValue, ""), 1)
by TimeGenerated, UserId, Operation
| project TimeGenerated, Operation, UserId, DisplayName = tostring(DisplayName[0]), MailboxName = tostring(MailboxName[0])
| order by TimeGenerated desc

===================================================================
Tecnologias utilizadas:
  • Azure Logic Apps

  • Log Analytics com Kusto Query Language (KQL)

  • Microsoft Teams (conector de mensagens)

  • Exchange Admin Audit Logs

Benefícios dessa automação:

  • Monitoramento proativo das caixas compartilhadas.

  • Alertas automáticos com dados organizados e contextualizados.

  • Governança e auditoria contínua, sem intervenção manual.

  • Escalável e integrado ao ecossistema do Microsoft 365 e Azure.

Comentários

Postagens mais visitadas deste blog

Otimize Custos e Segurança: Auditoria Fácil de Usuários e Licenças no Azure DevOps

Por que criei este script de auditoria para o Azure DevOps? Em meu trabalho diário com equipes que utilizam o Azure DevOps, percebi que muitos gestores e administradores enfrentam um desafio comum: controlar quem realmente está usando o ambiente, qual tipo de licença está ativa e, principalmente, quando foi a última vez que cada usuário acessou a plataforma. Em ambientes com múltiplas organizações e centenas de usuários, controlar quem realmente utiliza repositórios, pipelines e boards pode gerar uma economia significativa. Tudo isso de forma segura, sem modificar nada no ambiente, garantindo que a auditoria seja apenas informativa. Essa auditoria é essencial para manter a segurança, controlar custos e garantir conformidade. Pensando nisso, criei um script de auditoria que: O que o script verifica? Para cada usuário com licença Basic , o script checa: Commits em repositórios Git Execução de builds no Azure Pipelines Atividades nos Boards (work items modificados) Se o...

Auditoria de Usuários Ativos no Azure AD com Último Login e Tipo de Conta

Durante a gestão de ambientes em nuvem, é comum nos depararmos com contas de usuários que permanecem ativas, mesmo sem uso recente. Isso impacta diretamente no consumo de licenças e na postura de segurança da organização. Pensando nisso, desenvolvi um script em PowerShell utilizando o Microsoft Graph para facilitar auditorias de contas ativas no Azure AD , trazendo informações importantes como: Nome do usuário E-mail (UPN) Departamento e cargo Data de criação da conta Último login registrado Tipo de conta (nuvem ou sincronizada com AD local) O que o script faz? - Conecta-se ao Microsoft Graph com as permissões necessárias - Busca todos os usuários internos ativos (tipo "Member") - Verifica a última data de login registrada - Informa se a conta é nuvem (Cloud Only) ou sincronizada (On-Premises) - Exporta os dados para um relatório CSV ================================================================ # Script para auditoria de usuários ativos no Azure...

Auditoria no Azure AD: o risco oculto das caixas compartilhadas

Durante o planejamento de uma auditoria de contas no Azure AD, me deparei com um desafio importante: ao listar usuários Cloud-Only, percebi que caixas compartilhadas do Exchange Online também são exibidas como contas de usuário comuns no diretório . O problema: Shared Mailboxes que "parecem" usuários Quando criamos uma caixa compartilhada (Shared Mailbox) no Microsoft 365, o sistema cria automaticamente uma conta de usuário associada, com UPN e tudo. Mesmo após a conversão da caixa para o tipo "compartilhada", essa conta permanece visível no Azure AD e continua se comportando como uma conta Cloud-Only. Ou seja, se você estiver rodando um script ou fazendo uma auditoria manual para identificar contas inativas ou que devem ser excluídas, corre o risco de excluir acidentalmente uma caixa de e-mail ativa e compartilhada com outros times . A solução: auditoria com checagem de tipo de caixa Para evitar esse tipo de erro, desenvolvi um script em PowerShell que: Identi...