Implemente a sincronização de hash de senha com a sincronização do Azure AD ConnectImplement password hash synchronization with Azure AD Connect sync

Este artigo fornece as informações necessárias para sincronizar suas senhas de usuário de uma instância do AD (Active Directory) local para uma instância do Azure AD (Azure Active Directory) baseada na nuvem.This article provides information that you need to synchronize your user passwords from an on-premises Active Directory instance to a cloud-based Azure Active Directory (Azure AD) instance.

Como a sincronização de hash de senha funcionaHow password hash synchronization works

O serviço de domínio do Active Directory armazena senhas na forma de uma representação de valor de hash da senha de usuário real.The Active Directory domain service stores passwords in the form of a hash value representation, of the actual user password. Um valor de hash é um resultado de uma função matemática unidirecional (o algoritmo de hash).A hash value is a result of a one-way mathematical function (the hashing algorithm). Não há um método para reverter o resultado de uma função unidirecional para a versão de texto sem formatação de uma senha.There is no method to revert the result of a one-way function to the plain text version of a password.

Para sincronizar sua senha, a sincronização do Azure AD Connect extrai o hash da senha de usuário da instância do Active Directory local.To synchronize your password, Azure AD Connect sync extracts your password hash from the on-premises Active Directory instance. O processamento de segurança adicional é aplicado ao hash da senha antes que ele seja sincronizado com o serviço de autenticação do Azure Active Directory.Extra security processing is applied to the password hash before it is synchronized to the Azure Active Directory authentication service. As senhas são sincronizadas por usuário e em ordem cronológica.Passwords are synchronized on a per-user basis and in chronological order.

O fluxo de dados real do processo de sincronização de hash de senha é semelhante à sincronização de dados de usuário.The actual data flow of the password hash synchronization process is similar to the synchronization of user data. Contudo, as senhas são sincronizadas com mais frequência do que a janela de sincronização de diretório padrão para outros atributos.However, passwords are synchronized more frequently than the standard directory synchronization window for other attributes. O processo de sincronização de hash senha é executado a cada 2 minutos.The password hash synchronization process runs every 2 minutes. Não é possível modificar a frequência desse processo.You cannot modify the frequency of this process. Ao sincronizar uma senha, ela substituirá a senha de nuvem existente.When you synchronize a password, it overwrites the existing cloud password.

Na primeira vez que você habilitar o recurso de sincronização de hash de senha, ele executará uma sincronização inicial das senhas de todos os usuários no escopo.The first time you enable the password hash synchronization feature, it performs an initial synchronization of the passwords of all in-scope users. Você não pode definir explicitamente um subconjunto de senhas de usuário que deseja sincronizar.You cannot explicitly define a subset of user passwords that you want to synchronize. No entanto, se houver vários conectores, será possível desabilitar a sincronização de hash de senha para alguns conectores, mas não para outros usando o cmdlet set-ADSyncAADPasswordSyncConfiguration .However, if there are multiple connectors, it is possible to disable password hash sync for some connectors but not others using the Set-ADSyncAADPasswordSyncConfiguration cmdlet.

Quando você altera uma senha local, a senha atualizada é sincronizada, geralmente em questão de minutos.When you change an on-premises password, the updated password is synchronized, most often in a matter of minutes. O recurso de sincronização de hash de senha repete automaticamente tentativas de sincronização com falha.The password hash synchronization feature automatically retries failed synchronization attempts. Se ocorrer um erro durante uma tentativa de sincronização de senha, um erro é registrado no seu visualizador de eventos.If an error occurs during an attempt to synchronize a password, an error is logged in your event viewer.

A sincronização de uma senha não afeta um usuário conectado atualmente.The synchronization of a password has no impact on the user who is currently signed in. A sessão de serviço de nuvem atual não será imediatamente afetada por uma alteração de senha sincronizada que ocorrer enquanto você estiver conectado no serviço de nuvem.Your current cloud service session is not immediately affected by a synchronized password change that occurs, while you are signed in, to a cloud service. No entanto, quando o serviço de nuvem exigir que você se autentique novamente, será necessário fornecer a nova senha.However, when the cloud service requires you to authenticate again, you need to provide your new password.

