Pular para o conteúdo principal

Auditoria de Usuários no Azure AD: Script Prático para Gestão e Segurança da Sua Empresa

 Olá, pessoal!

Gerenciar usuários no Azure Active Directory é uma tarefa que demanda atenção constante — especialmente quando falamos de auditoria e governança de acessos. Para ajudar times de TI e gestores a terem uma visão clara da estrutura de usuários e suas relações de gerenciamento, desenvolvi um script em PowerShell para auditoria que gera um relatório completo em Excel, sem modificar nada no ambiente.

Por que realizar auditorias periódicas no Azure AD?

- Visibilidade: Saber quem está ativo, quem possui licença, quem gerencia quem.

- Segurança: Identificar contas sem gestor, que podem representar riscos ou erros administrativos.

- Organização: Ter relatórios rápidos para decisões e validações em auditorias internas.

O que o script faz?

  • Lista todos os usuários ativos do tipo 'Member' (exclui contas guest e desativadas).

  • Identifica usuários que possuem gestor e aqueles que não têm.

  • Mapeia gestores que possuem subordinados ativos.

  • Coleta dados importantes como nome, UPN, departamento, status da conta e status de licença.

  • Gera um arquivo Excel com várias abas para fácil análise:

    • Usuários com manager

    • Usuários sem manager

    • Managers com subordinados

    • Resumo gráfico e tabelas para insights rápidos

Como o script ajuda seu time?

- Disponibilizar essa ferramenta para seu time é garantir uma auditoria rápida, segura e prática, sem risco de alterar dados no ambiente.

- O arquivo é gerado localmente com timestamp para controle histórico.

====================================================================

Import-Module ImportExcel

Connect-AzureAD


$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"

$excelPath = "AuditoriaUsuarios_$timestamp.xlsx"


# Arrays para armazenar dados

$comManager = @()

$semManager = @()

$managersComSubordinados = @()


$usuarios = Get-AzureADUser -All $true | Where-Object {

    $_.UserType -eq 'Member' -and $_.AccountEnabled -eq $true -and $_.UserPrincipalName -notlike "*#EXT#*"

}


foreach ($user in $usuarios) {

    $manager = Get-AzureADUserManager -ObjectId $user.ObjectId -ErrorAction SilentlyContinue

    $licenciado = (Get-AzureADUserLicenseDetail -ObjectId $user.ObjectId -ErrorAction SilentlyContinue).Count -gt 0

    $statusLicenca = if ($licenciado) { "Licensed" } else { "Unlicensed" }

    $statusConta = if ($user.AccountEnabled) { "Active" } else { "Disabled" }


    if ($manager) {

        $comManager += [PSCustomObject]@{

            Nome            = $user.DisplayName

            UPN             = $user.UserPrincipalName

            Departamento    = $user.Department

            'Manager Nome'  = $manager.DisplayName

            'Manager UPN'   = $manager.UserPrincipalName

            'Status Conta'  = $statusConta

            'Status Licença'= $statusLicenca

        }

    } else {

        $semManager += [PSCustomObject]@{

            Nome            = $user.DisplayName

            UPN             = $user.UserPrincipalName

            Departamento    = $user.Department

            'Manager Nome'  = "N/A"

            'Manager UPN'   = "N/A"

            'Status Conta'  = $statusConta

            'Status Licença'= $statusLicenca

        }

    }


    $subordinados = Get-AzureADUserDirectReport -ObjectId $user.ObjectId -ErrorAction SilentlyContinue

    if ($subordinados.Count -gt 0) {

        $managersComSubordinados += [PSCustomObject]@{

            NomeManager        = $user.DisplayName

            UPNManager         = $user.UserPrincipalName

            Departamento       = $user.Department

            StatusConta        = $statusConta

            StatusLicenca      = $statusLicenca

            QtdSubordinados    = $subordinados.Count

            'Nomes Subordinados' = ($subordinados | Select-Object -ExpandProperty DisplayName) -join ", "

            'UPNs Subordinados'  = ($subordinados | Select-Object -ExpandProperty UserPrincipalName) -join ", "

        }

    }

}


