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. Não é possível usar o hash de senha para entrar na sua rede local.You cannot use a password hash to sign in to your on-premises network.

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.

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.

Como funciona a sincronização de hash de senhas com o Azure Active Directory Domain ServicesHow password hash synchronization works with Azure Active Directory Domain Services

Você também pode usar o recurso de sincronização de hash de senha para sincronizar suas senhas locais para o Azure Active Directory Domain Services.You can also use the password hash synchronization feature to synchronize your on-premises passwords to Azure Active Directory Domain Services. Nesse cenário, a instância do Azure Active Directory Domain Services autentica os usuários na nuvem com todos os métodos disponíveis na instância do Active Directory local.In this scenario, the Azure Active Directory Domain Services instance authenticates your users in the cloud with all the methods available in your on-premises Active Directory instance. A experiência desse cenário é semelhante a usar a ADMT (Ferramenta de Migração do Active Directory) em um ambiente local.The experience of this scenario is similar to using the Active Directory Migration Tool (ADMT) in an on-premises environment.

Considerações sobre 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 de sincronização de hash de senha, a senha da conta de nuvem será definida como Nunca Expirar.If a user is in the scope of password hash synchronization, 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.

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.

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/tempo de execução 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