O usuário deve inserir suas credenciais corporativas uma segunda vez para autenticar no Azure AD, independentemente se ele está conectado à rede corporativa.A user must enter their corporate credentials a second time to authenticate to Azure AD, regardless of whether they're signed in to their corporate network. Porém, esse padrão poderá ser minimizado, se o usuário marcar a caixa de seleção de KMSI (Manter-me conectado) ao entrar.This pattern can be minimized, however, if the user selects the Keep me signed in (KMSI) check box at sign-in. Essa seleção define um cookie de sessão que ignora a autenticação por 180 dias.This selection sets a session cookie that bypasses authentication for 180 days. O comportamento KMSI pode ser habilitado ou desabilitado pelo administrador do Azure AD.KMSI behavior can be enabled or disabled by the Azure AD administrator. Além disso, é possível reduzir os prompts de senha ativando o SSO Contínuo, que conecta os usuários automaticamente quando estão em dispositivos corporativos conectados à rede corporativa.In addition, you can reduce password prompts by turning on Seamless SSO, which automatically signs users in when they are on their corporate devices connected to your corporate network.

Observação

Somente há suporte para a sincronização de senha para o usuário do tipo de objeto no Active Directory.Password sync is only supported for the object type user in Active Directory. Não há suporte para o tipo de objeto iNetOrgPerson.It is not supported for the iNetOrgPerson object type.

Descrição detalhada de como funciona a sincronização de hash senhaDetailed description of how password hash synchronization works

A seção a seguir descreve detalhadamente como a sincronização de hash de senha funciona entre o Azure AD e Active Directory.The following section describes, in-depth, how password hash synchronization works between Active Directory and Azure AD.

Fluxo da senha detalhado

  1. A cada dois minutos, o agente de sincronização de hash de senha no servidor do AD Connect solicita hashes de senha armazenados (o atributo unicodePwd) de um DC.Every two minutes, the password hash synchronization agent on the AD Connect server requests stored password hashes (the unicodePwd attribute) from a DC. Essa solicitação é feita através do protocolo de replicação padrão MS-DRSR usado para sincronizar dados entre DCs.This request is via the standard MS-DRSR replication protocol used to synchronize data between DCs. A conta do serviço deve ter as permissões do AD Replicar Alterações de Diretório e Replicar Todas as Alterações de Diretório (concedidas por padrão na instalação) para obter os hashes de senha.The service account must have Replicate Directory Changes and Replicate Directory Changes All AD permissions (granted by default on installation) to obtain the password hashes.
  2. Antes de enviar, o controlador de domínio criptografa o hash de senha MD4 usando uma chave que é um hash MD5 da chave de sessão RPC e um valor de sal.Before sending, the DC encrypts the MD4 password hash by using a key that is a MD5 hash of the RPC session key and a salt. Em seguida, ele envia o resultado para o agente de sincronização de hash de senha por RPC.It then sends the result to the password hash synchronization agent over RPC. O controlador de domínio também passa o sal para o agente de sincronização usando o protocolo de replicação do controlador de domínio, para que o agente possa descriptografar o envelope.The DC also passes the salt to the synchronization agent by using the DC replication protocol, so the agent will be able to decrypt the envelope.
  3. Depois que o agente de sincronização de hash de senha tiver o envelope criptografado, ele usará MD5CryptoServiceProvider e o sal para gerar uma chave para descriptografar os dados recebidos de volta para seu formato original de MD4.After the password hash synchronization agent has the encrypted envelope, it uses MD5CryptoServiceProvider and the salt to generate a key to decrypt the received data back to its original MD4 format. O agente de sincronização de hash de senha nunca tem acesso à senha de texto não criptografado.The password hash synchronization agent never has access to the clear text password. Uso que o agente de sincronização de hash de senha faz do MD5 é estritamente para compatibilidade de protocolo de replicação com o controlador de domínio, e é usado somente no local entre o controlador de domínio e o agente de sincronização de hash de senha.The password hash synchronization agent’s use of MD5 is strictly for replication protocol compatibility with the DC, and it is only used on premises between the DC and the password hash synchronization agent.
  4. O agente de sincronização de hash de senha expande o hash de senha binária de 16 bits para 64 bytes convertendo primeiro o hash em uma cadeia hexadecimal de 32 bytes, depois convertendo essa cadeia de caracteres de volta para o binário com a codificação UTF-16.The password hash synchronization agent expands the 16-byte binary password hash to 64 bytes by first converting the hash to a 32-byte hexadecimal string, then converting this string back into binary with UTF-16 encoding.
  5. O agente de sincronização de hash de senha adiciona um sal por usuário – que é composto por um sal de 10 bytes – ao binário de 64 bytes a fim de proteger ainda mais o hash original.The password hash synchronization agent adds a per user salt, consisting of a 10-byte length salt, to the 64-byte binary to further protect the original hash.
  6. Em seguida, o agente de sincronização de hash de senha combina o hash MD4 e o sal por usuário e usa o resultado como entrada na função PBKDF2.The password hash synchronization agent then combines the MD4 hash plus the per user salt, and inputs it into the PBKDF2 function. São usadas 1000 iterações do algoritmo de hash com chave HMAC-SHA256.1000 iterations of the HMAC-SHA256 keyed hashing algorithm are used.
  7. O agente de sincronização de hash de senha usa o hash resultante de 32 bytes, concatena o sal por usuário e o número de iterações SHA256 com ele (para uso pelo Azure AD) e, em seguida, transmite a cadeia de caracteres do Azure AD Connect para o Azure AD por SSL.The password hash synchronization agent takes the resulting 32-byte hash, concatenates both the per user salt and the number of SHA256 iterations to it (for use by Azure AD), then transmits the string from Azure AD Connect to Azure AD over SSL.
  8. Quando um usuário tenta entrar no Azure AD e insere sua senha, a senha é executada por meio do mesmo processo de MD4 + sal + PBKDF2 + HMAC-SHA256.When a user attempts to sign in to Azure AD and enters their password, the password is run through the same MD4+salt+PBKDF2+HMAC-SHA256 process. Se o hash resultante corresponder ao hash armazenado no Azure AD, isso significa que o usuário digitou a senha correta e será autenticado.If the resulting hash matches the hash stored in Azure AD, the user has entered the correct password and is authenticated.

