Implementar sincronização de hash de senha com o Microsoft Entra Connect Sync

Este artigo fornece informações de que você precisa para sincronizar suas senhas de usuário de uma instância do Ative Directory local para uma instância do Microsoft Entra baseada em nuvem.

Como funciona a sincronização de hash de palavra-passe

O Active Directory Domain Services armazena palavras-passe na forma de uma representação de um valor de hash, da palavra-passe do utilizador. Os valores de hash são o resultado de uma função matemática unidirecional (o algoritmo hash). Não existe nenhum método para reverter o resultado de uma função unidirecional para a versão de texto simples de uma palavra-passe.

Para sincronizar sua senha, o Microsoft Entra Connect Sync extrai seu hash de senha da instância local do Ative Directory. O processamento de segurança extra é aplicado ao hash de senha antes de ser sincronizado com o serviço de autenticação do Microsoft Entra. As senhas são sincronizadas por usuário e em ordem cronológica.

O fluxo de dados real do processo de sincronização do hash de palavras-passe é semelhante à sincronização dos dados do utilizador. No entanto, as senhas são sincronizadas com mais frequência do que a janela de sincronização de diretórios padrão para outros atributos. O processo de sincronização do hash de palavras-passe é executado a cada 2 minutos. Não é possível modificar a frequência deste processo. Quando você sincroniza uma senha, ela substitui a senha de nuvem existente.

A primeira vez que ativa a funcionalidade de sincronização do hash de palavras-passe, é executada uma sincronização inicial das palavras-passe de todos os utilizadores no âmbito. A Distribuição em Estágios permite que você teste seletivamente grupos de usuários com recursos de autenticação na nuvem, como autenticação multifator Microsoft Entra, Acesso Condicional, Proteção de Identidade para credenciais vazadas, Governança de Identidade e outros, antes de cortar seus domínios. Não é possível definir explicitamente um subconjunto de senhas de usuário que deseja sincronizar. Todavia, se existirem vários conectores, é possível desativar a sincronização do hash de palavras-passe para alguns conectores, mas não para outros que utilizam o cmdlet Set-ADSyncAADPasswordSyncConfiguration.

Quando você altera uma senha local, a senha atualizada é sincronizada, na maioria das vezes em questão de minutos. A funcionalidade de sincronização do hash de palavras-passe tenta novamente e de forma automática sincronizar as tentativas falhadas. Se ocorrer um erro durante uma tentativa de sincronizar uma palavra-passe, é registado um erro no visualizador de eventos.

A sincronização de uma senha não tem impacto sobre o usuário que está conectado no momento. Sua sessão de serviço de nuvem atual não é afetada imediatamente por uma alteração de senha sincronizada que ocorre, enquanto você está conectado, em um serviço de nuvem. No entanto, quando o serviço de nuvem exigir que você se autentique novamente, você precisará fornecer sua nova senha.

Um usuário deve inserir suas credenciais corporativas uma segunda vez para se autenticar na ID do Microsoft Entra, independentemente de estar conectado à rede corporativa. No entanto, esse padrão pode ser minimizado se o usuário selecionar a caixa de seleção Manter-me conectado (KMSI) no login. Esta seleção define um cookie de sessão que ignora a autenticação durante 180 dias. O comportamento KMSI pode ser ativado ou desativado pelo administrador do Microsoft Entra. Além disso, você pode reduzir os prompts de senha configurando a associação do Microsoft Entra ou a associação híbrida do Microsoft Entra, que conecta automaticamente os usuários quando eles estão em seus dispositivos corporativos conectados à sua rede corporativa.

Vantagens adicionais

  • Geralmente, a sincronização do hash de palavras-passe é mais simples de implementar do que um serviço de federação. Ele não requer servidores adicionais e elimina a dependência de um serviço de federação altamente disponível para autenticar usuários.
  • A sincronização do hash de palavras-passe também pode ser ativada em conjunto com a federação. Ele pode ser usado como um fallback se o serviço de federação sofrer uma interrupção.

Nota

A sincronização de senha só é suportada para o usuário do tipo de objeto no Ative Directory. Não há suporte para o tipo de objeto iNetOrgPerson.

