Implementare la sincronizzazione dell'hash delle password con il servizio di sincronizzazione Azure AD ConnectImplement password hash synchronization with Azure AD Connect sync

Questo articolo contiene le informazioni necessarie per sincronizzare le password utente da un'istanza di Active Directory locale a un'istanza di Azure Active Directory (Azure AD) basata sul cloud.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.

Funzionamento della sincronizzazione dell'hash delle passwordHow password hash synchronization works

Il servizio di dominio Active Directory archivia le password come rappresentazioni con valore hash delle password utente reali.The Active Directory domain service stores passwords in the form of a hash value representation, of the actual user password. Un valore hash è il risultato di una funzione matematica unidirezionale, chiamata algoritmo di hash.A hash value is a result of a one-way mathematical function (the hashing algorithm). Non esiste un metodo per ripristinare la versione in testo normale di una password dal risultato di una funzione unidirezionale.There is no method to revert the result of a one-way function to the plain text version of a password.

Per sincronizzare la password, il servizio di sincronizzazione Azure AD Connect estrae l'hash della password dall'istanza di Active Directory locale.To synchronize your password, Azure AD Connect sync extracts your password hash from the on-premises Active Directory instance. All'hash della password viene applicata un'elaborazione di sicurezza aggiuntiva prima della sincronizzazione con il servizio di autenticazione di Azure Active Directory.Extra security processing is applied to the password hash before it is synchronized to the Azure Active Directory authentication service. Le password vengono sincronizzate per ogni singolo utente e in ordine cronologico.Passwords are synchronized on a per-user basis and in chronological order.

Il flusso di dati del processo di sincronizzazione hash delle password è simile alla sincronizzazione dei dati utente.The actual data flow of the password hash synchronization process is similar to the synchronization of user data. Le password vengono tuttavia sincronizzate con una frequenza maggiore rispetto alla finestra di sincronizzazione standard della directory per altri attributi.However, passwords are synchronized more frequently than the standard directory synchronization window for other attributes. Il processo di sincronizzazione dell'hash delle password viene eseguito ogni 2 minuti.The password hash synchronization process runs every 2 minutes. Non è possibile modificare la frequenza del processo.You cannot modify the frequency of this process. Se si sincronizza una password, la password sincronizzata sovrascrive quella esistente nel cloud.When you synchronize a password, it overwrites the existing cloud password.

Quando si abilita la funzionalità di sincronizzazione dell'hash delle password per la prima volta, viene eseguita una sincronizzazione iniziale delle password di tutti gli utenti inclusi nell'ambito.The first time you enable the password hash synchronization feature, it performs an initial synchronization of the passwords of all in-scope users. Non è possibile definire in modo esplicito un subset di password utente da sincronizzare.You cannot explicitly define a subset of user passwords that you want to synchronize.

Quando si modifica una password locale, la password aggiornata viene sincronizzata, spesso in pochi minuti.When you change an on-premises password, the updated password is synchronized, most often in a matter of minutes. In caso di sincronizzazioni non riuscite, la funzionalità di sincronizzazione dell'hash delle password esegue automaticamente nuovi tentativi di sincronizzazione.The password hash synchronization feature automatically retries failed synchronization attempts. Se si verifica un errore durante un tentativo di sincronizzazione di una password, viene registrato un errore nel visualizzatore eventi.If an error occurs during an attempt to synchronize a password, an error is logged in your event viewer.

La sincronizzazione di una password non ha alcun impatto sull'utente attualmente connesso.The synchronization of a password has no impact on the user who is currently signed in. Se si modifica una password sincronizzata dopo aver eseguito l'accesso a un servizio cloud, la sessione corrente del servizio cloud non rileva immediatamente la modifica.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. Tuttavia, quando il servizio cloud richiede di nuovo l'autenticazione, è necessario specificare la nuova password.However, when the cloud service requires you to authenticate again, you need to provide your new password.