Observação

O hash MD4 original não é transmitido para o Azure AD.The original MD4 hash is not transmitted to Azure AD. Em vez disso, o hash SHA256 do hash MD4 original é transmitido.Instead, the SHA256 hash of the original MD4 hash is transmitted. Como resultado, se o hash armazenado no Azure AD for obtido, ele não poderá ser usada em um ataque de passagem de hash no local.As a result, if the hash stored in Azure AD is obtained, it cannot be used in an on-premises pass-the-hash attack.

Considerações de segurançaSecurity considerations

Ao sincronizar senhas, a versão da sua senha em texto sem formatação não é exposta ao recurso de sincronização de hash de senha, nem ao Azure AD ou qualquer um dos serviços associados.When synchronizing passwords, the plain-text version of your password is not exposed to the password hash synchronization feature, to Azure AD, or any of the associated services.

A autenticação do usuário ocorre no Azure AD e não na própria instância do Active Directory da organização.User authentication takes place against Azure AD rather than against the organization's own Active Directory instance. Os dados de senha SHA256 armazenados no Azure AD - um hash do hash MD4 original - são mais seguros que os armazenados no Active Directory.The SHA256 password data stored in Azure AD--a hash of the original MD4 hash--is more secure than what is stored in Active Directory. Além disso, como não é possível descriptografar esse hash SHA256, ele não pode ser levado de volta ao ambiente do Active Directory da organização e apresentado como uma senha de usuário válida em um ataque de passagem de hash.Further, because this SHA256 hash cannot be decrypted, it cannot be brought back to the organization's Active Directory environment and presented as a valid user password in a pass-the-hash attack.

Considerações sobre política de senhaPassword policy considerations

Há dois tipos de políticas de senha que são afetadas ao habilitar a sincronização de hash de senha:There are two types of password policies that are affected by enabling password hash synchronization:

  • Política de complexidade de senhaPassword complexity policy
  • Política de expiração de senhaPassword expiration policy

Política de complexidade de senhaPassword complexity policy

