Implementare la sincronizzazione dell'hash delle password con Microsoft Entra Connect Sync

Questo articolo fornisce informazioni necessarie per sincronizzare le password utente da un'istanza di Active Directory locale a un'istanza di Microsoft Entra basata sul cloud.

Funzionamento della sincronizzazione dell'hash delle password

Il servizio di dominio Active Directory archivia le password come rappresentazioni con valore hash delle password utente reali. Un valore hash è il risultato di una funzione matematica unidirezionale (algoritmo hash). Non esiste un metodo per ripristinare la versione in testo normale di una password dal risultato di una funzione unidirezionale.

Per sincronizzare la password, Microsoft Entra Connect Sync estrae l'hash della password dall'istanza di Active Directory locale. L'elaborazione della sicurezza aggiuntiva viene applicata all'hash delle password prima di essere sincronizzata con il servizio di autenticazione Microsoft Entra. Le password vengono sincronizzate per ogni singolo utente e in ordine cronologico.

Il flusso di dati del processo di sincronizzazione hash delle password è simile alla sincronizzazione dei dati utente. Le password vengono tuttavia sincronizzate con una frequenza maggiore rispetto alla finestra di sincronizzazione standard della directory per altri attributi. Il processo di sincronizzazione dell'hash delle password viene eseguito ogni 2 minuti. Non è possibile modificare la frequenza del processo. Se si sincronizza una password, la password sincronizzata sovrascrive quella esistente nel cloud.

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. L'implementazione a fasi consente di testare in modo selettivo gruppi di utenti con funzionalità di autenticazione cloud come Microsoft Entra l'autenticazione a più fattori, l'accesso condizionale, Identity Protection per le credenziali perse, la governance delle identità e altri, prima di tagliare i domini. Non è possibile definire in modo esplicito un subset di password utente da sincronizzare. Tuttavia, se sono presenti più connettori, è possibile disabilitare la sincronizzazione dell'hash delle password per alcuni connettori, ma non altri usando il cmdlet Set-ADSyncAADPasswordSyncConfiguration .

Quando si modifica una password locale, la password aggiornata viene sincronizzata, spesso in pochi minuti. In caso di sincronizzazioni non riuscite, la funzionalità di sincronizzazione dell'hash delle password esegue automaticamente nuovi tentativi di sincronizzazione. Se si verifica un errore durante un tentativo di sincronizzazione di una password, viene registrato un errore nel visualizzatore eventi.

La sincronizzazione di una password non ha alcun impatto sull'utente che ha eseguito l'accesso. 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. Tuttavia, quando il servizio cloud richiede di nuovo l'autenticazione, è necessario specificare la nuova password.

Un utente deve immettere le credenziali aziendali una seconda volta per eseguire l'autenticazione a Microsoft Entra ID, indipendentemente dal fatto che abbia eseguito l'accesso alla rete aziendale. 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. La selezione di questa opzione imposta un cookie di sessione che permette di ignorare l'autenticazione per 180 giorni. Il comportamento kmSI può essere abilitato o disabilitato dall'amministratore Microsoft Entra. È anche possibile ridurre le richieste di password configurando Microsoft Entra join o Microsoft Entra join ibrido, che consente automaticamente agli utenti di accedere quando si trovano nei dispositivi aziendali connessi alla rete aziendale.

Vantaggi aggiuntivi

  • In genere, la sincronizzazione dell'hash delle password è più semplice da implementare rispetto a un servizio federativo. Non richiede altri server e permette di eliminare la dipendenza da un servizio federativo a disponibilità elevata per l'autenticazione degli utenti.
  • La sincronizzazione dell'hash delle password può anche essere abilitata in aggiunta alla federazione. Può inoltre essere usata come fallback in caso di interruzione del servizio federativo.

Nota

La sincronizzazione delle password è supportata solo per l'utente del tipo di oggetto in Active Directory. Non è supportata per il tipo di oggetto iNetOrgPerson.

Descrizione dettagliata del funzionamento della sincronizzazione dell'hash delle password

