Índice
Administradores Globais: Acesso Privilegiado
Os administradores globais possuem o maior nível de privilégios no Microsoft Entra ID, com acesso para:
- Gerenciar todos os recursos do Entra ID
- Atribuir funções administrativas a outros utilizadores
- Alterar senhas de qualquer utilizador
- Configurar domínios, identidade híbrida, e configurações do tenant
- Acessar todas as aplicações e configurações de serviço
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ível
$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
- Mantenha o número de administradores globais no mínimo necessário (4-5 contas)
- Use funções mais restritas quando possível (administradores de aplicações, usuários, etc.)
- Implemente atribuições Just-In-Time através do Privileged Identity Management
- Evite usar contas de administrador global para tarefas diárias
- Configure revisões de acesso regulares para todas as funções privilegiadas
- Implemente uma conta de acesso de emergência com processos adequados para seu uso