Pular para o conteúdo principal

Auditoria de App Registrations no Azure AD: Como Organizar e Limpar Sua Base de Aplicativos com PowerShell e Microsoft Graph

No gerenciamento de identidades e acessos em ambientes Azure AD, muitas vezes nos deparamos com a necessidade de auditar e organizar os App Registrations. Com o tempo, muitos desses registros se tornam obsoletos ou não utilizados, representando um risco para a segurança e dificultando o gerenciamento da infraestrutura.
Neste post, vou compartilhar um script simples em PowerShell que ajuda a identificar e auditar os App Registrations do seu ambiente Azure AD, verificando dados como:

- DisplayName: O nome do aplicativo (Display Name).
- ClientId: O ID do cliente (Client ID) do aplicativo.
- SecretUsage: Indica se os segredos (credenciais) do aplicativo estão em uso ou não, com base na utilização dos últimos 90 dias.
- SecretExpiry: A data de expiração do primeiro segredo registrado para o aplicativo.
- AuthUsage: Indica se o aplicativo foi autenticado recentemente nos últimos 90 dias, conforme os logs de autenticação do Microsoft Graph.

Por que auditar os App Registrations?

A auditoria de App Registrations é uma prática importante para garantir que apenas os aplicativos realmente utilizados permaneçam no seu ambiente. Isso não apenas ajuda a manter a segurança da plataforma, mas também contribui para a organização e o controle da infraestrutura.

Benefícios da auditoria:

- Segurança: Remover registros desnecessários reduz a superfície de ataque.

- Organização: Aplicativos em desuso são excluídos, facilitando o gerenciamento.

- Eficiência: Ajudar a manter a plataforma otimizada.

Como Funciona o Script?

O script que vou compartilhar verifica informações cruciais sobre os App Registrations, como a validade do Client ID, o uso de Secrets e as autenticações realizadas nos últimos 90 dias. Ele conecta-se ao Azure AD e ao Microsoft Graph para coletar os dados necessários.

Aqui estão as etapas do script:

- Conexão com o Azure AD e Microsoft Graph: O script verifica a conexão com o Azure e garante a autorização para acessar os dados de autenticação.

- Coleta de Dados: Para cada aplicativo no Azure AD, ele coleta informações sobre o uso dos Secrets, expiração, e se houve autenticações recentes.

- Exportação para CSV: Após a coleta das informações, o script exporta os resultados para um arquivo CSV, que pode ser facilmente analisado.

Script PowerShell para Auditoria

Aqui está o script completo em PowerShell para realizar essa auditoria:

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

#Garantindo conexão com o Azure

if (-not (Get-AzContext)) {

    Write-Host "Conectando ao Azure..." -ForegroundColor Yellow

    Connect-AzAccount

}

# Verificando se a conexão foi bem-sucedida

if (-not (Get-AzContext)) {

    Write-Host "Falha ao conectar ao Azure. Verifique suas credenciais." -ForegroundColor Red

    exit

}

# Conectando ao Microsoft Graph para obter logs de autenticação

try {

    Write-Host "Conectando ao Microsoft Graph..." -ForegroundColor Yellow

    Connect-MgGraph -Scopes "AuditLog.Read.All"

} catch {

    Write-Host "Falha ao conectar ao Microsoft Graph. Verifique permissões." -ForegroundColor Red

    exit

}

# Obtendo aplicativos no Azure AD

try {

    Write-Host "Obtendo lista de aplicativos do Azure AD..." -ForegroundColor Yellow

    $applications = Get-AzADApplication


    if ($null -eq $applications -or $applications.Count -eq 0) {

        Write-Host "Nenhum aplicativo encontrado no Azure AD." -ForegroundColor Yellow

        exit

    }

    # Criando lista para armazenar dados

    $appDetails = @()

    # Obtendo data de corte para os últimos 90 dias

    $cutoffDate = (Get-Date).AddDays(-90).ToString("yyyy-MM-ddTHH:mm:ssZ")

    # Obtendo logs de autenticação dos últimos 90 dias

    Write-Host "Obtendo logs de autenticação..." -ForegroundColor Yellow

    $authLogs = Get-MgAuditLogSignIn -Filter "createdDateTime ge $cutoffDate"

    foreach ($app in $applications) {

        # Obtendo Secrets (credenciais) do aplicativo

        $secrets = Get-AzADAppCredential -ApplicationId $app.AppId


        # Verificando se o segredo foi utilizado nos últimos 90 dias

        $secretsUsed = $false

        foreach ($secret in $secrets) {

            if ($secret.StartDateTime -ge (Get-Date).AddDays(-90)) {

                $secretsUsed = $true

                break

            }

        }


        # Caso o segredo não tenha sido utilizado nos últimos 90 dias, marcar

        $secretUsage = if ($secretsUsed) { "Em uso" } else { "Não usado nos últimos 90 dias" }


        # Verificando se o aplicativo teve logins recentes

        $authUsed = $authLogs | Where-Object { $_.AppId -eq $app.AppId }


        # Definindo status de uso do aplicativo

        $authUsage = if ($authUsed) { "Autenticado recentemente" } else { "Sem autenticações nos últimos 90 dias" }

        # Adicionando detalhes do aplicativo à lista

        $appDetails += [PSCustomObject]@{

            'DisplayName'   = $app.DisplayName

            'ClientId'      = $app.AppId

            'SecretUsage'   = $secretUsage

            'SecretExpiry'  = ($secrets | Select-Object -First 1 -ExpandProperty EndDateTime) 

            'AuthUsage'     = $authUsage

        }

    }


    # Definindo o caminho do arquivo CSV

    $csvPath = "$env:USERPROFILE\Documents\AzureADApplications.csv"


    # Exportando para CSV

    $appDetails | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8


    # Confirmando a exportação

    if (Test-Path $csvPath) {

        Write-Host "Arquivo exportado com sucesso: $csvPath" -ForegroundColor Green

    } else {

        Write-Host "Falha ao salvar o arquivo. Verifique permissões na pasta." -ForegroundColor Red

    }

} catch {

    Write-Host "Erro ao obter aplicativos do Azure AD: $_" -ForegroundColor Red

}

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

Como usar o script?

Baixe o script: Copie e cole o código acima em um arquivo .ps1 no seu computador.

Execute no PowerShell: Abra o PowerShell como administrador e execute o script.

Analise a planilha: Após a execução, você terá um arquivo CSV com as informações sobre os App Registrations, pronto para análise.

Conclusão

Com esse script, você pode facilmente auditar e limpar os App Registrations no Azure AD, melhorando a organização e a segurança do seu ambiente. O processo de auditoria se torna simples e automatizado, economizando tempo e esforço.

Se você tem alguma dúvida ou sugestão de melhorias, deixe seu comentário abaixo! Vamos continuar criando soluções práticas e eficazes para otimizar o gerenciamento no Azure.



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 ...