Pular para o conteúdo principal

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:

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

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.

PropriedadeDescriçãoMutável?
Object IDIdentificador único imutável gerado pelo Azure (GUID)Não
User Principal Name (UPN)Login principal no formato usuario@dominio.comSim, com cuidado
Display NameNome exibido na interface e no e-mailSim
Mail NicknameAlias de e-mail, base para endereços ExchangeSim
Proxy AddressesLista de endereços de e-mail alternativosSim

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​

PropriedadeDescrição
EmailEndereço de e-mail principal (pode diferir do UPN)
Mobile PhoneTelefone celular. Usado para MFA e SSPR (Self-Service Password Reset)
Office PhoneTelefone comercial
Street Address, City, State, CountryEndereç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​

PropriedadeDescriçãoImpacto em grupos dinâmicos
Job TitleCargo do usuárioAlto
DepartmentDepartamentoAlto
Company NameNome da empresa (útil em multi-tenant)Alto
Employee IDIdentificador no sistema de RHMédio
Employee TypeTipo de vínculo (Employee, Contractor, etc.)Alto
ManagerReferência para o usuário gerenteMédio
Office LocationLocalização do escritórioMé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​

PropriedadeDescrição
Account EnabledSe a conta está ativa ou bloqueada
Usage LocationPaís do usuário. Obrigatório para licenças Microsoft 365
Password PoliciesControle de expiração e complexidade de senha

3.2 Propriedades Imutáveis vs. Mutáveis​

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

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​

PropriedadeDescriçãoMutável após criação?
Object IDIdentificador único imutávelNão
Display NameNome do grupo exibido na interfaceSim
DescriptionDescrição do propósito do grupoSim
Group TypeSecurity ou Microsoft 365Não
Membership TypeAssigned, Dynamic User ou Dynamic DeviceSim (com licença)
Mail NicknameAlias para endereçamento (obrigatório na criação)Sim
OwnersUsuários com permissão para gerenciar o grupoSim

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:

MecanismoDescriçãoOnde é visível
Extension Attributes 1-1515 atributos de texto legados, herdados do AD on-premises (extensionAttribute1 a extensionAttribute15)Portal, Graph API, PowerShell
Directory ExtensionsAtributos customizados registrados via aplicação no Graph APIGraph 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​

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

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​

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

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​

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

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:

OperadorDescriçãoExemplo
-eqIgual auser.department -eq "TI"
-neDiferente deuser.userType -ne "Guest"
-containsContém a substringuser.jobTitle -contains "Dev"
-notContainsNão contémuser.jobTitle -notContains "Estagiário"
-startsWithComeça comuser.displayName -startsWith "A"
-matchExpressão regularuser.mail -match ".*@contoso\\.com"
-inValor em listauser.department -in ["TI", "Eng"]
-notInValor não em listauser.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):

PapelPode editar propriedades de usuárioPode editar propriedades de grupo
Global AdministratorTudoTudo
User AdministratorSim (exceto outros admins de nível superior)Sim
Groups AdministratorNão (usuários)Sim
Helpdesk AdministratorPropriedades básicas e senha de não-adminsNã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çãoMelhor abordagemMotivo
1 a 5 usuários, urgência imediataPortal do AzureRápido, sem configuração
10 a 100 usuários, dados em planilhaScript PowerShell com CSVEscalável, auditável
Sincronização recorrente com sistema de RHGraph API ou SCIM via Entra ConnectAutomático, sem intervenção manual
Ambiente híbrido (AD on-premises)Editar no AD on-premisesFonte autoritativa é o AD local; edições no Entra ID serão sobrescritas na próxima sincronização
Atributos customizados de extensãoPowerShell ou Graph APIPortal não expõe todos os extensionAttributes

Quando mudar o tipo de associação de um grupo?​

SituaçãoDecisãoConsequência a considerar
Grupo Assigned com padrão claro nos atributosConverter para DynamicMembros atuais serão removidos e substituídos pela regra
Grupo Dynamic com muitas exceções à regraConverter para AssignedRegra dinâmica é excluída; membros que a regra selecionava permanecem como membros diretos
Grupo dinâmico não reflete realidade por dados ruinsPausar processamento, corrigir dados, reativarPausar 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.

100%
Scroll para zoom · Arraste para mover · 📱 Pinch para zoom no celular

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