Quando a sincronização de hash de senha é habilitada, as políticas de complexidade de senha na instância do Active Directory local substituem as políticas de complexidade na nuvem para usuários sincronizados.When password hash synchronization is enabled, the password complexity policies in your on-premises Active Directory instance override complexity policies in the cloud for synchronized users. Você pode usar todas as senhas válidas da sua instância do Active Directory local para acessar os serviços do Azure AD.You can use all of the valid passwords from your on-premises Active Directory instance to access Azure AD services.

Observação

Senhas de usuários criadas diretamente na nuvem ainda estão sujeitas a políticas de senha, conforme definido na nuvem.Passwords for users that are created directly in the cloud are still subject to password policies as defined in the cloud.

Política de expiração de senhaPassword expiration policy

Se um usuário estiver no escopo da sincronização de hash de senha, por padrão, a senha da conta de nuvem será definida para nunca expirar.If a user is in the scope of password hash synchronization, by default the cloud account password is set to Never Expire.

Você pode continuar entrando nos serviços de nuvem usando uma senha sincronizada que expirou no seu ambiente local.You can continue to sign in to your cloud services by using a synchronized password that is expired in your on-premises environment. A senha de nuvem será atualizada na próxima vez que você alterar a senha no ambiente local.Your cloud password is updated the next time you change the password in the on-premises environment.

Visualização pública do recurso EnforceCloudPasswordPolicyForPasswordSyncedUsersPublic preview of the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature

Se houver usuários sincronizados que interagem somente com os serviços integrados do Azure AD e também devem estar em conformidade com uma política de expiração de senha, você poderá forçá-los a cumprir sua política de expiração de senha do Azure AD habilitando o Recurso EnforceCloudPasswordPolicyForPasswordSyncedUsers .If there are synchronized users that only interact with Azure AD integrated services and must also comply with a password expiration policy, you can force them to comply with your Azure AD password expiration policy by enabling the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature.

Quando EnforceCloudPasswordPolicyForPasswordSyncedUsers está desabilitado (que é a configuração padrão), Azure ad Connect define o atributo PasswordPolicies de usuários sincronizados como "DisablePasswordExpiration".When EnforceCloudPasswordPolicyForPasswordSyncedUsers is disabled (which is the default setting), Azure AD Connect sets the PasswordPolicies attribute of synchronized users to "DisablePasswordExpiration". Isso é feito toda vez que a senha de um usuário é sincronizada e instrui o Azure AD a ignorar a política de expiração de senha de nuvem para esse usuário.This is done every time a user's password is synchronized and instructs Azure AD to ignore the cloud password expiration policy for that user. Você pode verificar o valor do atributo usando o módulo do PowerShell do Azure AD com o seguinte comando:You can check the value of the attribute using the Azure AD PowerShell module with the following command:

(Get-AzureADUser -objectID <User Object ID>).passwordpolicies

Para habilitar o recurso EnforceCloudPasswordPolicyForPasswordSyncedUsers, execute o seguinte comando usando o módulo MSOnline PowerShell:To enable the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature, run the following command using the MSOnline PowerShell module:

Set-MsolDirSyncFeature -Feature EnforceCloudPasswordPolicyForPasswordSyncedUsers -Enable $true

Uma vez habilitado, o Azure AD não vai para cada usuário sincronizado para remover o valor de DisablePasswordExpiration do atributo PasswordPolicies.Once enabled, Azure AD does not go to each synchronized user to remove the DisablePasswordExpiration value from the PasswordPolicies attribute. Em vez disso, o valor é definido como None durante a próxima sincronização de senha para cada usuário quando alteram sua senha no AD local.Instead, the value is set to None during the next password sync for each user when they next change their password in on-premises AD.

É recomendável habilitar EnforceCloudPasswordPolicyForPasswordSyncedUsers, antes de habilitar a sincronização de hash de senha, para que a sincronização inicial de hashes de senha não adicione o valor de DisablePasswordExpiration ao atributo PasswordPolicies para os usuários.It is recommended to enable EnforceCloudPasswordPolicyForPasswordSyncedUsers, prior to enabling password hash sync, so that the initial sync of password hashes does not add the DisablePasswordExpiration value to the PasswordPolicies attribute for the users.