Descrição detalhada do funcionamento da sincronização do hash de palavras-passe

A seção a seguir descreve, detalhadamente, como a sincronização de hash de senha funciona entre o Ative Directory e o Microsoft Entra ID.

Fluxo de senha detalhado

  1. A cada dois minutos, o agente de sincronização do hash de palavras-passe no servidor do AD Connect pede os hashes de palavras-passe armazenados (o atributo unicodePwd) a um DC. Essa solicitação é feita por meio do protocolo de replicação padrão MS-DRSR usado para sincronizar dados entre DCs. A conta de serviço necessita de ter permissões para Replicar Alterações para o Diretório e Replicar Todas as Alterações para o Diretório (concedidas por predefinição durante a instalação) para obter os hashes de palavras-passe.
  2. Antes de enviar, o DC encripta o hash de palavras-passe MD4 com uma chave que é um hash MD5 da chave de sessão RPC e um salt. Em seguida, envia o resultado para o agente de sincronização do hash de palavras-passe através do RPC. O DC também passa o sal para o agente de sincronização usando o protocolo de replicação DC, para que o agente possa descriptografar o envelope.
  3. Depois de o agente de sincronização do hash de palavras-passe ter o envelope encriptado, utiliza o MD5CryptoServiceProvider e o salt para gerar uma chave para desencriptar os dados recebidos de volta ao formato MD4 original. O agente de sincronização do hash de palavras-passe nunca tem acesso ao texto simples da palavra-passe. A utilização do MD5 pelo agente de sincronização do hash de palavras-passe é estritamente para compatibilidade do protocolo de replicação com o DC e só é utilizada no ambiente no local entre o DC e o agente de sincronização do hash de palavras-passe.
  4. O agente de sincronização do hash de palavras-passe expande o hash de palavras-passe binário de 16 bytes para 64 bytes ao converter primeiro o hash numa cadeia hexadecimal de 32 bytes e, em seguida, ao converter esta cadeia de volta num binário com codificação UTF-16.
  5. O agente de sincronização do hash de palavras-passe adiciona um salt por utilizador, constituído por um salt de 10 bytes, ao binário de 64 bytes para aumentar a proteção original do hash.
  6. Em seguida, o agente de sincronização do hash de palavras-passe combina o hash MD4 e o salt por utilizador e introduz o mesmo na função PBKDF2. São utilizadas 1000 iterações do algoritmo de hash com a chave HMAC-SHA256. Para obter detalhes adicionais, consulte o Microsoft Entra Whitepaper.
  7. O agente de sincronização de hash de senha usa o hash de 32 bytes resultante, concatena o sal por usuário e o número de iterações SHA256 para ele (para uso pelo Microsoft Entra ID) e, em seguida, transmite a cadeia de caracteres do Microsoft Entra Connect para o Microsoft Entra ID por TLS.
  8. Quando um utilizador tenta iniciar sessão no Microsoft Entra ID e introduz a sua palavra-passe, a palavra-passe é executada através do mesmo processo MD4+salt+PBKDF2+HMAC-SHA256. Se o hash resultante corresponder ao hash armazenado no ID do Microsoft Entra, o usuário inseriu a senha correta e é autenticado.

Nota

O hash MD4 original não é transmitido para o Microsoft Entra ID. Em vez disso, é transmitido o hash SHA256 do hash MD4 original. Como resultado, se o hash armazenado no Microsoft Entra ID for obtido, ele não poderá ser usado em um ataque pass-the-hash local.

Nota

O valor de hash da senha NUNCA é armazenado em SQL. Esses valores só são processados na memória antes de serem enviados para o Microsoft Entra ID.

Considerações de segurança

Ao sincronizar senhas, a versão de texto simples da sua senha não é exposta ao recurso de sincronização de hash de senha, ao ID do Microsoft Entra ou a qualquer um dos serviços associados.

