Fundamentação Teórica: Manage user and group properties
1. Intuição Inicial​
Pense em um cadastro de funcionários em uma empresa. Quando alguém é contratado, você preenche nome, cargo, departamento e ramal. Quando essa pessoa muda de área, você atualiza o cadastro. Quando um ramal muda, você corrige. O cadastro precisa estar sempre correto porque outros sistemas dependem dessas informações para funcionar: o controle de acesso usa o departamento, o sistema de e-mail usa o cargo, o organograma usa o gerente.
No Microsoft Entra ID, a gestão de propriedades de usuários e grupos é exatamente esse trabalho de manter os dados corretos, completos e atualizados. Mas aqui a consequência de dados incorretos vai além de um organograma errado: ela afeta diretamente quem tem acesso ao quê.
Se um usuário muda de departamento e o atributo department no Entra ID não é atualizado, ele permanece no grupo dinâmico do departamento antigo e deixa de entrar no grupo do novo departamento. Com isso, perde acessos que deveria ter e mantém acessos que não deveria. A qualidade das propriedades não é cosmética; é operacional e de segurança.
2. Contexto​
No módulo anterior, vimos como criar usuários e grupos. A criação é apenas o inÃcio do ciclo de vida. O gerenciamento de propriedades é o que sustenta o funcionamento correto do diretório ao longo do tempo.
As propriedades de usuários e grupos são consumidas por vários subsistemas do Entra ID e do Azure:
Isso significa que alterar uma propriedade pode ter efeitos em cascata: mudar o department pode remover o usuário de um grupo, revogar um papel RBAC e desabilitar o acesso a um recurso, tudo automaticamente.
3. Construção dos Conceitos​
3.1 Categorias de Propriedades de Usuário​
As propriedades de um usuário no Entra ID se dividem em categorias funcionais:
Propriedades de Identidade​
São os dados que identificam o usuário no diretório e nos sistemas de autenticação.
| Propriedade | Descrição | Mutável? |
|---|---|---|
| Object ID | Identificador único imutável gerado pelo Azure (GUID) | Não |
| User Principal Name (UPN) | Login principal no formato usuario@dominio.com | Sim, com cuidado |
| Display Name | Nome exibido na interface e no e-mail | Sim |
| Mail Nickname | Alias de e-mail, base para endereços Exchange | Sim |
| Proxy Addresses | Lista de endereços de e-mail alternativos | Sim |
O Object ID é o identificador que o Azure usa internamente para todas as referências: atribuições RBAC, membros de grupos, registros de auditoria. Ele nunca muda, mesmo que o UPN seja alterado. É por isso que ao fazer scripts e integrações, sempre use o Object ID como referência, nunca o UPN.
O UPN pode ser alterado, mas isso tem consequências. Qualquer sistema que armazenou o UPN como identificador (e não o Object ID) perderá a associação. Além disso, o usuário precisará usar o novo UPN para fazer login.
Propriedades de Contato​
| Propriedade | Descrição |
|---|---|
| Endereço de e-mail principal (pode diferir do UPN) | |
| Mobile Phone | Telefone celular. Usado para MFA e SSPR (Self-Service Password Reset) |
| Office Phone | Telefone comercial |
| Street Address, City, State, Country | Endereço fÃsico |
O Mobile Phone tem relevância de segurança direta: é um dos métodos usados para autenticação multifator e para recuperação de senha via SSPR. Se esse campo estiver incorreto ou vazio, o usuário não conseguirá usar esses recursos.
Propriedades Organizacionais​
| Propriedade | Descrição | Impacto em grupos dinâmicos |
|---|---|---|
| Job Title | Cargo do usuário | Alto |
| Department | Departamento | Alto |
| Company Name | Nome da empresa (útil em multi-tenant) | Alto |
| Employee ID | Identificador no sistema de RH | Médio |
| Employee Type | Tipo de vÃnculo (Employee, Contractor, etc.) | Alto |
| Manager | Referência para o usuário gerente | Médio |
| Office Location | Localização do escritório | Médio |
Estas são as propriedades mais usadas em regras de grupos dinâmicos. A qualidade desses dados determina diretamente a correção das associações automáticas de grupo.
Propriedades de Configuração de Conta​
| Propriedade | Descrição |
|---|---|
| Account Enabled | Se a conta está ativa ou bloqueada |
| Usage Location | PaÃs do usuário. Obrigatório para licenças Microsoft 365 |
| Password Policies | Controle de expiração e complexidade de senha |
3.2 Propriedades Imutáveis vs. Mutáveis​
3.3 Propriedades de Grupo​
Os grupos também possuem propriedades gerenciáveis, e algumas delas têm impacto significativo no comportamento do grupo.
Propriedades Básicas de Grupo​
| Propriedade | Descrição | Mutável após criação? |
|---|---|---|
| Object ID | Identificador único imutável | Não |
| Display Name | Nome do grupo exibido na interface | Sim |
| Description | Descrição do propósito do grupo | Sim |
| Group Type | Security ou Microsoft 365 | Não |
| Membership Type | Assigned, Dynamic User ou Dynamic Device | Sim (com licença) |
| Mail Nickname | Alias para endereçamento (obrigatório na criação) | Sim |
| Owners | Usuários com permissão para gerenciar o grupo | Sim |
Ponto crÃtico: o Group Type (Security vs. Microsoft 365) não pode ser alterado após a criação. Se você criou um grupo do tipo errado, precisa criar um novo grupo.
O Membership Type pode ser alterado de Assigned para Dynamic (e vice-versa), mas a mudança de Assigned para Dynamic apaga todos os membros atuais, substituindo-os pelos que a regra dinâmica selecionar. Isso não é reversÃvel automaticamente.
Owners de Grupo​
O conceito de owner (proprietário) de grupo é fundamental. Um owner de grupo pode:
- Adicionar e remover membros (em grupos Assigned)
- Editar propriedades básicas do grupo
- Excluir o grupo
Um owner não precisa ser administrador do Entra ID. Essa é uma forma de delegar a gestão de um grupo especÃfico a um usuário comum, como um lÃder de equipe que gerencia os membros do seu time sem ter acesso administrativo global.
Um grupo pode ter múltiplos owners, e é recomendado ter pelo menos dois para evitar que a gestão fique bloqueada se o único owner sair da empresa.
3.4 Propriedades de Extensão​
O Entra ID permite adicionar atributos customizados a usuários e grupos quando as propriedades padrão não são suficientes. Existem dois mecanismos:
| Mecanismo | Descrição | Onde é visÃvel |
|---|---|---|
| Extension Attributes 1-15 | 15 atributos de texto legados, herdados do AD on-premises (extensionAttribute1 a extensionAttribute15) | Portal, Graph API, PowerShell |
| Directory Extensions | Atributos customizados registrados via aplicação no Graph API | Graph API (menos visÃvel no portal) |
Os extensionAttributes são amplamente usados em ambientes hÃbridos onde o AD on-premises já os popula com dados do sistema de RH. Eles também são utilizáveis em regras de grupos dinâmicos:
user.extensionAttribute1 -eq "Terceirizado"
4. Visão Estrutural​
A estrutura mostra como as propriedades do usuário alimentam as regras dinâmicas dos grupos, e como os grupos conectam usuários a atribuições RBAC. É uma cadeia de dependências onde a qualidade dos dados no inÃcio determina a correção das permissões no fim.
5. Funcionamento na Prática​
Fluxo de Atualização de Propriedade com Impacto em Grupo Dinâmico​
Comportamento não óbvio: a reavaliação de grupos dinâmicos não é instantânea. Em tenants pequenos, pode levar segundos ou minutos. Em tenants grandes com muitos grupos dinâmicos, pode levar horas. Isso significa que após alterar uma propriedade de usuário, o reflexo no acesso a recursos pode não ser imediato.
Alteração do UPN: Fluxo de Impacto​
O Object ID é o âncora. Tudo que o Azure gerencia internamente usa o Object ID. O problema está em sistemas externos (aplicações de terceiros, bancos de dados próprios) que armazenaram o UPN como identificador.
6. Formas de Implementação​
6.1 Portal do Azure​
Quando usar: atualizações pontuais, verificação de atributos, ajustes manuais ocasionais.
Caminho para usuário: Microsoft Entra ID > Users > [selecionar usuário] > Properties ou Edit properties
Caminho para grupo: Microsoft Entra ID > Groups > [selecionar grupo] > Properties ou Members (para gestão de membros)
Vantagens:
- Visualização completa de todos os atributos
- Imediato e sem configuração
- Ideal para verificar o estado atual de um usuário
Limitações:
- Não escala para múltiplos usuários
- Sem rastreabilidade de "quem mudou o quê" além dos audit logs
Ponto de atenção: algumas propriedades não aparecem na aba "Properties" padrão do portal. Propriedades como extensionAttribute1 a extensionAttribute15 só aparecem quando relevantes ao tenant ou precisam ser editadas via PowerShell/Graph API.
6.2 PowerShell (Microsoft Graph PowerShell SDK)​
Quando usar: atualizações em lote, automação, scripts de sincronização.
Atualizar propriedades de um usuário:
Update-MgUser -UserId "joao.silva@contoso.com" `
-Department "Desenvolvimento" `
-JobTitle "Engenheiro de Software Sênior" `
-MobilePhone "+55 11 99999-0000" `
-UsageLocation "BR"
Atualizar propriedades de um grupo:
Update-MgGroup -GroupId "<object-id-do-grupo>" `
-Description "Grupo de acesso para a equipe de desenvolvimento backend" `
-DisplayName "SG-Desenvolvimento-Backend"
Adicionar um owner a um grupo:
$ownerId = (Get-MgUser -UserId "lider@contoso.com").Id
$groupId = "<object-id-do-grupo>"
New-MgGroupOwner -GroupId $groupId -DirectoryObjectId $ownerId
Atualização em lote a partir de CSV:
Import-Csv -Path "usuarios_atualizacao.csv" | ForEach-Object {
Update-MgUser -UserId $_.UPN `
-Department $_.Department `
-JobTitle $_.JobTitle
}
O arquivo CSV teria colunas: UPN, Department, JobTitle. Esta é uma das abordagens mais eficientes para sincronizar dados de RH com o Entra ID sem uma integração completa.
6.3 Azure CLI​
Atualizar propriedades de usuário:
az ad user update \
--id joao.silva@contoso.com \
--set department="Desenvolvimento" \
--set jobTitle="Engenheiro de Software Sênior"
Atualizar exibição de grupo:
az ad group update \
--group "SG-Desenvolvedores" \
--set description="Grupo principal de desenvolvedores"
Limitação importante: a CLI do Azure tem cobertura menor de atributos do Entra ID comparada ao PowerShell com Graph SDK. Para atributos mais especÃficos ou customizados, o PowerShell ou a Graph API diretamente são mais completos.
6.4 Microsoft Graph API​
Para atualizações programáticas com controle total sobre os atributos:
PATCH https://graph.microsoft.com/v1.0/users/joao.silva@contoso.com
Content-Type: application/json
{
"department": "Desenvolvimento",
"jobTitle": "Engenheiro de Software Sênior",
"mobilePhone": "+55 11 99999-0000",
"officeLocation": "São Paulo",
"usageLocation": "BR"
}
Para atualizar extensionAttributes:
PATCH https://graph.microsoft.com/v1.0/users/joao.silva@contoso.com
Content-Type: application/json
{
"onPremisesExtensionAttributes": {
"extensionAttribute1": "Terceirizado",
"extensionAttribute2": "Projeto-Alpha"
}
}
Vantagem do PATCH: o método PATCH atualiza apenas as propriedades especificadas. Propriedades não mencionadas na requisição são preservadas. Isso é importante para evitar apagar dados acidentalmente.
6.5 Regras de Grupo Dinâmico: Sintaxe e Gerenciamento​
A regra de associação dinâmica é uma propriedade do grupo em si. Ela pode ser definida na criação ou alterada depois.
Sintaxe básica de uma regra:
user.ATRIBUTO OPERADOR "VALOR"
Exemplos de regras:
# Todos do departamento de TI
user.department -eq "TI"
# Todos os gerentes
user.jobTitle -contains "Gerente"
# Funcionários ativos de SP ou RJ
(user.state -eq "SP" -or user.state -eq "RJ") -and user.accountEnabled -eq true
# Exclui convidados
user.userType -eq "Member"
# Baseado em extensionAttribute
user.extensionAttribute1 -eq "Terceirizado" -and user.department -eq "TI"
Operadores disponÃveis:
| Operador | Descrição | Exemplo |
|---|---|---|
-eq | Igual a | user.department -eq "TI" |
-ne | Diferente de | user.userType -ne "Guest" |
-contains | Contém a substring | user.jobTitle -contains "Dev" |
-notContains | Não contém | user.jobTitle -notContains "Estagiário" |
-startsWith | Começa com | user.displayName -startsWith "A" |
-match | Expressão regular | user.mail -match ".*@contoso\\.com" |
-in | Valor em lista | user.department -in ["TI", "Eng"] |
-notIn | Valor não em lista | user.department -notIn ["RH"] |
Para alterar a regra de um grupo dinâmico existente via PowerShell:
Update-MgGroup -GroupId "<object-id>" `
-MembershipRule '(user.department -eq "Desenvolvimento") -and (user.accountEnabled -eq true)' `
-MembershipRuleProcessingState "On"
O parâmetro MembershipRuleProcessingState pode ser "On" ou "Paused". Pausar o processamento é útil durante migrações ou quando você quer impedir que mudanças automáticas aconteçam enquanto faz ajustes em lote.
7. Controle e Segurança​
Quem Pode Editar Propriedades​
Existem dois nÃveis de controle sobre quem pode editar propriedades:
NÃvel de papel administrativo (Entra ID roles):
| Papel | Pode editar propriedades de usuário | Pode editar propriedades de grupo |
|---|---|---|
| Global Administrator | Tudo | Tudo |
| User Administrator | Sim (exceto outros admins de nÃvel superior) | Sim |
| Groups Administrator | Não (usuários) | Sim |
| Helpdesk Administrator | Propriedades básicas e senha de não-admins | Não |
NÃvel de owner de grupo:
Um owner de grupo pode editar as propriedades básicas do grupo (nome, descrição) e gerenciar membros, sem precisar de nenhum papel administrativo no Entra ID. Isso é a base da delegação de gestão de grupos.
Auditoria de Mudanças​
Toda alteração de propriedade gera uma entrada no Audit Log do Entra ID com:
- Quem fez a mudança (actor)
- Qual objeto foi alterado (target)
- Qual propriedade foi alterada
- Valor anterior e novo valor
Para consultar mudanças em propriedades de usuários:
Get-MgAuditLogDirectoryAudit -Filter "activityDisplayName eq 'Update user'" -Top 50
Isso retorna as últimas 50 atualizações de usuários com todos os detalhes.
Self-Service: O Que os Próprios Usuários Podem Editar​
Por padrão, usuários comuns podem editar algumas de suas próprias propriedades pelo portal MyAccount (myaccount.microsoft.com):
- Foto de perfil
- Número de celular (relevante para MFA/SSPR)
- Endereço alternativo de e-mail
- Informações de segurança
O administrador pode restringir quais propriedades os usuários podem editar por conta própria, via configurações do tenant em Microsoft Entra ID > User settings.
8. Tomada de Decisão​
Quando atualizar propriedades de forma manual vs. automatizada?​
| Situação | Melhor abordagem | Motivo |
|---|---|---|
| 1 a 5 usuários, urgência imediata | Portal do Azure | Rápido, sem configuração |
| 10 a 100 usuários, dados em planilha | Script PowerShell com CSV | Escalável, auditável |
| Sincronização recorrente com sistema de RH | Graph API ou SCIM via Entra Connect | Automático, sem intervenção manual |
| Ambiente hÃbrido (AD on-premises) | Editar no AD on-premises | Fonte autoritativa é o AD local; edições no Entra ID serão sobrescritas na próxima sincronização |
| Atributos customizados de extensão | PowerShell ou Graph API | Portal não expõe todos os extensionAttributes |
Quando mudar o tipo de associação de um grupo?​
| Situação | Decisão | Consequência a considerar |
|---|---|---|
| Grupo Assigned com padrão claro nos atributos | Converter para Dynamic | Membros atuais serão removidos e substituÃdos pela regra |
| Grupo Dynamic com muitas exceções à regra | Converter para Assigned | Regra dinâmica é excluÃda; membros que a regra selecionava permanecem como membros diretos |
| Grupo dinâmico não reflete realidade por dados ruins | Pausar processamento, corrigir dados, reativar | Pausar evita remoções incorretas enquanto dados são ajustados |
9. Boas Práticas​
Mantenha o Object ID como referência canônica: scripts, integrações e sistemas externos devem sempre armazenar e usar o Object ID, nunca o UPN ou Display Name, que são mutáveis.
Defina ownership para todos os grupos: grupos sem owners ficam órfãos. Quando o criador do grupo deixa a empresa, ninguém tem autoridade explÃcita para gerenciar o grupo sem escalada para um Global Administrator. Defina sempre pelo menos dois owners.
Documente a finalidade de cada grupo na Description: a propriedade description do grupo é frequentemente ignorada. Em ambientes com centenas de grupos, uma descrição clara como "Acesso de leitura ao Storage Account de logs de produção - Criado em 2024-03 por time de infraestrutura" vale muito mais do que um nome como "SG-Storage-Prod-Read".
Qualidade de dados antes de grupos dinâmicos: antes de criar grupos dinâmicos baseados em department ou jobTitle, audite os valores existentes. Dados inconsistentes (ex: "TI", "ti", "Tecnologia da Informação", "T.I." para o mesmo departamento) farão o grupo dinâmico funcionar incorretamente.
Padronize valores de atributos: crie e comunique um dicionário de valores aceitos para campos como department, jobTitle, employeeType, state. Isso é especialmente importante quando múltiplos administradores ou sistemas de RH populam esses campos.
Não edite diretamente atributos sincronizados do AD on-premises: em ambientes hÃbridos, atributos sincronizados são de propriedade do AD local. Editar esses atributos diretamente no portal do Azure resulta em um aviso e a mudança será sobrescrita na próxima sincronização.
10. Erros Comuns​
Editar propriedades de usuário sincronizado pelo portal do Azure em ambiente hÃbrido
Em ambientes com Entra Connect, os atributos como department, displayName, manager são gerenciados no AD on-premises. Se um administrador editar esses campos pelo portal do Azure, o portal permite a edição (com um aviso), mas na próxima rodada de sincronização (padrão: a cada 30 minutos), o valor do AD on-premises sobrescreve a edição. O administrador pensa que fez a mudança, mas ela será revertida.
Converter grupo Assigned para Dynamic sem avisar os membros atuais
Ao mudar o Membership Type para Dynamic, todos os membros atuais são removidos antes da regra ser aplicada. Se a regra tiver qualquer problema (como dados ruins nos atributos), o grupo pode ficar vazio por horas. Isso pode revogar acessos crÃticos sem aviso.
Criar regra dinâmica sem validar com dados reais
A interface do portal oferece uma ferramenta de validação de regras: você pode testar a regra contra usuários especÃficos para ver se eles seriam incluÃdos ou excluÃdos. Muitos administradores criam a regra diretamente sem usar esse recurso e só percebem o erro quando usuários reclamam de acesso negado.
Remover o único owner de um grupo
Se um grupo tem apenas um owner e esse owner é removido ou desabilitado, o grupo fica sem ownership. Membros do grupo continuam com seus acessos, mas ninguém pode gerenciar o grupo sem intervenção de um User Administrator ou Global Administrator.
Alterar o UPN sem verificar dependências externas
Antes de alterar um UPN, é necessário auditar se existem sistemas externos (aplicações SaaS, bancos de dados internos, ferramentas de ITSM) que armazenam o UPN como chave de usuário. Uma mudança de UPN nesses sistemas pode quebrar integrações silenciosamente.
Confundir "Member" (tipo de usuário) com "Member" (tipo de associação em grupo)
O termo "Member" aparece em dois contextos distintos no Entra ID: o userType de um usuário pode ser "Member" (funcionário interno) ou "Guest" (convidado externo). E a associação de um usuário a um grupo pode ser como "Member" (acesso aos recursos do grupo) ou como "Owner" (pode gerenciar o grupo). São conceitos completamente diferentes com o mesmo nome.
11. Operação e Manutenção​
Identificação de Propriedades Desatualizadas​
Com o tempo, propriedades de usuários ficam desatualizadas sem que ninguém perceba. Algumas verificações regulares importantes:
Usuários com usageLocation vazio que podem ter licenças negadas:
Get-MgUser -Filter "usageLocation eq null" -All `
-Property "displayName,userPrincipalName,usageLocation"
Usuários sem department preenchido (problemático para grupos dinâmicos):
Get-MgUser -Filter "department eq null" -All `
-Property "displayName,userPrincipalName,department"
Access Reviews​
O Entra ID (com licença P2) oferece Access Reviews: revisões periódicas e automatizadas onde owners de grupos ou gestores são notificados para confirmar se os membros de um grupo ainda devem ter aquele acesso. Se nenhuma ação for tomada dentro do prazo, o sistema pode automaticamente remover o acesso (comportamento configurável).
Esta é a forma mais escalável de manter a qualidade das associações de grupo ao longo do tempo, especialmente para grupos com acesso a recursos sensÃveis.
Monitoramento de Grupos Dinâmicos​
Para verificar o status de processamento de um grupo dinâmico:
Get-MgGroup -GroupId "<object-id>" `
-Property "displayName,membershipRule,membershipRuleProcessingState,onPremisesLastSyncDateTime"
Se membershipRuleProcessingState for "Paused", o grupo não está sendo atualizado automaticamente, o que pode indicar um problema ou uma ação intencional esquecida.
12. Integração e Automação​
Sincronização com Sistema de RH via SCIM​
O protocolo SCIM (System for Cross-domain Identity Management) permite que sistemas de RH como Workday, SAP SuccessFactors e BambooHR enviem atualizações de atributos diretamente para o Entra ID quando um funcionário muda de cargo, departamento ou gerente.
Esse fluxo elimina a necessidade de qualquer intervenção manual do administrador quando um funcionário muda de área.
Automação via Logic Apps ou Power Automate​
Para cenários mais simples ou onde não há integração SCIM nativa, o Azure Logic Apps e o Power Automate permitem criar fluxos que:
- Leem uma planilha Excel ou SharePoint com dados de funcionários
- Comparam com os dados atuais no Entra ID via Graph API
- Atualizam as diferenças automaticamente
Webhooks e Notificações via Graph API Change Notifications​
A Graph API suporta subscriptions (assinaturas de mudanças): você registra um endpoint HTTP e o Azure notifica esse endpoint sempre que um usuário ou grupo é criado, atualizado ou excluÃdo. Isso permite que sistemas externos reajam a mudanças no Entra ID em tempo quase real.
POST https://graph.microsoft.com/v1.0/subscriptions
{
"changeType": "updated",
"notificationUrl": "https://seu-sistema.contoso.com/webhook",
"resource": "users",
"expirationDateTime": "2025-04-01T00:00:00Z"
}
13. Resumo Final​
Pontos essenciais:
- Propriedades de usuários e grupos não são apenas metadados: elas controlam associações dinâmicas de grupo, elegibilidade de licenças, acesso condicional e fluxos de automação.
- O Object ID é o identificador imutável e confiável. O UPN pode mudar; o Object ID nunca muda.
- O Group Type (Security vs. M365) é imutável após a criação. O Membership Type pode ser alterado, mas converte todos os membros.
- A propriedade owners de um grupo permite delegar gestão sem conceder papéis administrativos globais.
Diferenças crÃticas:
- Ambiente hÃbrido: atributos sincronizados do AD on-premises devem ser editados no AD local, não no portal do Azure. Edições diretas serão sobrescritas.
- Grupos dinâmicos dependem da qualidade dos atributos. Dados inconsistentes geram associações incorretas.
- Pausar vs. Converter: pausar um grupo dinâmico preserva os membros atuais; converter de Dynamic para Assigned também preserva. Converter de Assigned para Dynamic apaga todos os membros.
- "Member" como userType (interno vs. convidado) é diferente de "Member" como papel em grupo (acesso vs. ownership).
O que precisa ser lembrado:
- Sempre valide regras dinâmicas antes de aplicar em produção, usando a ferramenta de validação do portal.
- Defina ao menos dois owners por grupo para evitar grupos órfãos.
- Preencha
usageLocatione atributos organizacionais no momento da criação do usuário. - Em scripts e integrações, use sempre o Object ID como referência ao usuário ou grupo, nunca o UPN ou Display Name.
- Mudanças em grupos dinâmicos podem levar horas para se propagar em tenants grandes. Planeje janelas de mudança adequadas.
- Consulte o Audit Log para rastrear quem alterou o quê e quando, especialmente antes de investigar problemas de acesso.