A política de senha padrão do Azure AD exige que os usuários alterem suas senhas a cada 90 dias.The default Azure AD password policy requires users to change their passwords every 90 days. Se sua política no AD também for de 90 dias, as duas políticas deverão corresponder.If your policy in AD is also 90 days, the two policies should match. No entanto, se a política do AD não for de 90 dias, você poderá atualizar a política de senha do Azure AD para fazer a correspondência usando o comando do PowerShell Set-MsolPasswordPolicy.However, if the AD policy is not 90 days, you can update the Azure AD password policy to match by using the Set-MsolPasswordPolicy PowerShell command.

O Azure AD dá suporte a uma política de expiração de senha separada por domínio registrado.Azure AD supports a separate password expiration policy per registered domain.

ADVERTÊNCIA: se houver contas sincronizadas que precisam ter senhas que não expiram no Azure AD, você deverá adicionar explicitamente o valor de DisablePasswordExpiration ao atributo PasswordPolicies do objeto de usuário no Azure AD.Caveat: If there are synchronized accounts that need to have non-expiring passwords in Azure AD, you must explicitly add the DisablePasswordExpiration value to the PasswordPolicies attribute of the user object in Azure AD. Você pode fazer isso executando o comando a seguir.You can do this by running the following command.

Set-AzureADUser -ObjectID <User Object ID> -PasswordPolicies "DisablePasswordExpiration"

Observação

Este recurso está em visualização pública no momento.This feature is in Public Preview right now.

Visualização pública de sincronização de senhas temporárias e "forçar senha no próximo logon"Public Preview of synchronizing temporary passwords and "Force Password on Next Logon"

É comum forçar um usuário a alterar sua senha durante o primeiro logon, especialmente depois que uma redefinição de senha de administrador ocorre.It is typical to force a user to change their password during their first logon, especially after an admin password reset occurs. Ele é comumente conhecido como definir uma senha "temporária" e é concluído verificando o sinalizador "o usuário deve alterar a senha no próximo logon" em um objeto de usuário no Active Directory (AD).It is commonly known as setting a "temporary" password and is completed by checking the "User must change password at next logon" flag on a user object in Active Directory (AD).

A funcionalidade de senha temporária ajuda a garantir que a transferência de propriedade da credencial seja concluída na primeira utilização, para minimizar a duração de tempo em que mais de um indivíduo tem conhecimento dessa credencial.The temporary password functionality helps to ensure that the transfer of ownership of the credential is completed on first use, to minimize the duration of time in which more than one individual has knowledge of that credential.

Para dar suporte a senhas temporárias no Azure AD para usuários sincronizados, você pode habilitar o recurso ForcePasswordResetOnLogonFeature , executando o seguinte comando no servidor de Azure ad Connect, substituindo pelo nome do conector específico para seu ambiente:To support temporary passwords in Azure AD for synchronized users, you can enable the ForcePasswordResetOnLogonFeature feature, by running the following command on your Azure AD Connect server, replacing with the connector name specific to your environment:

Set-ADSyncAADCompanyFeature -ConnectorName "<AAD Connector name>" -ForcePasswordResetOnLogonFeature $true

Você pode usar o seguinte comando para determinar o nome do conector:You can use the following command to determine the connector name:

(Get-ADSyncConnector | where{$_.ListName -eq "Windows Azure Active Directory (Microsoft)"}).Name

ADVERTÊNCIA: forçar um usuário a alterar sua senha no próximo logon requer uma alteração de senha ao mesmo tempo.Caveat: Forcing a user to change their password on next logon requires a password change at the same time. O AD Connect não selecionará o sinalizador forçar alteração de senha por si só, ele é suplementar à alteração de senha detectada que ocorre durante a sincronização de hash de senha.AD Connect will not pick up the force password change flag by itself, it is supplemental to the detected password change that occurs during password hash sync.

Cuidado

Se você não habilitar a redefinição de senha de autoatendimento (SSPR) nos usuários do Azure AD, haverá uma experiência confusa ao redefinir sua senha no Azure AD e, em seguida, tentar entrar no Active Directory com a nova senha, pois a nova senha não é válida em Active Directory .If you do not enable Self-service Password Reset (SSPR) in Azure AD users will have a confusing experience when they reset their password in Azure AD and then attempt to sign in in Active Directory with the new password, as the new password isn’t valid in Active Directory. Você só deve usar esse recurso quando o SSPR e o Write-back de senha estiverem habilitados no locatário.You should only use this feature when SSPR and Password Writeback is enabled on the tenant.

