Implementación de la sincronización de hash de contraseñas con la sincronización de Azure AD ConnectImplement password hash synchronization with Azure AD Connect sync

En este artículo se ofrece información que se necesita para sincronizar las contraseñas de usuario desde una instancia de Active Directory local con otra de Azure Active Directory (Azure AD) basado en la nube.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.

Funcionamiento de la sincronización de hash de contraseñasHow password hash synchronization works

El servicio de dominio de Active Directory almacena contraseñas en forma de representación de valor hash de la contraseña de usuario real.The Active Directory domain service stores passwords in the form of a hash value representation, of the actual user password. Un valor hash es el resultado de una función matemática unidireccional (el algoritmo hash).A hash value is a result of a one-way mathematical function (the hashing algorithm). No hay ningún método para volver del resultado de una función unidireccional a la versión de texto sin formato de una contraseña.There is no method to revert the result of a one-way function to the plain text version of a password.

Para sincronizar la contraseña, la sincronización de Azure AD Connect extrae el hash de la contraseña de la instancia de Active Directory local.To synchronize your password, Azure AD Connect sync extracts your password hash from the on-premises Active Directory instance. Se aplica un procesamiento de seguridad adicional al hash de contraseña antes de que se sincronice con el servicio de autenticación de Azure Active Directory.Extra security processing is applied to the password hash before it is synchronized to the Azure Active Directory authentication service. Las contraseñas se sincronizan usuario por usuario y en orden cronológico.Passwords are synchronized on a per-user basis and in chronological order.

El flujo de datos reales del proceso de sincronización de hash de contraseñas es similar al de sincronización de datos de usuario.The actual data flow of the password hash synchronization process is similar to the synchronization of user data. De todas formas, las contraseñas se sincronizan con más frecuencia que la ventana de sincronización de directorios estándar para otros atributos.However, passwords are synchronized more frequently than the standard directory synchronization window for other attributes. El proceso de sincronización de hash de contraseñas se ejecuta cada 2 minutos.The password hash synchronization process runs every 2 minutes. La frecuencia de este proceso no se puede modificar.You cannot modify the frequency of this process. Al sincronizar una contraseña, esta sobrescribe la contraseña existente en la nube.When you synchronize a password, it overwrites the existing cloud password.

La primera vez que se habilita la característica de sincronización de hash de contraseñas, se realiza una sincronización inicial de las contraseñas de todos los usuarios dentro del ámbito.The first time you enable the password hash synchronization feature, it performs an initial synchronization of the passwords of all in-scope users. No puede definir explícitamente un subconjunto de contraseñas de usuario que quiera sincronizar.You cannot explicitly define a subset of user passwords that you want to synchronize. Pero si hay varios conectores, es posible deshabilitar la sincronización de hash de contraseña en algunos conectores, pero no en otros, mediante el 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.

Al cambiar una contraseña local, la contraseña actualizada se sincroniza más a menudo en cuestión de minutos.When you change an on-premises password, the updated password is synchronized, most often in a matter of minutes. La característica de sincronización de hash de contraseñas reintenta automáticamente los intentos fallidos de sincronización.The password hash synchronization feature automatically retries failed synchronization attempts. Si se produce un error al intentar sincronizar una contraseña, se registra un error en el visor de eventos.If an error occurs during an attempt to synchronize a password, an error is logged in your event viewer.

La sincronización de una contraseña no influye en el usuario que actualmente ha iniciado sesión.The synchronization of a password has no impact on the user who is currently signed in. Si se sincroniza un cambio de contraseña mientras tiene iniciada sesión en un servicio en la nube, este cambio no afectará de inmediato a la sesión actual del servicio en la nube.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. Sin embargo, cuando el servicio en la nube requiera de nuevo su autenticación, deberá proporcionar la nueva contraseña.However, when the cloud service requires you to authenticate again, you need to provide your new password.

