Windows Server 2019: como exigir senha mínima de 16+ caracteres com Fine‑Grained Password Policies (PSO)

Quer impor senhas maiores que 14 caracteres em controladores de domínio com Windows Server 2019? Veja como ultrapassar o limite da Default Domain Policy usando Fine‑Grained Password Policies (PSO) para exigir 16, 20 ou mais caracteres, com controle fino e implantação segura.

Índice

Visão geral e objetivo

Em domínios do Active Directory, a Default Domain Policy limita o “Minimum password length” a 14 caracteres. Para organizações que querem adotar passphrases e padrões mais fortes (por exemplo, mínimo de 16, 20 ou 24 caracteres), a abordagem recomendada é usar Fine‑Grained Password Policies (FGPP), implementadas via Password Settings Objects (PSO). Elas permitem aplicar políticas diferentes por usuário ou por grupo de segurança, sem alterar a política padrão do domínio e sem afetar contas que não precisam de requisitos mais rígidos.

Como as Fine‑Grained Password Policies funcionam

FGPPs são objetos armazenados diretamente no AD DS (CN=Password Settings Container,CN=System,<Domínio>). Cada PSO contém parâmetros de senha e bloqueio de conta equivalentes aos da política de domínio, porém com faixa de valores ampliada para comprimento mínimo (até 255). A aplicação da FGPP ocorre quando um usuário:

  • é alvo direto do PSO, ou
  • é membro de um grupo de segurança global ao qual o PSO é associado.

Se múltiplos PSOs forem aplicáveis ao mesmo usuário, o AD resolve o “vencedor” pela propriedade Precedence: o menor número tem prioridade. Evite empates de precedência.

Pré‑requisitos e limitações

  • Nível funcional do domínio igual ou superior a Windows Server 2008.
  • Permissões: por padrão, membros de Domain Admins criam/alteram PSOs; é possível delegar.
  • Âmbito de aplicação: PSO aplica‑se a usuários e a grupos de segurança globais (não se aplica a grupos de distribuição nem a grupos locais de domínio; evite universais para FGPP).
  • Unidades Organizacionais não são alvos diretos. Para atingir uma OU, utilize grupos.
  • Replicação: mudanças entram em vigor após replicarem para os controladores de domínio.
  • Contas locais de estações/servidores não são impactadas; elas seguem as políticas locais/GPO vinculadas às máquinas.

Comparativo rápido

RecursoDefault Domain PolicyFine‑Grained Password Policy (PSO)
EscopoTodo o domínioUsuários e grupos de segurança globais selecionados
Comprimento mínimoAté 14De 1 a 255
GranularidadeÚnica políticaMúltiplos PSOs com precedência
Local de configuraçãoGPO (GPMC)ADAC / PowerShell / ADSI
Aplicação imediataDepende de GP processingEfetiva após replicação do AD

Procedimento no Active Directory Administrative Center

  1. Abrir o Active Directory Administrative Center (ADAC).
  2. Navegar até <Domínio> → System → Password Settings Container.
  3. Clicar em NovoPassword Settings.

Esse caminho cria um novo PSO com todos os parâmetros necessários para compor a política de senha e bloqueio de conta desejada.

Configuração do Password Settings Object

Ao criar o PSO, defina os seguintes campos:

CampoO que éSugestão prática
NameIdentificador amigávelUse padrão consistente, por ex.: PSO‑Prod‑Privileged‑16
PrecedenceNúmero inteiro; menor venceReserve faixas: 10 para contas privilegiadas, 20 para aplicações, 30 para usuários
Minimum password lengthMínimo de caracteresDefina > 14 (recomendado ≥ 16)
Enforce password historyQuantidade de senhas lembradas24 ou mais para reduzir “reciclagem”
Minimum/Maximum password ageTempo mínimo/máximo antes de trocar24h mínimo para evitar “pula‑pula”; máximo conforme política (90–365 dias)
Password must meet complexityRequisito de complexidadeHabilite; incentive passphrases com palavras aleatórias
Reversible encryptionArmazenar reversívelDesabilite, salvo exigência legada
Account lockoutLimiar, duração, janela de observaçãoEquilibre segurança e usabilidade (p.ex., 10 tentativas, 15 min)

Aplicação correta e precedência

Na criação/edição do PSO, use o campo Direct applies to para adicionar alvos. Boas práticas:

  • Prefira grupos de segurança globais (ex.: GRPUsuariosSensiveis), não OUs.
  • Evite associar PSO diretamente a usuários, exceto em testes controlados.
  • Documente a precedência e evite números duplicados.
PSOAlvoPrecedenceComprimento mínimoResultado se um usuário pertencer a todos
PSO‑Privileged‑StrictGRP_Admins1020Vence por ter precedência menor
PSO‑Apps‑ServiceGRP_ServiceAccounts2024Perde na disputa; só vale se o usuário não estiver no PSO anterior
PSO‑Users‑BaselineGRP_Usuarios3016Base para quem não cai em PSO mais prioritário