Un utente deve immettere le proprie credenziali aziendali una seconda volta per l'autenticazione in Azure AD, indipendentemente dal fatto che abbia effettuato l'accesso alla rete aziendale.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. Gli effetti di questo criterio possono essere ridotti al minimo se al momento dell'accesso l'utente seleziona la casella di controllo Mantieni l'accesso.This pattern can be minimized, however, if the user selects the Keep me signed in (KMSI) check box at sign-in. La selezione di questa opzione imposta un cookie di sessione che permette di ignorare l'autenticazione per 180 giorni.This selection sets a session cookie that bypasses authentication for 180 days. Il comportamento dell'opzione Mantieni l'accesso può essere abilitato o disabilitato dall'amministratore di Azure AD.KMSI behavior can be enabled or disabled by the Azure AD administrator. È anche possibile ridurre le richieste di password attivando l'accesso Seamless SSO che consente agli utenti di accedere automaticamente dai dispositivi di proprietà dell'azienda connessi alla rete aziendale.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

La sincronizzazione delle password è supportata solo per l'utente del tipo di oggetto in Active Directory.Password sync is only supported for the object type user in Active Directory. Non è supportata per il tipo di oggetto iNetOrgPerson.It is not supported for the iNetOrgPerson object type.

Descrizione dettagliata del funzionamento della sincronizzazione dell'hash delle passwordDetailed description of how password hash synchronization works

La sezione seguente illustra in dettaglio il funzionamento della sincronizzazione hash delle password tra Active Directory e Azure AD.The following section describes, in-depth, how password hash synchronization works between Active Directory and Azure AD.

Flusso dettagliato della sincronizzazione password

  1. Ogni due minuti, l'agente di sincronizzazione hash delle password nel server AD Connect richiede gli hash delle password archiviate (attributo unicodePwd) da un controller di dominio.Every two minutes, the password hash synchronization agent on the AD Connect server requests stored password hashes (the unicodePwd attribute) from a DC. La richiesta si avvale del protocollo di replica standard MS-DRSR usato per sincronizzare i dati tra i controller di dominio.This request is via the standard MS-DRSR replication protocol used to synchronize data between DCs. L'account di servizio deve disporre delle autorizzazioni di Azure AD Replica modifiche directory e Replica modifiche directory - Tutto (concesse per impostazione predefinita in fase di installazione) per ottenere gli hash delle password.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. Prima dell'invio, il controller di dominio crittografa l'hash della password MD4 tramite una chiave corrispondente a un hash MD5 della chiave di sessione RPC e a un valore salt.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. Invia quindi il risultato dell'agente di sincronizzazione dell'hash delle password tramite RPC.It then sends the result to the password hash synchronization agent over RPC. Il controller di dominio passa inoltre il valore salt all'agente di sincronizzazione usando il protocollo di replica del controller di dominio, in modo che l'agente sia in grado di decrittografare la busta.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. Dopo aver ottenuto la busta crittografata, l'agente di sincronizzazione dell'hash delle password usa MD5CryptoServiceProvider e il valore salt per generare una chiave per decrittografare i dati ricevuti riportandoli nel formato MD4 originale.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. L'agente di sincronizzazione hash delle password non ha mai accesso alla password non crittografata.The password hash synchronization agent never has access to the clear text password. L'uso di MD5 da parte dell'agente di sincronizzazione dell'hash delle password è esclusivamente per la compatibilità del protocollo di replica con il controller di dominio e viene usato solo in locale tra il controller di dominio e l'agente di sincronizzazione dell'hash delle password.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. L'agente di sincronizzazione dell'hash delle password espande l'hash della password binario a 16 byte in 64 byte convertendo per prima cosa l'hash in una stringa esadecimale a 32 byte e quindi riconvertendo questa stessa stringa in formato binario con la codifica 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. L'agente di sincronizzazione dell'hash delle password aggiunge un valore salt per utente lungo 10 byte al file binario a 64 byte per proteggere ulteriormente l'hash originale.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. L'agente di sincronizzazione dell'hash delle password combina quindi l'hash MD4 con il valore salt per utente e li inserisce nella funzione PBKDF2.The password hash synchronization agent then combines the MD4 hash plus the per user salt, and inputs it into the PBKDF2 function. Vengono usate 1000 iterazioni dell'algoritmo di hash con chiave HMAC-SHA256.1000 iterations of the HMAC-SHA256 keyed hashing algorithm are used.
  7. L'agente di sincronizzazione dell'hash delle password concatena all'hash a 32 byte risultante sia il valore salt per utente sia il numero di iterazioni SHA256 (per l'uso con Azure AD) e quindi trasmette la stringa da Azure AD Connect ad Azure AD tramite 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 un utente prova ad accedere ad Azure AD e immette la password, la password viene eseguita tramite lo stesso processo MD4 + valore salt + 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 l'hash risultante corrisponde all'hash archiviato in Azure AD, l'utente ha immesso la password corretta e viene autenticato.If the resulting hash matches the hash stored in Azure AD, the user has entered the correct password and is authenticated.