Observação

Este recurso está em visualização pública no momento.This feature is in Public Preview right now.

Expiração da contaAccount expiration

Se a organização estiver usando o atributo accountExpires como parte do gerenciamento de conta de usuário, esse atributo não será sincronizado com o Azure AD.If your organization uses the accountExpires attribute as part of user account management, this attribute is not synchronized to Azure AD. Como resultado, uma conta expirada do Active Directory em um ambiente configurado para sincronização de hash de senha ainda estará ativa no Azure AD.As a result, an expired Active Directory account in an environment configured for password hash synchronization will still be active in Azure AD. Recomendamos que, se a conta expirar, uma ação de fluxo de trabalho dispare um script do PowerShell que desabilite a conta de usuário do Azure AD (use o cmdlet Set-AzureADUser).We recommend that if the account is expired, a workflow action should trigger a PowerShell script that disables the user's Azure AD account (use the Set-AzureADUser cmdlet). Por outro lado, quando a conta for ativada, a instância do Azure AD deverá ser ativada.Conversely, when the account is turned on, the Azure AD instance should be turned on.

Substituir senhas sincronizadasOverwrite synchronized passwords

Um administrador pode redefinir sua senha manualmente usando o Windows PowerShell.An administrator can manually reset your password by using Windows PowerShell.

Nesse caso, a nova senha substitui a senha sincronizada e todas as políticas de senha definidas na nuvem se aplicam à nova senha.In this case, the new password overrides your synchronized password, and all password policies defined in the cloud are applied to the new password.

Se você alterar a senha local novamente, a nova senha será sincronizada com a nuvem e substituirá a senha atualizada manualmente.If you change your on-premises password again, the new password is synchronized to the cloud, and it overrides the manually updated password.

A sincronização de uma senha não afeta um usuário do Azure que está conectado.The synchronization of a password has no impact on the Azure user who is signed in. Sua sessão de serviço de nuvem atual não será afetada imediatamente por uma alteração de senha sincronizada que ocorre enquanto você está conectado a um serviço de nuvem.Your current cloud service session is not immediately affected by a synchronized password change that occurs while you're signed in to a cloud service. KMSI ampliará a duração dessa diferença.KMSI extends the duration of this difference. Quando o serviço de nuvem exigir que você se autentique novamente, será necessário fornecer a nova senha.When the cloud service requires you to authenticate again, you need to provide your new password.

Vantagens adicionaisAdditional advantages

  • Em geral, a sincronização de hash de senha é mais simples de implementar do que um serviço de federação.Generally, password hash synchronization is simpler to implement than a federation service. Ela não exige quaisquer servidores adicionais e elimina a dependência de um serviço de federação altamente disponível para autenticar usuários.It doesn't require any additional servers, and eliminates dependence on a highly available federation service to authenticate users.
  • A sincronização de hash de senha também pode ser habilitada além da federação.Password hash synchronization can also be enabled in addition to federation. Ela pode ser usada como um fallback se seu serviço de federação sofrer uma interrupção.It may be used as a fallback if your federation service experiences an outage.

Processo de sincronização de hash de senha para Azure AD Domain ServicesPassword hash sync process for Azure AD Domain Services

Se você usar Azure AD Domain Services para fornecer autenticação herdada para aplicativos e serviços que precisam usar Keberos, LDAP ou NTLM, alguns processos adicionais fazem parte do fluxo de sincronização de hash de senha.If you use Azure AD Domain Services to provide legacy authentication for applications and services that need to use Keberos, LDAP, or NTLM, some additional processes are part of the password hash synchronization flow. Azure AD Connect usa o seguinte processo adicional para sincronizar os hashes de senha para o Azure AD para uso no Azure AD Domain Services:Azure AD Connect uses the additional following process to synchronize password hashes to Azure AD for use in Azure AD Domain Services:

Importante

Azure AD Connect sincroniza somente os hashes de senha herdados quando você habilita o Azure AD DS para seu locatário do Azure AD.Azure AD Connect only synchronizes legacy password hashes when you enable Azure AD DS for your Azure AD tenant. As etapas a seguir não serão usadas se você usar apenas Azure AD Connect para sincronizar um ambiente de AD DS local com o Azure AD.The following steps aren't used if you only use Azure AD Connect to synchronize an on-premises AD DS environment with Azure AD.