A autenticação do usuário ocorre no Microsoft Entra e não na própria instância do Ative Directory da organização. Os dados de senha SHA256 armazenados no Microsoft Entra ID (um hash do hash MD4 original) são mais seguros do que os armazenados no Ative Directory. Além disso, como este hash SHA256 não pode ser desencriptado, também não poderá ser levado de volta para o ambiente do Active Directory da organização e apresentado como uma palavra-passe válida de um utilizador durante um ataque Pass-the-Hash.

Considerações sobre a política de senha

Existem dois tipos de políticas de palavras-passe que são afetadas ao ativar a sincronização do hash de palavras-passe:

  • Política de complexidade de senha
  • Política de expiração de senha

Política de complexidade de senha

Quando a sincronização do hash de palavras-passe é ativada, as políticas de complexidade de palavras-passe na instância do Active Directory no local substituem as políticas de complexidade na cloud dos utilizadores sincronizados. Você pode usar todas as senhas válidas de sua instância local do Ative Directory para acessar os serviços do Microsoft Entra.

Nota

As senhas para usuários criados diretamente na nuvem ainda estão sujeitas às políticas de senha, conforme definido na nuvem.

Política de expiração de senha

Se um utilizador estiver no âmbito da sincronização do hash de palavras-passe, por predefinição, a palavra-passe da conta cloud será definida como Nunca Expirar.

Pode continuar a iniciar sessão nos seus serviços na nuvem utilizando uma palavra-passe sincronizada que expirou no seu ambiente local. A sua palavra-passe de cloud é atualizada da próxima vez que alterar a palavra-passe no ambiente no local.

CloudPasswordPolicyForPasswordSyncedUsersEnabled

Se houver usuários sincronizados que interagem apenas com os serviços integrados do Microsoft Entra e também devem cumprir uma política de expiração de senha, você pode forçá-los a cumprir sua política de expiração de senha do Microsoft Entra ativando o recurso CloudPasswordPolicyForPasswordSyncedUsersEnabled (no módulo PowerShell MSOnline preterido, ele era chamado de EnforceCloudPasswordPolicyForPasswordSyncedUsers).

Quando CloudPasswordPolicyForPasswordSyncedUsersEnabled está desativado (que é a configuração padrão), o Microsoft Entra Connect define o atributo PasswordPolicies de usuários sincronizados como "DisablePasswordExpiration". Isso é feito sempre que a senha de um usuário é sincronizada e instrui o Microsoft Entra ID a ignorar a política de expiração de senha na nuvem para esse usuário. Você pode verificar o valor do atributo usando o módulo do Microsoft Graph PowerShell com o seguinte comando:

(Get-MgUser -UserId <User Object ID> -Property PasswordPolicies).PasswordPolicies

Para habilitar o recurso CloudPasswordPolicyForPasswordSyncedUsersEnabled, execute os seguintes comandos usando o módulo Graph PowerShell, conforme mostrado abaixo:

$OnPremSync = Get-MgDirectoryOnPremiseSynchronization
$OnPremSync.Features.CloudPasswordPolicyForPasswordSyncedUsersEnabled = $true

Update-MgDirectoryOnPremiseSynchronization `
  -OnPremisesDirectorySynchronizationId $OnPremSync.Id `
  -Features $OnPremSync.Features 

Nota

Você precisa instalar o módulo MSGraph PowerShell para que o script anterior funcione. Se você receber erros relacionados a privilégios insuficientes, certifique-se de ter consentido o escopo da API corretamente usando o seguinte comando ao se conectar Connect-MgGraph -Scopes "OnPremDirectorySynchronization.ReadWrite.All"

Uma vez habilitado, o ID do Microsoft Entra não vai para cada usuário sincronizado para remover o DisablePasswordExpiration valor do atributo PasswordPolicies. Em vez disso, o DisablePasswordExpiration valor é removido de PasswordPolicies durante a próxima sincronização de hash de senha para cada usuário, na próxima alteração de senha no AD local.

Depois que o recurso CloudPasswordPolicyForPasswordSyncedUsersEnabled é habilitado, novos usuários são provisionados sem um valor PasswordPolicies.

Gorjeta

É recomendável habilitar CloudPasswordPolicyForPasswordSyncedUsersEnabled antes de habilitar a sincronização de hash de senha, para que a sincronização inicial de hashes de senha não adicione o DisablePasswordExpiration valor ao atributo PasswordPolicies para os usuários.

