Skip to content
Go back

Administradores Globais

Published:  at  10:00 AM

Administradores Globais: Acesso Privilegiado

Os administradores globais possuem o maior nível de privilégios no Microsoft Entra ID, com acesso para:

Identificar e auditar administradores globais é crucial para manter uma postura de segurança adequada.

Identificação via Microsoft Graph

Para listar todos os administradores globais:

# Conectar ao Microsoft Graph
Connect-MgGraph -Scopes "RoleManagement.Read.Directory"

# ID da função de Administrador Global
$globalAdminRoleId = "62e90394-69f5-4237-9190-012177145e10"

# Obter atribuições da função
$globalAdmins = Get-MgRoleManagementDirectoryRoleAssignment -Filter "roleDefinitionId eq '$globalAdminRoleId'"

# Obter detalhes de cada administrador
$adminDetails = @()
foreach ($admin in $globalAdmins) {
    $user = Get-MgUser -UserId $admin.PrincipalId -ErrorAction SilentlyContinue
    
    if ($user) {
        $adminInfo = [PSCustomObject]@{
            DisplayName = $user.DisplayName
            UserPrincipalName = $user.UserPrincipalName
            Id = $user.Id
            AssignmentId = $admin.Id
            ExpirationDate = if ($admin.EndDateTime) { $admin.EndDateTime } else { "Permanente" }
        }
        $adminDetails += $adminInfo
    }
}

# Exibir administradores
$adminDetails | Format-Table DisplayName, UserPrincipalName, ExpirationDate -AutoSize

Verificação de Atribuições Permanentes vs. Elegíveis

O Privileged Identity Management (PIM) permite atribuições temporárias ou elegíveis:

# Conectar com escopo adicional
Connect-MgGraph -Scopes "RoleManagement.Read.Directory", "PrivilegedAccess.Read.AzureAD"

# Obter atribuições elegíveis
$eligibleAssignments = Get-MgPrivilegedAccessRoleAssignmentScheduleInstance -PrivilegedAccessId "aadRoles" -Filter "roleDefinitionId eq '$globalAdminRoleId' and assignmentType eq 'Eligible'"

# Obter detalhes de cada atribuição elegíveis
$eligibleAdminDetails = @()
foreach ($assignment in $eligibleAssignments) {
    $user = Get-MgUser -UserId $assignment.PrincipalId -ErrorAction SilentlyContinue
    
    if ($user) {
        $adminInfo = [PSCustomObject]@{
            DisplayName = $user.DisplayName
            UserPrincipalName = $user.UserPrincipalName
            Id = $user.Id
            AssignmentType = "Elegível"
            StartDateTime = $assignment.StartDateTime
            EndDateTime = $assignment.EndDateTime
        }
        $eligibleAdminDetails += $adminInfo
    }
}

# Exibir administradores elegíveis
$eligibleAdminDetails | Format-Table DisplayName, UserPrincipalName, StartDateTime, EndDateTime -AutoSize

Relatório de Segurança e Recomendações

Para gerar um relatório de segurança sobre administradores globais:

# Verificar total de administradores globais
$totalAdmins = $adminDetails.Count
$permanentAdmins = ($adminDetails | Where-Object { $_.ExpirationDate -eq "Permanente" }).Count
$temporaryAdmins = $totalAdmins - $permanentAdmins

# Verificar administradores sem MFA
$adminsWithoutMFA = @()
foreach ($admin in $adminDetails) {
    $authMethods = Get-MgUserAuthenticationMethod -UserId $admin.Id
    
    # Verificar se tem MFA registrado
    $hasMFA = $authMethods | Where-Object {
        $_.AdditionalProperties.'@odata.type' -match 'microsoft.graph.passwordAuthenticationMethod' -eq $false
    }
    
    if (-not $hasMFA) {
        $adminsWithoutMFA += $admin
    }
}

# Gerar relatório
Write-Output "=== Relatório de Segurança - Administradores Globais ==="
Write-Output "Total de Administradores Globais: $totalAdmins"
Write-Output "Administradores com atribuição permanente: $permanentAdmins"
Write-Output "Administradores com atribuição temporária: $temporaryAdmins"
Write-Output "Administradores sem MFA: $($adminsWithoutMFA.Count)"
Write-Output ""
Write-Output "Recomendações:"
Write-Output "1. Limite o número de administradores globais a 4-5 contas"
Write-Output "2. Implemente atribuições temporárias via PIM para todos os administradores"
Write-Output "3. Exija MFA para todas as contas administrativas"
Write-Output "4. Implemente estações de trabalho de acesso privilegiado (PAWs)"
Write-Output "5. Configure alertas para todas as atividades de administradores globais"

Melhores Práticas


Suggest Changes

Previous Post
Falhas no Acesso Condicional
Next Post
Usuários Comprometidos