Se seus aplicativos herdados não usam autenticação NTLM ou associações simples LDAP, recomendamos que você desabilite a sincronização de hash de senha NTLM para o Azure AD DS.If your legacy applications don't use NTLM authentication or LDAP simple binds, we recommend that you disable NTLM password hash synchronization for Azure AD DS. Para obter mais informações, consulte desabilitar pacotes de criptografia fracos e sincronização de hash de credencial NTLM.For more information, see Disable weak cipher suites and NTLM credential hash synchronization.

  1. Azure AD Connect recupera a chave pública para a instância do locatário do Azure AD Domain Services.Azure AD Connect retrieves the public key for the tenant's instance of Azure AD Domain Services.
  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:When a user changes their password, the on-premises domain controller stores the result of the password change (hashes) in two attributes:
    • unicodePwd para o hash de senha NTLM.unicodePwd for the NTLM password hash.
    • supplementalCredentials para o hash de senha Kerberos.supplementalCredentials for the Kerberos password hash.
  3. Azure AD Connect detecta 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).Azure AD Connect detects password changes through the directory replication channel (attribute changes needing to replicate to other domain controllers).
  4. Para cada usuário cuja senha foi alterada, Azure AD Connect executa as seguintes etapas:For each user whose password has changed, Azure AD Connect performs the following steps:
    • Gera uma chave simétrica do AES de 256 bits aleatória.Generates a random AES 256-bit symmetric key.
    • Gera um vetor de inicialização aleatória necessário para a primeira rodada de criptografia.Generates a random initialization vector needed for the first round of encryption.
    • Extrai hashes de senha Kerberos dos atributos supplementalCredentials .Extracts Kerberos password hashes from the supplementalCredentials attributes.
    • Verifica a configuração de SyncNtlmPasswords de configuração de segurança Azure AD Domain Services.Checks the Azure AD Domain Services security configuration SyncNtlmPasswords setting.
      • Se essa configuração estiver desabilitada, o gerará um hash NTLM aleatório de alta entropia (diferente da senha do usuário).If this setting is disabled, generates a random, high-entropy NTLM hash (different from the user's password). Esse hash é então combinado com os hashes de senha Kerberos exatos do atributo supplementalCrendetials em uma estrutura de dados.This hash is then combined with the exacted Kerberos password hashes from the supplementalCrendetials attribute into one data structure.
      • Se habilitado, combina o valor do atributo unicodePwd com os hashes de senha Kerberos extraídos do atributo supplementalCredentials em uma estrutura de dados.If enabled, combines the value of the unicodePwd attribute with the extracted Kerberos password hashes from the supplementalCredentials attribute into one data structure.
    • Criptografa a estrutura de dados única usando a chave simétrica AES.Encrypts the single data structure using the AES symmetric key.
    • Criptografa a chave simétrica AES usando a chave pública de Azure AD Domain Services do locatário.Encrypts the AES symmetric key using the tenant's Azure AD Domain Services public key.
  5. Azure AD Connect transmite a chave simétrica criptografada AES, a estrutura de dados criptografada que contém os hashes de senha e o vetor de inicialização para o Azure AD.Azure AD Connect transmits the encrypted AES symmetric key, the encrypted data structure containing the password hashes, and the initialization vector to Azure AD.
  6. O Azure AD armazena a chave simétrica criptografada AES, a estrutura de dados criptografada e o vetor de inicialização para o usuário.Azure AD stores the encrypted AES symmetric key, the encrypted data structure, and the initialization vector for the user.
  7. O Azure AD envia por push a chave simétrica criptografada AES, a estrutura de dados criptografada e o vetor de inicialização usando um mecanismo de sincronização interno em uma sessão HTTP criptografada para Azure AD Domain Services.Azure AD pushes the encrypted AES symmetric key, the encrypted data structure, and the initialization vector using an internal synchronization mechanism over an encrypted HTTP session to Azure AD Domain Services.
  8. Azure AD Domain Services recupera a chave privada para a instância do locatário do Azure Key Vault.Azure AD Domain Services retrieves the private key for the tenant's instance from Azure Key vault.
  9. Para cada conjunto de dados criptografado (representando a alteração de senha de um único usuário), Azure AD Domain Services executa as seguintes etapas:For each encrypted set of data (representing a single user's password change), Azure AD Domain Services then performs the following steps:
    • Usa sua chave privada para descriptografar a chave simétrica AES.Uses its private key to decrypt the AES symmetric key.
    • Usa a chave simétrica AES com o vetor de inicialização para descriptografar a estrutura de dados criptografada que contém os hashes de senha.Uses the AES symmetric key with the initialization vector to decrypt the encrypted data structure that contains the password hashes.
    • Grava os hashes de senha Kerberos que ele recebe para o controlador de domínio Azure AD Domain Services.Writes the Kerberos password hashes it receives to the Azure AD Domain Services domain controller. 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 Azure AD Domain Services.The hashes are saved into the user object's supplementalCredentials attribute that is encrypted to the Azure AD Domain Services domain controller's public key.
    • Azure AD Domain Services grava o hash de senha NTLM recebido para o controlador de domínio Azure AD Domain Services.Azure AD Domain Services writes the NTLM password hash it received to the Azure AD Domain Services domain controller. O hash é salvo no atributo unicodePwd do objeto de usuário que é criptografado para a chave pública do controlador de domínio Azure AD Domain Services.The hash is saved into the user object's unicodePwd attribute that is encrypted to the Azure AD Domain Services domain controller's public key.

Permitir a sincronização de hash de senhaEnable password hash synchronization

Importante

Se você estiver migrando do AD FS (ou outras tecnologias de federação) para Sincronização de Hash de Senha, recomendamos fortemente seguir nosso guia detalhado de implantação publicado aqui.If you are migrating from AD FS (or other federation technologies) to Password Hash Synchronization, we highly recommend that you follow our detailed deployment guide published here.

Quando você instala o Azure AD Connect usando as Configurações Expressas, a sincronização de hash de senha é habilitada automaticamente.When you install Azure AD Connect by using the Express Settings option, password hash synchronization is automatically enabled. Para obter mais informações, consulte Introdução ao Azure AD Connect usando configurações expressas.For more information, see Getting started with Azure AD Connect using express settings.

Se você usar configurações personalizadas quando instalar o Azure AD Connect, a sincronização de hash de senha estará disponível na página de entrada do usuário.If you use custom settings when you install Azure AD Connect, password hash synchronization is available on the user sign-in page. Para saber mais, confira Instalação personalizada do Azure AD Connect.For more information, see Custom installation of Azure AD Connect.

Permitindo a sincronização de hash de senha

Sincronização de hash de senha e FIPSPassword hash synchronization and FIPS

Se o servidor tiver sido bloqueado de acordo com o FIPS (Federal Information Processing Standard), isso significará que o MD5 foi desabilitado.If your server has been locked down according to Federal Information Processing Standard (FIPS), then MD5 is disabled.

Para habilitar MD5 para a sincronização de hash de senha, execute as seguintes etapas:To enable MD5 for password hash synchronization, perform the following steps:

  1. Vá para %programfiles%\Azure AD Sync\Bin.Go to %programfiles%\Azure AD Sync\Bin.
  2. Abra miiserver.exe.config.Open miiserver.exe.config.
  3. Acesse o nó configuração/runtime no fim do arquivo.Go to the configuration/runtime node at the end of the file.
  4. Adicione o seguinte nó: <enforceFIPSPolicy enabled="false"/>Add the following node: <enforceFIPSPolicy enabled="false"/>
  5. Salve suas alterações.Save your changes.

Para referência, esse snippet mostra como deve ser a aparência:For reference, this snippet is what it should look like:

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

Para obter informações sobre segurança e FIPS, consulte Sincronização de hash de senha do Azure, criptografia e conformidade FIPS.For information about security and FIPS, see Azure AD password hash sync, encryption, and FIPS compliance.

Solução de Problemas de Sincronização de hash de SenhaTroubleshoot password hash synchronization

Caso tenha problemas com a sincronização de hash de senha, veja Solucionar problemas de sincronização de hash de senha.If you have problems with password hash synchronization, see Troubleshoot password hash synchronization.

Próximas etapasNext steps