A política de senha padrão do Microsoft Entra exige que os usuários alterem suas senhas a cada 90 dias. Se a sua política no AD também for de 90 dias, as duas políticas deverão corresponder. No entanto, se a política do AD não for de 90 dias, você poderá atualizar a política de senha do Microsoft Entra para corresponder usando o comando Update-MgDomain PowerShell.

O Microsoft Entra ID suporta uma política de expiração de senha separada por domínio registrado.

Advertência: Se houver contas sincronizadas que precisam ter senhas que não expiram no ID do Microsoft Entra, você deve adicionar explicitamente o DisablePasswordExpiration valor ao atributo PasswordPolicies do objeto de usuário no ID do Microsoft Entra. Você pode fazer isso executando o seguinte comando.

Update-MgUser -UserID <User Object ID> -PasswordPolicies "DisablePasswordExpiration"

Nota

Para usuários híbridos que têm um valor PasswordPolicies definido como DisablePasswordExpiration, esse valor alterna para None depois que uma alteração de senha é executada localmente.

Nota

O comando Update-MgDomain PowerShell não funciona em domínios federados.

Nota

O comando Update-MgUser PowerShell não funciona em domínios federados.

Sincronizando senhas temporárias e "Forçar alteração de senha no próximo logon"

É típico forçar um usuário a alterar sua senha durante seu primeiro logon, especialmente depois que ocorre uma redefinição de senha de administrador. É comumente conhecido como definir uma senha "temporária" e é concluído marcando o sinalizador "O usuário deve alterar a senha no próximo logon" em um objeto de usuário no Ative Directory (AD).

A funcionalidade de senha temporária ajuda a garantir que a transferência de propriedade da credencial seja concluída no primeiro uso, para minimizar a duração do tempo em que mais de uma pessoa tem conhecimento dessa credencial.

Para oferecer suporte a senhas temporárias no Microsoft Entra ID para usuários sincronizados, você pode habilitar o recurso ForcePasswordChangeOnLogOn executando o seguinte comando no servidor Microsoft Entra Connect:

Set-ADSyncAADCompanyFeature -ForcePasswordChangeOnLogOn $true

Nota

Forçar um usuário a alterar sua senha no próximo logon requer uma alteração de senha ao mesmo tempo. O Microsoft Entra Connect não pegará o sinalizador de alteração de senha de força por si só; É complementar à alteração de senha detetada que ocorre durante a sincronização de hash de senha.

Se o usuário tiver a opção "A senha nunca expira" definida no Ative Directory (AD), o sinalizador forçar alteração de senha não será definido no Ative Directory (AD), portanto, o usuário não será solicitado a alterar a senha durante o próximo login.

Um novo usuário criado no Ative Directory com o sinalizador "O usuário deve alterar a senha no próximo logon" sempre será provisionado no Microsoft Entra ID com uma política de senha para "Forçar a alteração de senha no próximo login", independentemente do recurso ForcePasswordChangeOnLogOn ser verdadeiro ou falso. Esta é uma lógica interna do Microsoft Entra, uma vez que o novo usuário é provisionado sem uma senha, enquanto o recurso ForcePasswordChangeOnLogOn afeta apenas cenários de redefinição de senha de administrador.

Se um usuário foi criado no Ative Directory com "O usuário deve alterar a senha no próximo logon" antes que o recurso fosse habilitado, o usuário receberá um erro ao entrar. Para corrigir esse problema, desmarque e marque novamente o campo "O usuário deve alterar a senha no próximo logon" em Usuários e Computadores do Ative Directory. Depois de sincronizar as alterações do objeto do usuário, o usuário receberá o prompt esperado no Microsoft Entra ID para atualizar sua senha.

Atenção

Você só deve usar esse recurso quando o SSPR e o Write-back de senha estiverem habilitados no locatário. Isso é para que, se um usuário alterar sua senha via SSPR, ela será sincronizada com o Ative Directory.

Expiração da conta