Un usuario debe escribir sus credenciales corporativas una segunda vez para autenticarse en Azure AD, independientemente de que haya iniciado sesión en su red 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. Pero este patrón puede reducirse si el usuario activa la casilla "Mantener la sesión iniciada" (KMSI) en el inicio de sesión.This pattern can be minimized, however, if the user selects the Keep me signed in (KMSI) check box at sign-in. Esta opción establece una cookie de sesión que omite la autenticación durante 180 días.This selection sets a session cookie that bypasses authentication for 180 days. El comportamiento de KMSI lo puede habilitar o deshabilitar el administrador de Azure AD.KMSI behavior can be enabled or disabled by the Azure AD administrator. Además, para reducir los mensajes de petición de contraseña, puede activar SSO de conexión directa, que permite iniciar sesión automáticamente a los usuarios en dispositivos corporativos conectados a la red de la empresa.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.

Nota

Solo se admite la sincronización de la contraseña para el usuario del tipo de objeto de Active Directory.Password sync is only supported for the object type user in Active Directory. No se admite para el tipo de objeto iNetOrgPerson.It is not supported for the iNetOrgPerson object type.

Descripción detallada de cómo funciona la sincronización de hash de contraseñasDetailed description of how password hash synchronization works

En la sección siguiente se describe con detalle cómo funciona la sincronización de hash de contraseñas entre Active Directory y Azure AD.The following section describes, in-depth, how password hash synchronization works between Active Directory and Azure AD.

Flujo detallado de contraseñas

  1. Cada dos minutos, el agente de sincronización de hash de contraseñas en el servidor de AD Connect solicita hashes de contraseña almacenados (el atributo unicodePwd) desde un controlador de dominio.Every two minutes, the password hash synchronization agent on the AD Connect server requests stored password hashes (the unicodePwd attribute) from a DC. Esta solicitud es a través del protocolo de replicación MS-DRSR estándar que se utiliza para sincronizar datos entre controladores de dominio.This request is via the standard MS-DRSR replication protocol used to synchronize data between DCs. La cuenta de servicio debe tener los permisos para replicar cambios de directorio y para replicar cambios de directorio en todos los AD (se conceden de manera predeterminada en la instalación) para obtener los hashes de contraseña.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 del envío, el controlador de dominio cifra el hash de contraseña MD4 mediante una clave que es un hash de MD5 de la clave de sesión RPC y valor 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. Después envía el resultado al agente de sincronización de hash de contraseñas a través de RPC.It then sends the result to the password hash synchronization agent over RPC. El controlador de dominio también pasa el valor sal al agente de sincronización mediante el protocolo de replicación del controlador de dominio, por lo que el agente podrá descifrar el sobre.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. Cuando el agente de sincronización de hash de contraseñas tiene el sobre cifrado, usa MD5CryptoServiceProvider y el valor sal para generar una clave para descifrar los datos recibidos en su 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. El agente de sincronización de hash de contraseñas nunca tiene acceso a la contraseña de texto no cifrado.The password hash synchronization agent never has access to the clear text password. El uso del agente de sincronización de hash de contraseñas de MD5 es estrictamente para compatibilidad del protocolo de replicación con el controlador de dominio y solo se usa en local entre el controlador de dominio y el agente de sincronización de hash de contraseñas.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. El agente de sincronización de hash de contraseñas amplía el hash de contraseña binario de 16 bits a 64 bytes al convertir en primer lugar el hash con una cadena hexadecimal de 32 bytes y, después, convertir esta cadena de nuevo en binario con codificación 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. El agente de sincronización de hash de contraseñas agrega un valor sal por usuario, que consta de un valor sal de longitud de 10 bytes, al archivo binario de 64 bits para proteger aún más el valor 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. El agente de sincronización de hash de contraseñas combina el hash MD4 con el valor sal por usuario y los introduce en la función PBKDF2.The password hash synchronization agent then combines the MD4 hash plus the per user salt, and inputs it into the PBKDF2 function. Se usan 1000 iteraciones del algoritmo hash con clave HMAC-SHA256.1000 iterations of the HMAC-SHA256 keyed hashing algorithm are used.
  7. El agente de sincronización de hash de contraseñas toma el hash de 32 bits resultante, concatena el valor sal por usuario y el número de iteraciones de SHA256 con él (para su uso con Azure AD) y después transmite la cadena desde Azure AD Connect a Azure AD a través de 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. Cuando un usuario intenta iniciar sesión en Azure AD y escribe su contraseña, esta se ejecuta a través del mismo proceso 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. Si el hash resultante coincide con el valor hash almacenado en Azure AD, el usuario ha especificado la contraseña correcta y se autentica.If the resulting hash matches the hash stored in Azure AD, the user has entered the correct password and is authenticated.