Verificação e auditoria

Valide a configuração e o “resultado efetivo” por usuário com PowerShell:

# Listar todos os PSOs
Get-ADFineGrainedPasswordPolicy -Filter * | Select-Object Name,Precedence,MinPasswordLength,PasswordHistoryCount

Ver a política resultante para um usuário

Get-ADUserResultantPasswordPolicy -Identity \ |
Select-Object Name,Precedence,MinPasswordLength,ComplexityEnabled,MaxPasswordAge,LockoutThreshold

Conferir o atributo msDS-ResultantPSO diretamente

Get-ADUser -Identity \ -Properties msDS-ResultantPSO |
Select-Object Name,@{n='ResultantPSO';e={$\_.'msDS-ResultantPSO'}}

Dica: a diretiva “Minimum password length audit” permite medir tentativas abaixo de um alvo (por exemplo, 16) sem impor o bloqueio. Útil em projetos pilot‑first para avaliar impacto antes da virada.

Automação com PowerShell

Crie e aplique PSOs de forma reprodutível. Exemplo de criação para um mínimo de 16 caracteres:

# Requer RSAT-AD-PowerShell no host de administração
New-ADFineGrainedPasswordPolicy -Name 'PSO-Users-16' `
  -Precedence 30 `
  -MinPasswordLength 16 `
  -PasswordHistoryCount 24 `
  -MinPasswordAge (New-TimeSpan -Days 1) `
  -MaxPasswordAge (New-TimeSpan -Days 365) `
  -ComplexityEnabled $true `
  -ReversibleEncryptionEnabled $false `
  -LockoutDuration (New-TimeSpan -Minutes 15) `
  -LockoutObservationWindow (New-TimeSpan -Minutes 15) `
  -LockoutThreshold 10

Aplicar a um grupo de segurança global

Add-ADFineGrainedPasswordPolicySubject -Identity 'PSO-Users-16' -Subjects 'GRP\_Usuarios'

Para serviços, um segundo PSO com menos rotações de senha, mas comprimento mais alto:

