Identificando Utilizadores Locais, Cloud e Híbridos
Em ambientes corporativos que utilizam soluções híbridas Microsoft, é comum encontrarmos três tipos de utilizadores: locais (on-premises), em cloud (cloud-only) e híbridos (sincronizados). Identificar corretamente estes tipos é essencial para aplicar políticas adequadas, solucionar problemas de autenticação e garantir o gerenciamento eficiente de identidades.
Os Três Tipos de Identidades
1. Utilizadores Locais (On-premises)
- Existem apenas no Active Directory local
- Não possuem representação no Entra ID (anteriormente Azure AD)
- Gerenciados exclusivamente por ferramentas on-premises como Active Directory Users and Computers
2. Utilizadores em Cloud (Cloud-only)
- Criados diretamente no Microsoft Entra ID
- Não possuem representação no AD local
- Gerenciados via Portal Azure, Microsoft 365 Admin Center ou Microsoft Graph API
3. Utilizadores Híbridos (Sincronizados)
- Existem tanto no AD local quanto no Entra ID
- São sincronizados via Microsoft Entra Connect (antigo Azure AD Connect)
- Atributos principais geralmente gerenciados no AD local e replicados para o cloud
Identificação via Microsoft Graph API
A Microsoft Graph API oferece métodos para identificar facilmente o tipo de cada utilizador. O principal atributo que diferencia estas contas é o onPremisesSyncEnabled
.
Consulta para Identificar Tipos de Utilizadores
# Conectar ao Microsoft Graph
Connect-MgGraph -Scopes "User.Read.All"
# Obter todos os utilizadores com atributos relevantes para identificação
$users = Get-MgUser -All -Property Id, DisplayName, UserPrincipalName, OnPremisesSyncEnabled, OnPremisesImmutableId, OnPremisesLastSyncDateTime
# Categorizar os utilizadores
$cloudUsers = $users | Where-Object { $null -eq $_.OnPremisesSyncEnabled }
$syncedUsers = $users | Where-Object { $_.OnPremisesSyncEnabled -eq $true }
# Exibir informações
Write-Host "Total de utilizadores: $($users.Count)"
Write-Host "Utilizadores em cloud: $($cloudUsers.Count)"
Write-Host "Utilizadores sincronizados: $($syncedUsers.Count)"
# Opcional: Exportar para CSV para análise posterior
$users | Select-Object DisplayName, UserPrincipalName,
@{Name="Tipo";Expression={
if ($_.OnPremisesSyncEnabled -eq $true) {"Sincronizado"}
else {"Cloud"}
}},
OnPremisesImmutableId,
OnPremisesLastSyncDateTime |
Export-Csv -Path "TiposUtilizadores.csv" -NoTypeInformation -Encoding UTF8
Consulta Direta via Graph API REST
Para desenvolvedores que precisam usar a API REST diretamente:
GET https://graph.microsoft.com/v1.0/users?$select=id,displayName,userPrincipalName,onPremisesSyncEnabled,onPremisesImmutableId,onPremisesLastSyncDateTime
Atributos-Chave para Identificação
Atributo | Utilizadores Cloud | Utilizadores Sincronizados |
---|---|---|
onPremisesSyncEnabled | null | true |
onPremisesImmutableId | null | Valor do objectGUID do AD convertido para Base64 |
onPremisesLastSyncDateTime | null | Data/hora da última sincronização |
source | Azure Active Directory | Windows Server AD |
Casos de Uso para Identificação
-
Aplicação seletiva de políticas: Frequentemente, políticas de segurança diferentes são aplicadas a contas cloud vs. sincronizadas
-
Troubleshooting de autenticação: Problemas de login têm causas e soluções diferentes dependendo do tipo de conta
-
Gestão de licenças: Estratégias de licenciamento podem variar com base no tipo de conta
-
Operações em massa: Automatização de tarefas diferenciadas para cada tipo de conta
-
Auditoria e conformidade: Mapeamento de contas para relatórios regulatórios
Implementação de Política Baseada em Tipo de Conta
Com a Microsoft Graph API, você pode implementar políticas baseadas no tipo de conta. Exemplo:
# Aplicar MFA apenas para contas cloud
$cloudUsers = Get-MgUser -All -Filter "onPremisesSyncEnabled eq null" -Select "id,displayName,userPrincipalName"
foreach ($user in $cloudUsers) {
# Aplicar política de MFA (exemplo conceitual)
Set-MgUserAuthenticationMethodPolicy -UserId $user.Id -PolicyName "Cloud_MFA_Policy"
Write-Host "Aplicada política de MFA para $($user.DisplayName)"
}
Identificação de Contas Locais (On-Premises Only)
Para identificar contas que existem apenas no AD local e não foram sincronizadas ao Entra ID, você precisará:
- Obter todos os utilizadores do AD local
- Obter todos os utilizadores sincronizados do Entra ID
- Comparar os conjuntos para identificar utilizadores locais sem representação no cloud
# Obter utilizadores AD local
$adUsers = Get-ADUser -Filter * -Properties ObjectGUID, UserPrincipalName, EmailAddress
# Obter utilizadores sincronizados do Entra ID
Connect-MgGraph -Scopes "User.Read.All"
$syncedUsers = Get-MgUser -All -Filter "onPremisesSyncEnabled eq true" -Select "onPremisesImmutableId"
# Converter imutableId para formato comparável com ObjectGUID
$syncedGuids = $syncedUsers | ForEach-Object {
if ($_.OnPremisesImmutableId) {
[Guid][System.Convert]::FromBase64String($_.OnPremisesImmutableId)
}
}
# Encontrar usuários que existem apenas no AD local
$onPremOnlyUsers = $adUsers | Where-Object { $syncedGuids -notcontains $_.ObjectGUID }
Write-Host "Utilizadores apenas locais (não sincronizados): $($onPremOnlyUsers.Count)"
Considerações sobre Segurança e Gestão
-
Políticas de senha: Contas sincronizadas geralmente seguem políticas do AD local, enquanto contas cloud seguem políticas do Entra ID
-
Self-Service Password Reset (SSPR): Configuração difere para contas cloud vs. sincronizadas
-
Autenticação baseada em risco: Contas cloud podem aproveitar todos os recursos do Identity Protection
-
Ciclo de vida da conta: Contas sincronizadas dependem do AD local para gerenciamento do ciclo de vida
Melhorando o Processo de Gestão
Para ambientes híbridos complexos, considere:
-
Etiquetagem clara: Use extensões de esquema ou campos personalizados para marcar claramente os tipos de contas
-
Automação de relatórios: Crie relatórios periódicos sobre a distribuição de tipos de contas
-
Monitoramento de sincronização: Alertas para falhas de sincronização que podem afetar contas híbridas
-
Documentação de processos: Documente claramente qual sistema é autoritativo para cada tipo de atributo
Conclusão
A identificação precisa do tipo de cada utilizador em um ambiente híbrido é fundamental para a gestão eficaz de identidades. Com a Microsoft Graph API, esta tarefa pode ser facilmente automatizada, permitindo a aplicação de políticas específicas e a resolução eficiente de problemas relacionados à identidade.
A tendência de longo prazo na maioria das organizações é a migração gradual para identidades baseadas em cloud, mas a realidade atual para muitas empresas ainda é um ambiente híbrido complexo que exige um gerenciamento cuidadoso de diferentes tipos de contas de utilizador.