Nota

El hash MD4 original no se transmite a Azure AD.The original MD4 hash is not transmitted to Azure AD. En su lugar, se transmite el hash SHA256 del algoritmo hash MD4 original.Instead, the SHA256 hash of the original MD4 hash is transmitted. Por consiguiente, si se obtiene el hash almacenado en Azure AD, no se puede usar en un ataque pass-the-hash en 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.

Consideraciones sobre la seguridadSecurity considerations

Al sincronizar contraseñas, la versión de texto sin formato de su contraseña no se expone a la característica de sincronización de hash de contraseñas ni a Azure AD ni a ninguno de los servicios asociados.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.

La autenticación del usuario tiene lugar en Azure AD, y no en la propia instancia de Active Directory de la organización.User authentication takes place against Azure AD rather than against the organization's own Active Directory instance. Los datos de la contraseña SHA256 almacenados en Azure AD, un hash del hash MD4 original, son más seguros que los que se almacenan en 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. Además, como no se puede descifrar este hash SHA256, no se vuelve al entorno de Active Directory de la organización y se presenta como una contraseña de usuario válida en un ataque pass-the-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.

Consideraciones de la directiva de contraseñaPassword policy considerations

Existen dos tipos de directivas de contraseña que se ven afectados por la habilitación de la sincronización de hash de contraseñas:There are two types of password policies that are affected by enabling password hash synchronization:

  • Directiva de complejidad de contraseñasPassword complexity policy
  • Directiva de expiración de contraseñasPassword expiration policy

Directiva de complejidad de contraseñasPassword complexity policy

Cuando se habilita la sincronización de hash de contraseñas, las directivas de complejidad de contraseñas en su instancia local de Active Directory reemplazan a las directivas de complejidad en la nube para los usuarios 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. Puede usar todas las contraseñas válidas de su instancia de Active Directory local para acceder a servicios de Azure AD.You can use all of the valid passwords from your on-premises Active Directory instance to access Azure AD services.

Nota

Las contraseñas para los usuarios que se crean directamente en la nube siguen estando sujetas a las directivas de contraseñas tal como se definen en la nube.Passwords for users that are created directly in the cloud are still subject to password policies as defined in the cloud.

Directiva de expiración de contraseñasPassword expiration policy

Si un usuario está en el ámbito de sincronización de hash de contraseñas, de forma predeterminada la contraseña de cuenta en la nube se establece en No caduca nunca.If a user is in the scope of password hash synchronization, by default the cloud account password is set to Never Expire.

Puede seguir iniciando sesión en los servicios en la nube con una contraseña sincronizada que haya expirado en su entorno local.You can continue to sign in to your cloud services by using a synchronized password that is expired in your on-premises environment. La contraseña en la nube se actualizará la próxima vez que cambie la contraseña en el entorno local.Your cloud password is updated the next time you change the password in the on-premises environment.

Versión preliminar pública de la característica EnforceCloudPasswordPolicyForPasswordSyncedUsersPublic preview of the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature

Si hay usuarios sincronizados que solo interactúan con servicios integrados de Azure AD y también deben cumplir una directiva de expiración de contraseñas, puede obligarlos a cumplir con la directiva de expiración de contraseñas de Azure AD mediante la habilitación de la característica 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.