New-ADFineGrainedPasswordPolicy -Name 'PSO-Service-24' `
  -Precedence 20 `
  -MinPasswordLength 24 `
  -PasswordHistoryCount 12 `
  -MinPasswordAge (New-TimeSpan -Hours 8) `
  -MaxPasswordAge (New-TimeSpan -Days 180) `
  -ComplexityEnabled $true `
  -ReversibleEncryptionEnabled $false
Add-ADFineGrainedPasswordPolicySubject -Identity 'PSO-Service-24' -Subjects 'GRP_ServiceAccounts'

Estratégias de direcionamento

  • Por risco: contas privilegiadas, operadores de backup e contas de serviço críticas com requisitos mais fortes.
  • Por função: finanças, jurídico, P&D.
  • Por aplicação: grupos de usuários de sistemas sensíveis ou expostos à internet.
  • Por geografia: se legislação local impõe requisitos mínimos.

Plano de implantação

  1. Levantamento: inventarie grupos e sobreposições de membros.
  2. Piloto: habilite “Minimum password length audit” e comunique passphrases.
  3. Criação de PSOs: defina precedência e nomes consistentes.
  4. Aplicação gradual: inicie por grupos menores e expanda.
  5. Monitoração: acompanhe falhas de troca de senha e chamados de suporte.
  6. Virada: comunique o prazo final e ofereça self‑service de redefinição quando disponível.

Interações com políticas do domínio e considerações

  • A Default Domain Policy permanece com limite de 14 e continua a reger quem não tem PSO aplicável.
  • Quando um PSO se aplica a um usuário, os parâmetros de senha/lockout desse PSO substituem os da política de domínio para aquele usuário.
  • GPOs de senha locais em servidores membros/estações não afetam contas de domínio; já PSO é decidido no controlador de domínio no momento da alteração de senha.
  • FGPPs não exigem gpupdate; entram em vigor após replicação AD.
  • Ambientes híbridos: com sincronização para nuvem, a imposição para contas on‑premises segue o PSO, a menos que o fluxo de alteração ocorra via outro provedor. Ajuste conforme arquitetura.

Boas práticas de segurança e usabilidade

  • Adote passphrases (por exemplo, quatro palavas aleatórias) com mínimo de 16+ caracteres.
  • Combine com MFA para contas privilegiadas.
  • Evite expirar senhas com frequência inadequada; foque em comprimento e detecção de comprometimento.
  • Implemente LAPS ou equivalente para senhas locais de administradores das máquinas.
  • Oriente sobre gerenciadores de senhas e bloqueio de tela.

Resolução de problemas

SintomaCausa provávelCorreção
Usuário ainda limitado a 14PSO não se aplica ao usuário/grupo correto ou precedência perdendo disputaVerifique com Get-ADUserResultantPasswordPolicy; ajuste Direct applies to e Precedence
PSO aplicado a OU não funcionaFGPP não se aplica a OUCrie grupo de segurança global, adicione os usuários e associe o PSO ao grupo
Conflito entre PSOsDois PSOs atingem o mesmo usuárioPadronize precedências; evite empates; documente a hierarquia
Contas de serviço quebramAplicativo não suporta troca forçada ou comprimento altoIsolar em grupo próprio e usar PSO específico com janela de troca compatível
Equipe de suporte recebe muitas solicitaçõesComunicação insuficiente e falta de automaçãoCampanha de passphrases, portal de autoatendimento e guias rápidos

Checklist de implementação

ItemStatusObservação
Nível funcional verificadoDomínio em Windows Server 2008+
Grupos de destino definidosGlobais, por função/risco
Precedência planejadaFaixas reservadas por categoria
PSOs criados no ADAC/PowerShellNomes padronizados
Aplicação aos grupos“Direct applies to” validado
Validação com cmdletsGet-ADUserResultantPasswordPolicy
Comunicação aos usuáriosDicas de passphrases e prazos

Modelos de nomenclatura e governança

Padronize para facilitar suporte e auditoria:

  • PSO‑<Ambiente>‑<Público>‑<MinLen> (ex.: PSO‑Prod‑Usuarios‑16)
  • Documente em um repositório: nome, distinguishedName, precedência, grupos alvo, objetivo.
  • Evite precedências duplicadas; se ocorrer, ajuste imediatamente para remover ambiguidade.

Exemplos práticos

Política reforçada para administradores

  1. Criar PSO‑Privileged‑20 (precedência 10, mínimo 20, histórico 24, complexidade habilitada).
  2. Aplicar ao grupo global GRP_Admins.
  3. Validar com Get-ADUserResultantPasswordPolicy -Identity <Administrador>.

Política base para usuários

  1. Criar PSO‑Users‑16 (precedência 30, mínimo 16).
  2. Aplicar ao grupo global GRP_Usuarios.
  3. Manter a Default Domain Policy inalterada (limite 14) para quem não está nesses grupos.

Aceleração com script para atingir uma OU

Como OUs não são alvo direto, você pode popular um grupo com todos os usuários de uma OU e aplicar o PSO a esse grupo. Exemplo:

$ou = 'OU=Vendas,DC=contoso,DC=local'
$grupo = 'GRPVendasUsuarios'
Get-ADUser -SearchBase $ou -LDAPFilter '(objectClass=user)' -SearchScope Subtree |
  ForEach-Object { Add-ADGroupMember -Identity $grupo -Members $_.SamAccountName -ErrorAction SilentlyContinue }

Add-ADFineGrainedPasswordPolicySubject -Identity 'PSO-Users-16' -Subjects \$grupo

Automatize a atualização do grupo periodicamente (por tarefa agendada) para acompanhar entradas e saídas da OU.

Expiração e força de redefinição

Para exigir troca imediata após criar o PSO, defina expiração ou marque usuários para alteração no próximo logon:

# Forçar alteração no próximo logon para um conjunto de usuários
Get-ADGroupMember GRP_Usuarios | ForEach-Object {
  Set-ADUser $_.SamAccountName -ChangePasswordAtLogon $true
}

Notas rápidas

TemaDica
Default Domain PolicyPermanece com limite de 14; não conflita com FGPP, desde que a precedência do PSO esteja clara.
Auditoria de comprimento“Minimum password length audit” mede, mas não impõe; útil para estatísticas antes de exigir.
Boas práticasPassphrases longas (≥ 16) com MFA elevam a resistência a ataques e melhoram usabilidade.
AutomaçãoUse New-ADFineGrainedPasswordPolicy e Add-ADFineGrainedPasswordPolicySubject para criar/aplicar via script.

Perguntas frequentes

Posso aplicar FGPP a uma OU? Não diretamente. Crie um grupo de segurança global com os usuários da OU e aplique o PSO ao grupo.

FGPP substitui a política de domínio? Apenas para os usuários aos quais o PSO se aplica. Os demais seguem a política do domínio.

É necessário gpupdate? Não. O PSO é avaliado pelo controlador de domínio no momento da alteração de senha; vale após replicação.

Qual é o limite máximo de “Minimum password length” no PSO? O campo aceita valores de 1 a 255, permitindo passphrases longas.

Grupos universais funcionam? Para FGPP, utilize grupos de segurança globais. Evite universais e locais de domínio para essa finalidade.

Conclusão

Ao adotar Fine‑Grained Password Policies, você elimina a limitação histórica de 14 caracteres e passa a exigir senhas realmente fortes onde importa, sem penalizar todo o domínio. Com uma estratégia clara de precedências, grupos bem definidos, validação por PowerShell e comunicação adequada, é possível migrar com segurança para um patamar superior de proteção usando senhas mínimas de 16, 20 ou mais caracteres.

Índice