La sezione seguente descrive in dettaglio il funzionamento della sincronizzazione dell'hash delle password tra Active Directory e Microsoft Entra ID.

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. La richiesta si avvale del protocollo di replica standard MS-DRSR usato per sincronizzare i dati tra i controller di dominio. 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.
  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. Invia quindi il risultato dell'agente di sincronizzazione dell'hash delle password tramite 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.
  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. L'agente di sincronizzazione hash delle password non ha mai accesso alla password non crittografata. L'uso dell'agente di sincronizzazione dell'hash delle password di MD5 è strettamente destinato alla 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.
  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.
  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.
  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. Vengono usate 1000 iterazioni dell'algoritmo di hash con chiave HMAC-SHA256. Per altri dettagli, vedere il white paper Microsoft Entra.
  7. L'agente di sincronizzazione dell'hash delle password accetta l'hash a 32 byte risultante, concatena sia il salt per utente che il numero di iterazioni SHA256 (da usare per ID Microsoft Entra), quindi trasmette la stringa da Microsoft Entra Connect a Microsoft Entra ID tramite TLS.
  8. Quando un utente tenta di accedere a Microsoft Entra ID e immette la password, la password viene eseguita tramite lo stesso processo MD4+salt+PBKDF2+HMAC-SHA256. Se l'hash risultante corrisponde all'hash archiviato in Microsoft Entra ID, l'utente ha immesso la password corretta ed è autenticato.

Nota

L'hash MD4 originale non viene trasmesso a Microsoft Entra ID. Viene invece trasmesso l'hash SHA256 dell'hash MD4 originale. Di conseguenza, se l'hash archiviato in Microsoft Entra ID viene ottenuto, non può essere usato in un attacco pass-the-hash locale.

Nota

Il valore hash della password non viene mai archiviato in SQL. Questi valori vengono elaborati solo in memoria prima di essere inviati a Microsoft Entra ID.

Considerazioni sulla sicurezza

Quando si sincronizzano le password, la versione in testo normale della password non viene esposta alla funzionalità di sincronizzazione dell'hash delle password, a Microsoft Entra ID o a uno dei servizi associati.

L'autenticazione utente viene eseguita su Microsoft Entra anziché sull'istanza di Active Directory dell'organizzazione. I dati delle password SHA256 archiviati in Microsoft Entra ID, ovvero un hash dell'hash MD4 originale, sono più sicuri di quelli archiviati 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.

Considerazioni relative ai criteri password

L'abilitazione della sincronizzazione dell'hash delle password influisce su due tipi di criteri password:

  • Criteri di complessità delle password
  • Criteri di scadenza delle password

Criteri di complessità delle password

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. È possibile usare tutte le password valide dell'istanza di Active Directory locale per accedere ai servizi di Microsoft Entra.

Nota

Le password degli utenti create direttamente nel cloud restano soggette ai criteri password definiti nel cloud.

Criteri di scadenza delle password

Se un utente rientra nell'ambito della sincronizzazione dell'hash delle password, per impostazione predefinita la password dell'account cloud è impostata su Non scadere mai.

È possibile continuare ad accedere ai servizi cloud usando una password sincronizzata che è in realtà scaduta nell'ambiente locale. La password cloud viene aggiornata alla modifica successiva della password nell'ambiente locale.

CloudPasswordPolicyForPasswordSyncedUsersEnabled

Se sono presenti utenti sincronizzati che interagiscono solo con Microsoft Entra servizi integrati e devono essere conformi a un criterio di scadenza delle password, è possibile forzarli a rispettare i criteri di scadenza delle password Microsoft Entra abilitando la funzionalità CloudPasswordPolicyForPasswordSyncedUsersEnabled (nel modulo MSOnline PowerShell deprecato è stato chiamato EnforceCloudPasswordPolicyForPasswordSyncedUsers).