Cuando EnforceCloudPasswordPolicyForPasswordSyncedUsers está deshabilitado (que es la configuración predeterminada), Azure AD Connect establece el atributo PasswordPolicies de los usuarios sincronizados en "DisablePasswordExpiration".When EnforceCloudPasswordPolicyForPasswordSyncedUsers is disabled (which is the default setting), Azure AD Connect sets the PasswordPolicies attribute of synchronized users to "DisablePasswordExpiration". Esto se hace cada vez que se sincroniza la contraseña de un usuario e indica a Azure AD que omita la directiva de expiración de contraseñas en la nube para ese usuario.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. Puede comprobar el valor del atributo mediante el módulo de Azure AD PowerShell con el siguiente 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 la característica EnforceCloudPasswordPolicyForPasswordSyncedUsers, ejecute el siguiente comando con el módulo MSOnline de PowerShell:To enable the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature, run the following command using the MSOnline PowerShell module:

Set-MsolDirSyncFeature -Feature EnforceCloudPasswordPolicyForPasswordSyncedUsers -Enable $true

Una vez habilitado, Azure AD no va a cada usuario sincronizado para quitar el valor DisablePasswordExpiration del atributo PasswordPolicies.Once enabled, Azure AD does not go to each synchronized user to remove the DisablePasswordExpiration value from the PasswordPolicies attribute. En su lugar, el valor se establece en None durante la siguiente sincronización de contraseñas para cada usuario la próxima vez que cambie su contraseña en 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.

Se recomienda habilitar EnforceCloudPasswordPolicyForPasswordSyncedUsers, antes de habilitar la sincronización de hash de contraseñas, para que la sincronización inicial de los hashes de contraseñas no agregue el valor DisablePasswordExpiration al atributo PasswordPolicies para los usuarios.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.

La directiva de contraseñas de Azure AD predeterminada requiere que los usuarios cambien sus contraseñas cada 90 días.The default Azure AD password policy requires users to change their passwords every 90 days. Si la directiva de AD es también de 90 días, las dos directivas deben coincidir.If your policy in AD is also 90 days, the two policies should match. Sin embargo, si la directiva de AD no es de 90 días, puede actualizar la directiva de contraseñas de Azure AD para que coincida con el comando de 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.

Azure AD admite una directiva de expiración de contraseñas independiente por dominio registrado.Azure AD supports a separate password expiration policy per registered domain.

Advertencia: Si hay cuentas sincronizadas que necesiten contraseñas que no expiren en Azure AD, debe agregar explícitamente el valor DisablePasswordExpiration al atributo PasswordPolicies del objeto de usuario en 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. Para ello, puede ejecutar el siguiente comando.You can do this by running the following command.

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

Nota

Esta característica está ahora en versión preliminar pública.This feature is in Public Preview right now.

Versión preliminar pública de la sincronización de contraseñas temporales y "Forzar contraseña en el siguiente inicio de sesión"Public Preview of synchronizing temporary passwords and "Force Password on Next Logon"

Es habitual exigir al usuario a cambiar la contraseña durante el primer inicio de sesión, especialmente después de que se produzca un restablecimiento de la contraseña de administrador.It is typical to force a user to change their password during their first logon, especially after an admin password reset occurs. Normalmente se conoce como establecer una contraseña "temporal" y se completa mediante la comprobación de la marca "El usuario debe cambiar la contraseña en el siguiente inicio de sesión" en un objeto de usuario de 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).

La funcionalidad de contraseña temporal ayuda a garantizar que la transferencia de propiedad de la credencial se complete al usarse por primera vez, con el fin de minimizar la duración del tiempo en el que más de un usuario tiene conocimiento de esa 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 admitir contraseñas temporales en Azure AD para usuarios sincronizados, puede habilitar la característica ForcePasswordResetOnLogonFeature mediante la ejecución del siguiente comando en el servidor de Azure AD Connect, reemplazando por el nombre del conector. específico para el entorno: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

Puede usar el siguiente comando para determinar el nombre del conector:You can use the following command to determine the connector name:

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

Advertencia: Forzar a un usuario a cambiar su contraseña en el siguiente inicio de sesión requiere un cambio de contraseña al mismo tiempo.Caveat: Forcing a user to change their password on next logon requires a password change at the same time. AD Connect no recogerá la marca de forzar el cambio de contraseña por sí misma, sino que es complementaria al cambio de contraseña detectado que se produce durante la sincronización de hash de contraseñas.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.

Precaución