Se sua organização usa o atributo accountExpires como parte do gerenciamento de conta de usuário, esse atributo não é sincronizado com o Microsoft Entra ID. Como resultado, uma conta expirada do Ative Directory em um ambiente configurado para sincronização de hash de senha ainda estará ativa no Microsoft Entra ID. Recomendamos o uso de um script PowerShell agendado que desabilite as contas do AD dos usuários, assim que elas expirarem (use o cmdlet Set-ADUser ). Por outro lado, durante o processo de remoção da expiração de uma conta do AD, a conta deve ser reativada.

Substituir senhas sincronizadas

Um administrador pode redefinir manualmente sua senha diretamente no Microsoft Entra ID usando o PowerShell (a menos que o usuário esteja em um domínio federado).

Nesse caso, a nova senha substitui sua senha sincronizada e todas as políticas de senha definidas na nuvem são aplicadas à nova senha.

Se você alterar sua senha local novamente, a nova senha será sincronizada com a nuvem e substituirá a senha atualizada manualmente.

A sincronização de uma palavra-passe não tem impacto no utilizador do Azure com sessão iniciada. Sua sessão de serviço de nuvem atual não é afetada imediatamente por uma alteração de senha sincronizada que ocorre enquanto você está conectado a um serviço de nuvem. KMSI estende a duração desta diferença. Quando o serviço de nuvem exigir que você se autentique novamente, você precisará fornecer sua nova senha.

Processo de sincronização de hash de senha para os Serviços de Domínio do Microsoft Entra

Se você usar os Serviços de Domínio Microsoft Entra para fornecer autenticação herdada para aplicativos e serviços que precisam usar Kerberos, LDAP ou NTLM, alguns processos adicionais farão parte do fluxo de sincronização de hash de senha. O Microsoft Entra Connect usa o seguinte processo adicional para sincronizar hashes de senha com o ID do Microsoft Entra para uso nos Serviços de Domínio do Microsoft Entra:

Importante

O Microsoft Entra Connect só deve ser instalado e configurado para sincronização com ambientes AD DS locais. Não há suporte para instalar o Microsoft Entra Connect em um domínio gerenciado pelos Serviços de Domínio Microsoft Entra para sincronizar objetos de volta ao ID do Microsoft Entra.

O Microsoft Entra Connect só sincroniza hashes de senha herdados quando você habilita os Serviços de Domínio do Microsoft Entra para seu locatário do Microsoft Entra. As etapas a seguir não serão usadas se você usar apenas o Microsoft Entra Connect para sincronizar um ambiente do AD DS local com a ID do Microsoft Entra.