# Exporta para Excel (com múltiplas abas)

# ...

====================================================================

Agora que você já tem o script pronto para rodar, é hora de colocar em prática essa auditoria no seu ambiente Azure AD. Manter o controle sobre usuários, gestores e licenças ajuda a garantir a segurança e a eficiência da sua infraestrutura.

Lembre-se: auditorias regulares são a base para uma governança forte e para evitar surpresas no futuro. Use essa ferramenta sempre que precisar e compartilhe com seu time para facilitar o trabalho de todos.

Se gostou, deixe seu comentário, compartilhe este artigo e fique ligado para mais conteúdos práticos que facilitam o dia a dia do profissional de TI.



Comentários

Postagens mais visitadas deste blog

Microsoft Authenticator agora suporta Passkeys: Como ativar e testar

 A autenticação de dois fatores (MFA) sempre foi uma das melhores práticas para proteger contas online. Agora, a Microsoft deu um passo além ao adicionar suporte nativo para Passkeys no Microsoft Authenticator . Essa atualização, lançada em janeiro de 2025, permite que os usuários façam login sem precisar de senhas tradicionais, utilizando métodos resistentes a phishing e mais convenientes, como biometria ou PIN. Neste artigo, vamos explorar o que são Passkeys, os benefícios desse novo recurso e como ativá-lo e testá-lo no Microsoft Authenticator . O que são Passkeys? As Passkeys são um método moderno de autenticação baseado no padrão FIDO2/WebAuthn , que permite que os usuários façam login de maneira segura sem precisar inserir senhas. Em vez disso, eles usam biometria (impressão digital ou reconhecimento facial), um PIN ou outro fator local para validar a identidade. Principais benefícios das Passkeys - Resistência a phishing: Como não há senhas para serem roubadas, ataques d...

Mudança no Processo de Exclusão de Usuário no Microsoft 365

 A Microsoft fez uma atualização importante no processo de exclusão de usuários no Microsoft 365 . Agora, ao excluir um usuário, os delegados (pessoas que têm acesso à caixa de correio e aos arquivos) terão apenas 30 dias para acessar o OneDrive do usuário excluído. O que muda? Prazo reduzido : O tempo de acesso aos arquivos foi limitado a 30 dias após a exclusão do usuário, o que significa que os dados ficam acessíveis por um período mais curto. Impacto nos Delegados : Antes, os delegados podiam acessar os dados por mais tempo. Agora, a Microsoft reduziu esse prazo para evitar o armazenamento prolongado de dados de usuários excluídos. Ação Rápida Necessária : Caso seja necessário manter os arquivos por mais tempo, a organização deve tomar providências para transferir ou arquivar esses dados antes que o acesso expire. Por que isso é importante? Essa mudança reflete um esforço da Microsoft para alinhar a gestão de dados com práticas de segurança mais rígidas, incentivando as empre...

Microsoft está removendo as permissões "Todos, exceto usuários externos" no OneDrive

 Já encontrou arquivos no OneDrive acessíveis para toda a sua organização, mesmo sem ter compartilhado intencionalmente? Isso acontece por conta da permissão "Todos, exceto usuários externos" (EEEU) , que permite o acesso interno sem restrições. Mas isso está prestes a mudar. - A partir de 10 de abril de 2025 , a Microsoft removerá a permissão EEEU dos sites raiz do OneDrive e das bibliotecas de documentos padrão, reduzindo o risco de compartilhamento acidental de dados. - Se seus aplicativos, processos ou usuários dependem dessa permissão, eles perderão o acesso assim que a alteração for aplicada. - No entanto, permissões diretas de arquivos e pastas não serão afetadas – quem já tem acesso explícito continuará com permissão. Muitas organizações deixam conteúdos abertos para todos os usuários internos sem perceber. Apesar de parecer inofensivo, isso aumenta riscos de segurança e pode levar à exposição involuntária de dados. O que você deve fazer? ✅ Revisar as permissões ...