Si no habilita el autoservicio de restablecimiento de contraseña (SSPR) en Azure AD, los usuarios tendrán una experiencia confusa cuando restablezcan su contraseña en Azure AD e intenten iniciar sesión en Active Directory con la nueva contraseña, ya que esta contraseña no es válida.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. Solo debe usar esta característica cuando SSPR y la escritura diferida de contraseñas está habilitada en el inquilino.You should only use this feature when SSPR and Password Writeback is enabled on the tenant.

Nota

Esta característica está ahora en versión preliminar pública.This feature is in Public Preview right now.

Expiración de la cuentaAccount expiration

Si su organización usa el atributo accountExpires como parte de la administración de cuentas de usuario, este atributo no se sincroniza con Azure AD.If your organization uses the accountExpires attribute as part of user account management, this attribute is not synchronized to Azure AD. Por consiguiente, una cuenta de Active Directory expirada en un entorno configurado para la sincronización de hash de contraseñas seguirá activa en 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. Se recomienda que, si la cuenta ha expirado, una acción de flujo de trabajo debe desencadenar un script de PowerShell que deshabilite la cuenta de Azure AD del usuario (use el 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 el contrario, cuando la cuenta está activada, la instancia de Azure AD debe estar activada.Conversely, when the account is turned on, the Azure AD instance should be turned on.

Sobrescritura de las contraseñas sincronizadasOverwrite synchronized passwords

Un administrador puede restablecer manualmente la contraseña mediante Windows PowerShell.An administrator can manually reset your password by using Windows PowerShell.

En este caso, la nueva contraseña reemplaza a la contraseña sincronizada y todas las directivas de contraseñas definidas en la nube se aplican a la nueva contraseña.In this case, the new password overrides your synchronized password, and all password policies defined in the cloud are applied to the new password.

Si vuelve a cambiar la contraseña local, la nueva contraseña se sincroniza con la nube y reemplaza a la contraseña actualizada manualmente.If you change your on-premises password again, the new password is synchronized to the cloud, and it overrides the manually updated password.

La sincronización de una contraseña no influye en el usuario de Azure que ha iniciado sesión.The synchronization of a password has no impact on the Azure user who is signed in. Si se sincroniza un cambio de contraseña mientras tiene iniciada sesión en un servicio en la nube, este cambio no afectará de inmediato a la sesión actual del servicio en la nube.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 prolonga la duración de esta diferencia.KMSI extends the duration of this difference. Cuando el servicio en la nube requiera de nuevo su autenticación, deberá proporcionar la nueva contraseña.When the cloud service requires you to authenticate again, you need to provide your new password.

Ventajas adicionalesAdditional advantages

  • Por lo general, la sincronización de hash de contraseñas es más fácil de implementar que un servicio de federación.Generally, password hash synchronization is simpler to implement than a federation service. No requiere ningún servidor adicional y elimina la dependencia en un servicio de federación de alta disponibilidad para autenticar a los usuarios.It doesn't require any additional servers, and eliminates dependence on a highly available federation service to authenticate users.
  • También se puede habilitar la sincronización de hash de contraseñas además de la federación.Password hash synchronization can also be enabled in addition to federation. Puede usarse como reserva en caso de que el servicio de federación experimente una interrupción del servicio.It may be used as a fallback if your federation service experiences an outage.

Proceso de sincronización de hash de contraseña para Azure AD Domain ServicesPassword hash sync process for Azure AD Domain Services

Si usa Azure AD Domain Services para proporcionar autenticación heredada para las aplicaciones y los servicios que necesitan usar Keberos, LDAP o NTLM, algunos procesos adicionales forman parte del flujo de sincronización de hash de contraseña.If you use Azure AD Domain Services to provide legacy authentication for applications and services that need to use Kerberos, LDAP, or NTLM, some additional processes are part of the password hash synchronization flow. Azure AD Connect usa el siguiente proceso adicional para sincronizar los hash de contraseña con Azure AD para su uso en 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 solo se debe instalar y configurar para la sincronización con entornos de AD DS locales.Azure AD Connect should only be installed and configured for synchronization with on-premises AD DS environments. No se admite la instalación de Azure AD Connect en un dominio administrado de Azure AD DS para volver a sincronizar los objetos con Azure AD.It's not supported to install Azure AD Connect in an Azure AD DS managed domain to synchronize objects back to Azure AD.

Azure AD Connect solo sincroniza los hashes de contraseña heredados al habilitar Azure AD DS para su inquilino de Azure AD.Azure AD Connect only synchronizes legacy password hashes when you enable Azure AD DS for your Azure AD tenant. Los siguientes pasos no se usan si solo utiliza Azure AD Connect para sincronizar un entorno de AD DS local con 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.

Si las aplicaciones heredadas no utilizan la autenticación NTLM o los enlaces simples LDAP, se recomienda deshabilitar la sincronización de hash de contraseña de NTLM para 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 más información, consulte Deshabilitación de la sincronización de hash de credenciales NTLM y de conjuntos de cifrado débil.For more information, see Disable weak cipher suites and NTLM credential hash synchronization.

  1. Azure AD Connect recupera la clave pública de la instancia del inquilino de Azure AD Domain Services.Azure AD Connect retrieves the public key for the tenant's instance of Azure AD Domain Services.
  2. Cuando un usuario cambia la contraseña, el controlador de dominio local almacena el resultado del cambio de contraseña (hashes) en dos 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 el hash de contraseña de NTLM.unicodePwd for the NTLM password hash.
    • supplementalCredentials para el hash de contraseña de Kerberos.supplementalCredentials for the Kerberos password hash.
  3. Azure AD Connect detecta los cambios de contraseña a través del canal de replicación de directorios (los cambios de atributo deben replicarse en otros controladores de dominio).Azure AD Connect detects password changes through the directory replication channel (attribute changes needing to replicate to other domain controllers).
  4. Para cada usuario cuya contraseña ha cambiado, Azure AD Connect realiza los pasos siguientes:For each user whose password has changed, Azure AD Connect performs the following steps:
    • Genera una clave simétrica AES de 256 bits aleatoria.Generates a random AES 256-bit symmetric key.
    • Genera un vector de inicialización aleatorio necesario para la primera ronda de cifrado.Generates a random initialization vector needed for the first round of encryption.
    • Extrae los valores hash de contraseña de Kerberos de los atributos supplementalCredentials.Extracts Kerberos password hashes from the supplementalCredentials attributes.
    • Comprueba el valor SyncNtlmPasswords de configuración de seguridad de Azure AD Domain Services.Checks the Azure AD Domain Services security configuration SyncNtlmPasswords setting.
      • Si esta configuración está deshabilitada, genera un hash de NTLM aleatorio y de alta entropía (diferente de la contraseña del usuario).If this setting is disabled, generates a random, high-entropy NTLM hash (different from the user's password). Después, este hash se combina con los hashes de contraseña de Kerberos extraídos del atributo supplementalCrendetials en una estructura de datos.This hash is then combined with the exacted Kerberos password hashes from the supplementalCrendetials attribute into one data structure.
      • Si está habilitada, combina el valor del atributo unicodePwd con los hash de contraseña de Kerberos extraídos del atributo supplementalCredentials en una estructura de datos.If enabled, combines the value of the unicodePwd attribute with the extracted Kerberos password hashes from the supplementalCredentials attribute into one data structure.
    • Cifra la estructura de datos única mediante la clave simétrica AES.Encrypts the single data structure using the AES symmetric key.
    • Cifra la clave simétrica AES mediante la clave pública de Azure AD Domain Services del inquilino.Encrypts the AES symmetric key using the tenant's Azure AD Domain Services public key.
  5. Azure AD Connect transmite la clave simétrica AES cifrada, la estructura de datos cifrada que contiene los valores hash de contraseña y el vector de inicialización que se va a 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. Azure AD almacena la clave simétrica AES cifrada, la estructura de datos cifrada y el vector de inicialización para el usuario.Azure AD stores the encrypted AES symmetric key, the encrypted data structure, and the initialization vector for the user.
  7. Azure AD envía la clave simétrica AES cifrada, la estructura de datos cifrada y el vector de inicialización mediante un mecanismo de sincronización interno a través de una sesión HTTP cifrada 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 la clave privada de la instancia del inquilino desde 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 datos cifrado (que representa el cambio de contraseña de un solo usuario), Azure AD Domain Services realiza los siguientes pasos:For each encrypted set of data (representing a single user's password change), Azure AD Domain Services then performs the following steps:
    • Usa su clave privada para descifrar la clave simétrica AES.Uses its private key to decrypt the AES symmetric key.
    • Usa la clave simétrica AES con el vector de inicialización para descifrar la estructura de datos cifrados que contiene los hash de contraseña.Uses the AES symmetric key with the initialization vector to decrypt the encrypted data structure that contains the password hashes.
    • Escribe los hash de contraseña de Kerberos que recibe en el controlador de dominio de Azure AD Domain Services.Writes the Kerberos password hashes it receives to the Azure AD Domain Services domain controller. Los hashes se guardan en el atributo supplementalCredentials del objeto de usuario que se cifra con la clave pública del controlador de dominio de 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 escribe el hash de contraseña de NTLM que se recibe en el controlador de dominio de Azure AD Domain Services.Azure AD Domain Services writes the NTLM password hash it received to the Azure AD Domain Services domain controller. El hash se guarda en el atributo unicodePwd del objeto de usuario que se cifra con la clave pública del controlador de dominio de 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.

Habilitación de la sincronización de hash de contraseñasEnable password hash synchronization

Importante

Si va a migrar desde AD FS (u otra tecnología de federación) a la sincronización de hash de contraseña, es muy recomendable que siga nuestra guía de implementación detallada publicada aquí.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.

Cuando se instala Azure AD Connect mediante la opción Configuración rápida, la sincronización de hash de contraseñas se habilita automáticamente.When you install Azure AD Connect by using the Express Settings option, password hash synchronization is automatically enabled. Para más información, vea Introducción a Azure AD Connect mediante la configuración rápida.For more information, see Getting started with Azure AD Connect using express settings.

Si usa una configuración personalizada al instalar Azure AD Connect, la sincronización de hash de contraseñas está disponible en la página de inicio de sesión del usuario.If you use custom settings when you install Azure AD Connect, password hash synchronization is available on the user sign-in page. Para más información, consulte Instalación personalizada de Azure AD Connect.For more information, see Custom installation of Azure AD Connect.

Habilitación de la sincronización de hash de contraseñas

Sincronización de hash de contraseñas y FIPSPassword hash synchronization and FIPS

Si el servidor se bloquea según el Estándar Federal de Procesamiento de la Información (FIPS), se deshabilita el hash MD5.If your server has been locked down according to Federal Information Processing Standard (FIPS), then MD5 is disabled.

Para habilitar el MD5 para la sincronización de hash de contraseñas, realice los pasos siguientes:To enable MD5 for password hash synchronization, perform the following steps:

  1. Vaya a %programfiles%\Azure AD Sync\Bin.Go to %programfiles%\Azure AD Sync\Bin.
  2. Abra miiserver.exe.config.Open miiserver.exe.config.
  3. Vaya al nodo configuration/runtime (al final del archivo).Go to the configuration/runtime node at the end of the file.
  4. Agregue el siguiente nodo: <enforceFIPSPolicy enabled="false"/>Add the following node: <enforceFIPSPolicy enabled="false"/>
  5. Guarde los cambios.Save your changes.

Como referencia, este fragmento de código debe ser similar al siguiente:For reference, this snippet is what it should look like:

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

Para obtener información sobre la seguridad y FIPS, vea Azure AD password hash sync, encryption, and FIPS compliance (Cumplimiento de sincronización de hash de contraseña, cifrado y FIPS de Azure AD).For information about security and FIPS, see Azure AD password hash sync, encryption, and FIPS compliance.

Solución de problemas de sincronización de hash de contraseñasTroubleshoot password hash synchronization

Si tiene problemas con la sincronización de hash de contraseñas, vea Solución de problemas de sincronización de hash de contraseñas.If you have problems with password hash synchronization, see Troubleshoot password hash synchronization.

Pasos siguientesNext steps