Se seus aplicativos herdados não usam autenticação NTLM ou ligações simples LDAP, recomendamos que você desabilite a sincronização de hash de senha NTLM para os Serviços de Domínio Microsoft Entra. Para obter mais informações, veja Desativar os conjuntos de cifras fracos e a sincronização do hash de credenciais NTLM.

  1. O Microsoft Entra Connect recupera a chave pública para a instância do locatário dos Serviços de Domínio Microsoft Entra.
  2. Quando um usuário altera sua senha, o controlador de domínio local armazena o resultado da alteração de senha (hashes) em dois atributos:
    • unicodePwd para o hash de palavra-passe NTLM.
    • supplementalCredentials para o hash de palavra-passe Kerberos.
  3. O Microsoft Entra Connect deteta alterações de senha por meio do canal de replicação de diretório (alterações de atributo que precisam ser replicadas para outros controladores de domínio).
  4. Para cada usuário cuja senha foi alterada, o Microsoft Entra Connect executa as seguintes etapas:
    • Gera uma chave simétrica AES aleatória de 256 bits.
    • Gera um vetor de inicialização aleatório necessário para a primeira rodada de criptografia.
    • Extrai os hashes de palavras-passe Kerberos dos atributos supplementalCredentials.
    • Verifica a configuração de segurança SyncNtlmPasswords da configuração de segurança dos Serviços de Domínio Microsoft Entra.
      • Se esta definição estiver desativada, será gerado um hash NTLM aleatório de entropia elevada (diferente da palavra-passe do utilizador). Este hash é, em seguida, combinado com os hashes de palavra-passe Kerberos exatos do atributo supplementalCrendetials numa única estrutura de dados.
      • Se ativado, combina o valor do atributo unicodePwd com os hashes de palavra-passe Kerberos extraídos do atributo supplementalCredentials numa única estrutura de dados.
    • Criptografa a estrutura de dados única usando a chave simétrica AES.
    • Criptografa a chave simétrica AES usando a chave pública dos Serviços de Domínio Microsoft Entra do locatário.
  5. O Microsoft Entra Connect transmite a chave simétrica AES encriptada, a estrutura de dados encriptados que contém os hashes de palavra-passe e o vetor de inicialização para o Microsoft Entra ID.
  6. O Microsoft Entra ID armazena a chave simétrica AES criptografada, a estrutura de dados criptografados e o vetor de inicialização para o usuário.
  7. O Microsoft Entra ID envia a chave simétrica AES criptografada, a estrutura de dados criptografados e o vetor de inicialização usando um mecanismo de sincronização interno em uma sessão HTTP criptografada para os Serviços de Domínio Microsoft Entra.
  8. Os Serviços de Domínio do Microsoft Entra recuperam a chave privada para a instância do locatário do cofre da Chave do Azure.
  9. Para cada conjunto de dados criptografados (representando a alteração de senha de um único usuário), os Serviços de Domínio do Microsoft Entra executam as seguintes etapas:
    • Usa a sua chave privada para desencriptar a chave simétrica AES.
    • Utiliza a chave simétrica AES com o vetor de inicialização para desencriptar a estrutura de dados encriptada que contém os hashes de palavras-passe.
    • Grava os hashes de senha Kerberos que recebe no controlador de domínio dos Serviços de Domínio Microsoft Entra. Os hashes são salvos no atributo supplementalCredentials do objeto de usuário que é criptografado para a chave pública do controlador de domínio dos Serviços de Domínio Microsoft Entra.
    • Os Serviços de Domínio Microsoft Entra gravam o hash de senha NTLM recebido no controlador de domínio dos Serviços de Domínio Microsoft Entra. O hash é salvo no atributo unicodePwd do objeto de usuário que é criptografado para a chave pública do controlador de domínio dos Serviços de Domínio Microsoft Entra.

Ativar a sincronização do hash de palavras-passe

Importante

Se você estiver migrando do AD FS (ou outras tecnologias de federação) para a Sincronização de Hash de Senha, exiba Recursos para migrar aplicativos para o Microsoft Entra ID.

Quando você instala o Microsoft Entra Connect usando a opção Configurações Expressas, a sincronização de hash de senha é habilitada automaticamente. Para obter mais informações, consulte Introdução ao Microsoft Entra Connect usando configurações expressas.

Se você usar configurações personalizadas ao instalar o Microsoft Entra Connect, a sincronização de hash de senha estará disponível na página de entrada do usuário. Para obter mais informações, consulte Instalação personalizada do Microsoft Entra Connect.

Ativar a sincronização do hash de palavras-passe

Sincronização do hash de palavras-passe e FIPS

Se o servidor tiver sido bloqueado de acordo com o Federal Information Processing Standard (FIPS), o MD5 será desativado.

Para ativar o MD5 para a sincronização do hash de palavras-passe, execute os seguintes passos:

  1. Vá para %programfiles%\Microsoft Azure AD Sync\Bin.
  2. Abra o miiserver.exe.config.
  3. Vá para o nó de configuração/tempo de execução no final do arquivo.
  4. Adicione o seguinte nó: <enforceFIPSPolicy enabled="false" />
  5. Guardar as suas alterações.
  6. Reinicialize para que as alterações entrem em vigor.

Para referência, este trecho é o que deve parecer:

    <configuration>
        <runtime>
            <enforceFIPSPolicy enabled="false" />
        </runtime>
    </configuration>

Para obter informações sobre segurança e FIPS, consulte Sincronização de hash de senha do Microsoft Entra, criptografia e conformidade com FIPS.

Resolver problemas com a sincronização do hash de palavras-passe

Se tiver problemas com a sincronização do hash de palavras-passe, veja Resolver problemas com a sincronização do hash de palavras-passe.

Próximos passos