Quando CloudPasswordPolicyForPasswordSyncedUsersEnabled è disabilitato (ovvero l'impostazione predefinita), Microsoft Entra Connect imposta l'attributo PasswordPolicies degli utenti sincronizzati su "DisablePasswordExpiration". Questa operazione viene eseguita ogni volta che la password di un utente viene sincronizzata e indica Microsoft Entra ID per ignorare i criteri di scadenza della password cloud per tale utente. È possibile controllare il valore dell'attributo usando il modulo Azure AD PowerShell con il comando seguente:

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

Per abilitare la funzionalità CloudPasswordPolicyForPasswordSyncedUsersEnabled, eseguire i comandi seguenti usando il modulo Graph PowerShell, come illustrato di seguito:

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

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

Dopo l'abilitazione, Microsoft Entra ID non passa a ogni utente sincronizzato per rimuovere il DisablePasswordExpiration valore dall'attributo PasswordPolicies. Il valore viene invece DisablePasswordExpiration rimosso da PasswordPolicies durante la successiva sincronizzazione dell'hash delle password per ogni utente, dopo la successiva modifica della password in AD locale.

Dopo aver abilitato la funzionalità CloudPasswordPolicyForPasswordSyncedUsersEnabled , viene effettuato il provisioning di nuovi utenti senza un valore PasswordPolicies.

Suggerimento

È consigliabile abilitare CloudPasswordPolicyForPasswordSyncedUsersEnabled prima di abilitare la sincronizzazione dell'hash delle password, in modo che la sincronizzazione iniziale degli hash delle password non aggiunga il DisablePasswordExpiration valore all'attributo PasswordPolicies per gli utenti.

Il criterio predefinito Microsoft Entra password richiede agli utenti di modificare le password ogni 90 giorni. Se i criteri in ACTIVE Directory sono anche 90 giorni, i due criteri devono corrispondere. Tuttavia, se il criterio di Active Directory non è di 90 giorni, è possibile aggiornare i criteri password Microsoft Entra in modo che corrispondano usando il comando di PowerShell Update-MgDomain (in precedenza: Set-MsolPasswordPolicy).

Microsoft Entra ID supporta un criterio di scadenza della password separato per ogni dominio registrato.

Avvertenza: se sono presenti account sincronizzati che devono avere password non scadute in Microsoft Entra ID, è necessario aggiungere in modo esplicito il DisablePasswordExpiration valore all'attributo PasswordPolicies dell'oggetto utente in Microsoft Entra ID. A tale scopo, eseguire il comando seguente.

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

Nota

Per gli utenti ibridi con un valore PasswordPolicies impostato su DisablePasswordExpiration, questo valore passa a None dopo l'esecuzione di una modifica della password in locale.

Nota

Né Update-MgDomain né i comandi deprecati Set-MsolPasswordPolicy di PowerShell funzioneranno sui domini federati.

Nota

Né Set-MgUser né i comandi Set-AzureADUser di PowerShell deprecati funzioneranno sui domini federati.

Sincronizzazione delle password temporanee e "Forza modifica della password nell'accesso successivo"

È in genere necessario forzare un utente a modificare la password durante il primo accesso, soprattutto dopo che si verifica una reimpostazione della password amministratore. È comunemente noto come impostazione di una password "temporanea" e viene completata controllando il flag "L'utente deve modificare la password all'accesso successivo" in un oggetto utente in Active Directory (AD).

La funzionalità della password temporanea consente di garantire che il trasferimento della proprietà della credenziale venga completato al primo utilizzo, per ridurre al minimo la durata di tempo in cui più utenti hanno una conoscenza di tale credenziale.

Per supportare le password temporanee nell'ID di Microsoft Entra per gli utenti sincronizzati, è possibile abilitare la funzionalità ForcePasswordChangeOnLogOn eseguendo il comando seguente nel server Microsoft Entra Connect:

Set-ADSyncAADCompanyFeature -ForcePasswordChangeOnLogOn $true

Nota

L'uso forzato di un utente per modificare la password all'accesso successivo richiede una modifica della password contemporaneamente. Microsoft Entra Connect non rileverà il flag di modifica della password forzata da solo. È supplementare alla modifica della password rilevata che si verifica durante la sincronizzazione dell'hash delle password.

Se l'utente ha l'opzione "Password never expires" impostata in Active Directory (AD), il flag di modifica della password forzata non verrà impostato in Active Directory (AD), quindi all'utente non verrà richiesto di modificare la password durante l'accesso successivo.

Verrà sempre effettuato il provisioning di un nuovo utente creato in Active Directory con il flag "L'utente deve modificare la password all'accesso successivo" in Microsoft Entra ID con un criterio di password per "Forzare la modifica della password all'accesso successivo", indipendentemente dalla funzionalità ForcePasswordChangeOnLogOn sia true o false. Si tratta di una logica Microsoft Entra interna perché viene effettuato il provisioning del nuovo utente senza password, mentre la funzionalità ForcePasswordChangeOnLogOn influisce solo sugli scenari di reimpostazione della password amministratore.

Se un utente è stato creato in Active Directory con "L'utente deve modificare la password all'accesso successivo" prima che la funzionalità sia stata abilitata, l'utente riceverà un errore durante l'accesso. Per risolvere questo problema, deselezionare e ricontroltare il campo "L'utente deve modificare la password all'accesso successivo" in Utenti e computer di Active Directory. Dopo la sincronizzazione delle modifiche all'oggetto utente, l'utente riceverà la richiesta prevista in Microsoft Entra ID per aggiornare la password.

Attenzione

È consigliabile usare questa funzionalità solo quando la reimpostazione della password e la reimpostazione della password sono abilitate nel tenant. In questo modo, se un utente modifica la password tramite la reimpostazione della password self-service, verrà sincronizzata con Active Directory.

Scadenza dell'account

Se l'organizzazione usa l'attributo accountExpires come parte della gestione degli account utente, questo attributo non viene sincronizzato con Microsoft Entra ID. Di conseguenza, un account Active Directory scaduto in un ambiente configurato per la sincronizzazione dell'hash delle password sarà ancora attivo in Microsoft Entra ID. È consigliabile usare uno script di PowerShell pianificato che disabilita gli account AD degli utenti, una volta scaduti (usare il cmdlet Set-ADUser ). Al contrario, durante il processo di rimozione della scadenza da un account AD, l'account deve essere riabilitato.

Sovrascrivere password sincronizzate

Un amministratore può reimpostare manualmente la password direttamente in Microsoft Entra ID usando Windows PowerShell (a meno che l'utente non si trova in un dominio federato).

In questo caso, la password sincronizzata viene sostituita dalla nuova password, a cui si applicano tutti i criteri password definiti nel cloud.

Se si modifica di nuovo la password locale, la nuova password viene sincronizzata nel cloud e sostituisce la password aggiornata manualmente.

La sincronizzazione di una password non ha alcun impatto sull'utente di Azure connesso. 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. L'opzione Mantieni l'accesso estende la durata in base a questa differenza. Quando il servizio cloud richiede di nuovo l'autenticazione, è necessario specificare la nuova password.

Processo di sincronizzazione dell'hash delle password per Microsoft Entra Domain Services

Se si usa Microsoft Entra Domain Services per fornire l'autenticazione legacy per applicazioni e servizi che devono usare Kerberos, LDAP o NTLM, alcuni processi aggiuntivi fanno parte del flusso di sincronizzazione dell'hash delle password. Microsoft Entra Connect usa il processo aggiuntivo seguente per sincronizzare gli hash delle password in Microsoft Entra ID da usare in Microsoft Entra Domain Services:

Importante

Microsoft Entra Connect deve essere installato e configurato solo per la sincronizzazione con gli ambienti di Active Directory Domain Services locali. Non è supportato installare Microsoft Entra Connect in un dominio gestito Microsoft Entra Domain Services per sincronizzare gli oggetti con Microsoft Entra ID.

Microsoft Entra Connect sincronizza gli hash delle password legacy solo quando si abilita Microsoft Entra Domain Services per il tenant di Microsoft Entra. La procedura seguente non viene usata se si usa solo Microsoft Entra Connect per sincronizzare un ambiente di Active Directory Domain Services locale con Microsoft Entra ID.

Se le applicazioni legacy non usano l'autenticazione NTLM o le associazioni semplici LDAP, è consigliabile disabilitare la sincronizzazione dell'hash delle password NTLM per Microsoft Entra Domain Services. Per altre informazioni, vedere Disabilitare i pacchetti di crittografia deboli e la sincronizzazione dell'hash delle credenziali NTLM.

  1. Microsoft Entra Connect recupera la chiave pubblica per l'istanza del tenant di Microsoft Entra 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:
    • unicodePwd per l'hash delle password NTLM.
    • supplementalCredentials per l'hash delle password Kerberos.
  3. Microsoft Entra Connect rileva le modifiche delle password tramite il canale di replica della directory (modifiche degli attributi che devono essere replicate in altri controller di dominio).
  4. Per ogni utente la cui password è stata modificata, Microsoft Entra Connect esegue la procedura seguente:
    • Genera una chiave simmetrica AES a 256 bit casuale.
    • Genera un vettore di inizializzazione casuale necessario per il primo round di crittografia.
    • Estrae gli hash delle password Kerberos dagli attributi supplementalCredentials .
    • Controlla l'impostazione syncNtlmPasswords della configurazione di sicurezza di Microsoft Entra Domain Services.
      • Se questa impostazione è disabilitata, genera un hash NTLM ad entropia casuale (diverso dalla password dell'utente). Questo hash viene quindi combinato con gli hash delle password Kerberos esatti dall'attributo supplementalCrendetials in una struttura di dati.
      • Se abilitata, combina il valore dell'attributo unicodePwd con gli hash delle password Kerberos estratti dall'attributo supplementalCredentials in una struttura di dati.
    • Crittografa la singola struttura di dati usando la chiave simmetrica AES.
    • Crittografa la chiave simmetrica AES usando la chiave pubblica Microsoft Entra Domain Services del tenant.
  5. Microsoft Entra Connect trasmette la chiave simmetrica AES crittografata, la struttura di dati crittografata contenente gli hash delle password e il vettore di inizializzazione per Microsoft Entra ID.
  6. Microsoft Entra ID archivia la chiave simmetrica AES crittografata, la struttura di dati crittografati e il vettore di inizializzazione per l'utente.
  7. Microsoft Entra ID esegue il push della chiave simmetrica AES crittografata, della struttura dei dati crittografata e del vettore di inizializzazione usando un meccanismo di sincronizzazione interna su una sessione HTTP crittografata per Microsoft Entra Domain Services.
  8. Microsoft Entra Domain Services recupera la chiave privata per l'istanza del tenant dall'insieme di credenziali delle chiavi di Azure.
  9. Per ogni set di dati crittografato (che rappresenta la modifica della password di un singolo utente), Microsoft Entra Domain Services esegue quindi la procedura seguente:
    • Usa la chiave privata per decrittografare la chiave simmetrica AES.
    • Usa la chiave simmetrica AES con il vettore di inizializzazione per decrittografare la struttura di dati crittografata che contiene gli hash delle password.
    • Scrive gli hash delle password Kerberos ricevuti nel controller di dominio Microsoft Entra Domain Services. Gli hash vengono salvati nell'attributo supplementalCredentials dell'oggetto utente crittografato nella chiave pubblica del controller di dominio Microsoft Entra Domain Services.
    • Microsoft Entra Domain Services scrive l'hash delle password NTLM ricevuto nel controller di dominio Microsoft Entra Domain Services. L'hash viene salvato nell'attributo unicodePwd dell'oggetto utente crittografato nella chiave pubblica del controller di dominio Microsoft Entra Domain Services.

Abilitare la sincronizzazione dell'hash delle password

Importante

Se si esegue la migrazione da AD FS (o altre tecnologie federative) alla sincronizzazione dell'hash delle password, visualizzare Risorse per la migrazione delle applicazioni a Microsoft Entra ID.

Quando si installa Microsoft Entra Connetti usando l'opzione Impostazioni rapide, la sincronizzazione dell'hash delle password viene abilitata automaticamente. Per altre informazioni, vedere Introduzione a Microsoft Entra Connettersi usando le impostazioni rapide.

Se si usano impostazioni personalizzate quando si installa Microsoft Entra Connect, la sincronizzazione dell'hash delle password è disponibile nella pagina di accesso dell'utente. Per altre informazioni, vedere Installazione personalizzata di Microsoft Entra Connect.

Abilitazione della sincronizzazione dell'hash delle password

Sincronizzazione dell'hash delle password e FIPS

Se il server è stato bloccato in conformità allo standard FIPS (Federal Information Processing Standard), MD5 è disabilitato.

Per abilitare MD5 per la sincronizzazione dell'hash delle password, seguire questa procedura:

  1. Passare a %programfiles%\Microsoft Azure AD Sync\Bin.
  2. Aprire miiserver.exe.config.
  3. Passare al nodo configuration/runtime alla fine del file.
  4. Aggiungere il nodo seguente: <enforceFIPSPolicy enabled="false"/>
  5. Salvare le modifiche.
  6. Riavviare per rendere effettive le modifiche.

Come riferimento, il frammento di codice dovrà essere simile al seguente:

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

Per informazioni sulla sicurezza e fips, vedere Microsoft Entra sincronizzazione dell'hash delle password, crittografia e conformità FIPS.

Risolvere i problemi di sincronizzazione dell'hash delle password

In caso di problemi di sincronizzazione dell'hash delle password, vedere Risolvere i problemi di sincronizzazione dell'hash delle password.

Passaggi successivi