Nota

L'hash MD4 originale non viene trasmesso ad Azure AD.The original MD4 hash is not transmitted to Azure AD. Viene invece trasmesso l'hash SHA256 dell'hash MD4 originale.Instead, the SHA256 hash of the original MD4 hash is transmitted. Di conseguenza, se si riesce a ottenere l'hash archiviato in Azure AD, questo non può essere usato in un attacco di tipo Pass-the-Hash locale.As a result, if the hash stored in Azure AD is obtained, it cannot be used in an on-premises pass-the-hash attack.

Considerazioni sulla sicurezzaSecurity considerations

Quando si sincronizzano le password, la versione in testo normale della password non viene esposta alla funzionalità di sincronizzazione dell'hash delle password, né ad Azure AD o a qualsiasi servizio associato.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.

L'autenticazione utente viene eseguita in Azure AD e non nell'istanza di Active Directory dell'organizzazione.User authentication takes place against Azure AD rather than against the organization's own Active Directory instance. I dati delle password SHA256 archiviati in Azure AD (un hash dell'hash MD4 originale) sono più sicuri di quelli archiviati in 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. Inoltre, dal momento che questo hash SHA256 non può essere decrittografato, non potrà essere ripresentato nell'ambiente Active Directory dell'organizzazione come una password utente valida in un attacco di tipo 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.

Considerazioni relative ai criteri passwordPassword policy considerations

L'abilitazione della sincronizzazione dell'hash delle password influisce su due tipi di criteri password:There are two types of password policies that are affected by enabling password hash synchronization:

  • Criteri di complessità delle passwordPassword complexity policy
  • Criteri di scadenza delle passwordPassword expiration policy

Criteri di complessità delle passwordPassword complexity policy

Quando la sincronizzazione dell'hash delle password è abilitata, i criteri di complessità delle password presenti nell'istanza di Active Directory locale sostituiscono i criteri di complessità definiti nel cloud per gli utenti sincronizzati.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. È possibile usare tutte le password valide dell'istanza di Active Directory locale per accedere ai servizi Azure AD.You can use all of the valid passwords from your on-premises Active Directory instance to access Azure AD services.

Nota

Le password degli utenti create direttamente nel cloud restano soggette ai criteri password definiti nel cloud.Passwords for users that are created directly in the cloud are still subject to password policies as defined in the cloud.

Criteri di scadenza delle passwordPassword expiration policy

Se un utente rientra nell'ambito della sincronizzazione dell'hash delle password, per impostazione predefinita la password dell'account cloud viene impostata in modo da non scadere mai.If a user is in the scope of password hash synchronization, by default the cloud account password is set to Never Expire.

È possibile continuare ad accedere ai servizi cloud usando una password sincronizzata che è in realtà scaduta nell'ambiente locale.You can continue to sign in to your cloud services by using a synchronized password that is expired in your on-premises environment. La password cloud viene aggiornata alla modifica successiva della password nell'ambiente locale.Your cloud password is updated the next time you change the password in the on-premises environment.

Anteprima pubblica della funzionalità EnforceCloudPasswordPolicyForPasswordSyncedUsersPublic preview of the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature

Se sono presenti utenti sincronizzati che interagiscono solo con Azure AD servizi integrati e devono essere conformi ai criteri di scadenza delle password, è possibile forzarli a conformarsi ai criteri di scadenza della password Azure AD abilitando il Funzionalità 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 è disabilitato (impostazione predefinita), Azure ad Connect imposta l'attributo PasswordPolicies degli utenti sincronizzati su "DisablePasswordExpiration".When EnforceCloudPasswordPolicyForPasswordSyncedUsers is disabled (which is the default setting), Azure AD Connect sets the PasswordPolicies attribute of synchronized users to "DisablePasswordExpiration". Questa operazione viene eseguita ogni volta che la password di un utente viene sincronizzata e indica Azure AD di ignorare i criteri di scadenza della password cloud per tale utente.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. È possibile controllare il valore dell'attributo usando il modulo Azure AD PowerShell con il comando seguente: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

Per abilitare la funzionalità EnforceCloudPasswordPolicyForPasswordSyncedUsers, eseguire il comando seguente usando il modulo MSOnline di PowerShell:To enable the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature, run the following command using the MSOnline PowerShell module:

Set-MsolDirSyncFeature -Feature EnforceCloudPasswordPolicyForPasswordSyncedUsers  $true

Una volta abilitata, Azure AD non passa a ogni utente sincronizzato per rimuovere il valore DisablePasswordExpiration dall'attributo PasswordPolicies.Once enabled, Azure AD does not go to each synchronized user to remove the DisablePasswordExpiration value from the PasswordPolicies attribute. Al contrario, il valore viene impostato su None durante la sincronizzazione della password successiva per ogni utente alla successiva modifica della password in AD locale.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.

È consigliabile abilitare EnforceCloudPasswordPolicyForPasswordSyncedUsers, prima di abilitare la sincronizzazione dell'hash delle password, in modo che la sincronizzazione iniziale degli hash delle password non aggiunga il valore DisablePasswordExpiration all'attributo PasswordPolicies per gli utenti.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.

I criteri predefiniti per le password Azure AD richiedono agli utenti di modificare le password ogni 90 giorni.The default Azure AD password policy requires users to change their passwords every 90 days. Se il criterio in Active Directory è anche di 90 giorni, i due criteri devono corrispondere.If your policy in AD is also 90 days, the two policies should match. Tuttavia, se i criteri di Active Directory non sono 90 giorni, è possibile aggiornare i criteri di Azure AD password in modo che corrispondano usando il comando di 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 supporta un criterio di scadenza della password separato per ogni dominio registrato.Azure AD supports a separate password expiration policy per registered domain.

Avvertenza: se sono presenti account sincronizzati che devono avere password non in scadenza in Azure AD, è necessario aggiungere in modo esplicito il valore DisablePasswordExpiration all'attributo PasswordPolicies dell'oggetto utente in 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. È possibile eseguire questa operazione eseguendo il comando seguente.You can do this by running the following command.

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

Nota

Questa funzionalità è disponibile in anteprima pubblica in questo momento.This feature is in Public Preview right now.

Anteprima pubblica della sincronizzazione delle password temporanee e "forza la password all'accesso successivo"Public Preview of synchronizing temporary passwords and "Force Password on Next Logon"

È tipico forzare un utente a modificare la password durante il primo accesso, soprattutto dopo la reimpostazione della password amministratore.It is typical to force a user to change their password during their first logon, especially after an admin password reset occurs. È comunemente nota come impostazione di una password "temporanea" e viene completata selezionando il flag "utente necessario modificare la password al successivo accesso" per un oggetto utente in 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 funzionalità relativa alle password temporanee consente di garantire che il trasferimento della proprietà delle credenziali venga completato al primo utilizzo, per ridurre al minimo la durata del tempo in cui più persone hanno la conoscenza di tale credenziale.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.

Per supportare password temporanee in Azure AD per gli utenti sincronizzati, è possibile abilitare la funzionalità ForcePasswordResetOnLogonFeature eseguendo il comando seguente nel server Azure ad Connect, sostituendo con il nome del connettore specifico di 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

Per determinare il nome del connettore, è possibile usare il comando seguente:You can use the following command to determine the connector name:

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

Avvertenza: se si impone a un utente di modificare la password all'accesso successivo, è necessario modificare la password nello stesso momento.Caveat: Forcing a user to change their password on next logon requires a password change at the same time. AD Connect non preleverà il flag di modifica Force password da solo, ma è supplementare per la modifica della password rilevata che si verifica durante la sincronizzazione degli hash delle password.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.

Attenzione

Se non si Abilita la reimpostazione della password self-service (SSPR) in Azure AD gli utenti avranno un'esperienza confusa quando reimpostano la password in Azure AD e quindi tenteranno di accedere Active Directory con la nuova password, perché la nuova password non è valida in 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. È consigliabile usare questa funzionalità solo quando SSPR e il writeback delle password sono abilitati nel tenant.You should only use this feature when SSPR and Password Writeback is enabled on the tenant.

Nota

Questa funzionalità è disponibile in anteprima pubblica in questo momento.This feature is in Public Preview right now.

Scadenza dell'accountAccount expiration

Se l'organizzazione usa l'attributo accountExpires nella gestione degli account utente, tenere presente che questo attributo non viene sincronizzato con Azure AD.If your organization uses the accountExpires attribute as part of user account management, this attribute is not synchronized to Azure AD. Di conseguenza, un account Active Directory scaduto in un ambiente configurato per la sincronizzazione dell'hash delle password continuerà a essere attivo in 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 l'account è scaduto, è consigliabile fare in modo che un'azione del flusso di lavoro attivi uno script di PowerShell per disabilitare l'account Azure AD dell'utente (usare il 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). Al contrario, quando l'account è attivato, è necessario attivare anche l'istanza di Azure AD.Conversely, when the account is turned on, the Azure AD instance should be turned on.

Sovrascrivere password sincronizzateOverwrite synchronized passwords

Un amministratore può reimpostare manualmente la password usando Windows PowerShell.An administrator can manually reset your password by using Windows PowerShell.

In questo caso, la password sincronizzata viene sostituita dalla nuova password, a cui si applicano tutti i criteri password definiti nel cloud.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 si modifica di nuovo la password locale, la nuova password viene sincronizzata nel cloud e sostituisce la password aggiornata 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 sincronizzazione di una password non ha alcun impatto sull'utente di Azure connesso.The synchronization of a password has no impact on the Azure user who is signed in. Se si modifica una password sincronizzata dopo aver eseguito l'accesso a un servizio cloud, questa operazione non ha un impatto immediato sulla sessione corrente del servizio cloud.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. L'opzione Mantieni l'accesso estende la durata in base a questa differenza.KMSI extends the duration of this difference. Quando il servizio cloud richiede di nuovo l'autenticazione, è necessario specificare la nuova password.When the cloud service requires you to authenticate again, you need to provide your new password.

Vantaggi aggiuntiviAdditional advantages

  • In genere, la sincronizzazione dell'hash delle password è più semplice da implementare rispetto a un servizio federativo.Generally, password hash synchronization is simpler to implement than a federation service. Non richiede altri server e permette di eliminare la dipendenza da un servizio federativo a disponibilità elevata per l'autenticazione degli utenti.It doesn't require any additional servers, and eliminates dependence on a highly available federation service to authenticate users.
  • La sincronizzazione dell'hash delle password può anche essere abilitata in aggiunta alla federazione.Password hash synchronization can also be enabled in addition to federation. Può inoltre essere usata come fallback in caso di interruzione del servizio federativo.It may be used as a fallback if your federation service experiences an outage.

Processo di sincronizzazione dell'hash delle password per Azure AD Domain ServicesPassword hash sync process for Azure AD Domain Services

Se si usa Azure AD Domain Services per fornire l'autenticazione legacy per le applicazioni e i servizi che devono usare Keberos, LDAP o NTLM, alcuni processi aggiuntivi fanno parte del flusso di sincronizzazione dell'hash delle password.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 il processo aggiuntivo seguente per sincronizzare gli hash delle password con Azure AD da usare nei 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 sincronizza solo gli hash delle password legacy quando si Abilita Azure AD DS per il tenant di Azure AD.Azure AD Connect only synchronizes legacy password hashes when you enable Azure AD DS for your Azure AD tenant. La procedura seguente non viene usata se si usa solo Azure AD Connect per sincronizzare un ambiente Active Directory Domain Services locale 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.

Se le applicazioni legacy non usano l'autenticazione NTLM o binding semplici LDAP, è consigliabile disabilitare la sincronizzazione dell'hash delle password NTLM per 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. Per altre informazioni, vedere disabilitare i pacchetti di crittografia vulnerabili e la sincronizzazione degli hash delle credenziali NTLM.For more information, see Disable weak cipher suites and NTLM credential hash synchronization.

  1. Azure AD Connect recupera la chiave pubblica per l'istanza del tenant di Azure AD Domain Services.Azure AD Connect retrieves the public key for the tenant's instance of Azure AD Domain Services.
  2. Quando un utente modifica la password, il controller di dominio locale archivia il risultato della modifica della password (hash) in due attributi:When a user changes their password, the on-premises domain controller stores the result of the password change (hashes) in two attributes:
    • unicodePwd per l'hash della password NTLM.unicodePwd for the NTLM password hash.
    • supplementalCredentials per l'hash della password Kerberos.supplementalCredentials for the Kerberos password hash.
  3. Azure AD Connect rileva le modifiche della password tramite il canale di replica della directory (le modifiche dell'attributo che devono essere replicate in altri controller di dominio).Azure AD Connect detects password changes through the directory replication channel (attribute changes needing to replicate to other domain controllers).
  4. Per ogni utente la cui password è stata modificata, Azure AD Connect esegue i passaggi seguenti:For each user whose password has changed, Azure AD Connect performs the following steps:
    • Genera una chiave simmetrica casuale AES a 256 bit.Generates a random AES 256-bit symmetric key.
    • Genera un vettore di inizializzazione casuale necessario per il primo ciclo di crittografia.Generates a random initialization vector needed for the first round of encryption.
    • Estrae gli hash delle password Kerberos dagli attributi supplementalCredentials .Extracts Kerberos password hashes from the supplementalCredentials attributes.
    • Verifica l'impostazione di SyncNtlmPasswords di configurazione della sicurezza del Azure ad Domain Services.Checks the Azure AD Domain Services security configuration SyncNtlmPasswords setting.
      • Se questa impostazione è disabilitata, genera un hash NTLM casuale ad alta entropia (diverso dalla password dell'utente).If this setting is disabled, generates a random, high-entropy NTLM hash (different from the user's password). Questo hash viene quindi combinato con gli hash della password Kerberos esatti dall'attributo supplementalCrendetials in una struttura di dati.This hash is then combined with the exacted Kerberos password hashes from the supplementalCrendetials attribute into one data structure.
      • Se abilitata, combina il valore dell'attributo unicodePwd con gli hash della password Kerberos estratti dall'attributo supplementalCredentials in una struttura di dati.If enabled, combines the value of the unicodePwd attribute with the extracted Kerberos password hashes from the supplementalCredentials attribute into one data structure.
    • Crittografa la singola struttura di dati utilizzando la chiave simmetrica AES.Encrypts the single data structure using the AES symmetric key.
    • Crittografa la chiave simmetrica AES usando la chiave pubblica Azure AD Domain Services del tenant.Encrypts the AES symmetric key using the tenant's Azure AD Domain Services public key.
  5. Azure AD Connect trasmette la chiave simmetrica AES crittografata, la struttura dei dati crittografati contenente gli hash delle password e il vettore di inizializzazione per 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 archivia la chiave simmetrica AES crittografata, la struttura dei dati crittografati e il vettore di inizializzazione per l'utente.Azure AD stores the encrypted AES symmetric key, the encrypted data structure, and the initialization vector for the user.
  7. Azure AD inserisce la chiave simmetrica AES crittografata, la struttura dei dati crittografati e il vettore di inizializzazione usando un meccanismo di sincronizzazione interno su una sessione HTTP crittografata per 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 chiave privata per l'istanza del tenant da Azure Key Vault.Azure AD Domain Services retrieves the private key for the tenant's instance from Azure Key vault.
  9. Per ogni set di dati crittografato (che rappresenta la modifica della password di un singolo utente), Azure AD Domain Services esegue quindi i passaggi seguenti:For each encrypted set of data (representing a single user's password change), Azure AD Domain Services then performs the following steps:
    • Usa la chiave privata per decrittografare la chiave simmetrica AES.Uses its private key to decrypt the AES symmetric key.
    • Usa la chiave simmetrica AES con il vettore di inizializzazione per decrittografare la struttura dei dati crittografati che contiene gli hash delle password.Uses the AES symmetric key with the initialization vector to decrypt the encrypted data structure that contains the password hashes.
    • Scrive gli hash della password Kerberos ricevuti dal controller di dominio Azure AD Domain Services.Writes the Kerberos password hashes it receives to the Azure AD Domain Services domain controller. Gli hash vengono salvati nell'attributo supplementalCredentials dell'oggetto utente crittografato con la chiave pubblica del controller di dominio 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 scrive l'hash della password NTLM ricevuto per il controller di dominio Azure AD Domain Services.Azure AD Domain Services writes the NTLM password hash it received to the Azure AD Domain Services domain controller. L'hash viene salvato nell'attributo unicodePwd dell'oggetto utente crittografato con la chiave pubblica del controller di dominio 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.

Abilitare la sincronizzazione dell'hash delle passwordEnable password hash synchronization

Importante

Se si esegue la migrazione da AD FS (o da altre tecnologia federative) per la sincronizzazione dell'hash delle password, si consiglia vivamente di seguire la guida per la distribuzione dettagliata pubblicata qui.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 si installa Azure AD Connect usando l'opzione Impostazioni rapide, la sincronizzazione dell'hash delle password viene abilitata automaticamente.When you install Azure AD Connect by using the Express Settings option, password hash synchronization is automatically enabled. Per altre informazioni, vedere Introduzione alle impostazioni rapide per Azure AD Connect.For more information, see Getting started with Azure AD Connect using express settings.

Se si usano impostazioni personalizzate quando si installa Azure AD Connect, la sincronizzazione dell'hash delle password è disponibile nella pagina di accesso dell'utente.If you use custom settings when you install Azure AD Connect, password hash synchronization is available on the user sign-in page. Per altre informazioni, vedere Installazione personalizzata di Azure AD Connect.For more information, see Custom installation of Azure AD Connect.

Abilitazione della sincronizzazione dell'hash delle password

Sincronizzazione dell'hash delle password e FIPSPassword hash synchronization and FIPS

Se il server è stato bloccato in conformità allo standard FIPS (Federal Information Processing Standard), MD5 è disabilitato.If your server has been locked down according to Federal Information Processing Standard (FIPS), then MD5 is disabled.

Per abilitare MD5 per la sincronizzazione dell'hash delle password, seguire questa procedura:To enable MD5 for password hash synchronization, perform the following steps:

  1. Passare a %programmi%\Azure AD Sync\Bin.Go to %programfiles%\Azure AD Sync\Bin.
  2. Aprire miiserver.exe.config.Open miiserver.exe.config.
  3. Passare al nodo configuration/runtime alla fine del file.Go to the configuration/runtime node at the end of the file.
  4. Aggiungere il nodo seguente: <enforceFIPSPolicy enabled="false"/>Add the following node: <enforceFIPSPolicy enabled="false"/>
  5. Salvare le modifiche.Save your changes.

Come riferimento, il frammento di codice dovrà essere simile al seguente:For reference, this snippet is what it should look like:

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

Per informazioni sulla sicurezza e su FIPS, vedere Azure AD password hash sync, encryption, and FIPS compliance (Sincronizzazione password, crittografia e conformità FIPS di Azure AD).For information about security and FIPS, see Azure AD password hash sync, encryption, and FIPS compliance.

Risolvere i problemi di sincronizzazione dell'hash delle passwordTroubleshoot password hash synchronization

In caso di problemi di sincronizzazione dell'hash delle password, vedere Risolvere i problemi di sincronizzazione dell'hash delle password.If you have problems with password hash synchronization, see Troubleshoot password hash synchronization.

Passaggi successiviNext steps