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

Questo articolo fornisce informazioni che è necessario 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, chiamata algoritmo di 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 Connessione Sync estrae l'hash della password dall'istanza di Active Directory locale. All'hash della password viene applicata un'elaborazione di sicurezza aggiuntiva prima della sincronizzazione con il servizio di autenticazione di 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 l'autenticazione a più fattori Microsoft Entra, l'accesso condizionale, Identity Protection per le credenziali perse, La governance delle identità e altri utenti, 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 attualmente connesso. 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 all'ID Microsoft Entra, 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. Servizio di gestione delle chiavi I comportamento può essere abilitato o disabilitato dall'amministratore di Microsoft Entra. Inoltre, è possibile ridurre le richieste di password configurando l'aggiunta a Microsoft Entra o l'aggiunta ibrida Microsoft Entra, 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 di Microsoft Entra.
  7. L'agente di sincronizzazione dell'hash delle password accetta l'hash a 32 byte risultante, concatena sia il valore salt per utente che il numero di iterazioni SHA256 (per l'uso da Microsoft Entra ID), quindi trasmette la stringa da Microsoft Entra Connessione a Microsoft Entra ID su 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 all'ID Microsoft Entra. Viene invece trasmesso l'hash SHA256 dell'hash MD4 originale. Di conseguenza, se viene ottenuto l'hash archiviato in Microsoft Entra ID, 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, all'ID Microsoft Entra 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 (un hash dell'hash MD4 originale) sono più sicuri rispetto a 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:

  • Password complexity policy
  • Password expiration policy

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

Nota

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

Password expiration policy

Se un utente si trova nell'ambito della sincronizzazione dell'hash delle password, per impostazione predefinita la password dell'account cloud è impostata su Mai scaduta.

È 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 i servizi integrati di Microsoft Entra e devono inoltre rispettare i criteri di scadenza delle password, è possibile forzarli a rispettare i criteri di scadenza delle password di Microsoft Entra abilitando la funzionalità CloudPasswordPolicyForPasswordSyncedUsersEnabled (nel modulo DEPrecato di MSOnline PowerShell è stato chiamato EnforceCloudPasswordPolicyForPasswordSyncedUsers).

Quando CloudPasswordPolicyForPasswordSyncedUsersEnabled è disabilitato (ovvero l'impostazione predefinita), Microsoft Entra Connessione 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 a Microsoft Entra ID di ignorare i criteri di scadenza della password cloud per tale utente. È possibile controllare il valore dell'attributo usando il modulo Microsoft Graph 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 

Nota

Per il funzionamento dello script precedente, è necessario installare il modulo MSGraph PowerShell. Se si verificano errori relativi a privilegi insufficienti, assicurarsi di aver concesso correttamente l'ambito DELL'API usando il comando seguente durante la connessione Connect-MgGraph -Scopes "OnPremDirectorySynchronization.ReadWrite.All"

Una volta abilitato, Microsoft Entra ID non passa a ogni utente sincronizzato per rimuovere il DisablePasswordExpiration valore dall'attributo PasswordPolicies. Al contrario, il DisablePasswordExpiration valore viene 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 password predefinito di Microsoft Entra richiede agli utenti di modificare le password ogni 90 giorni. Se anche i criteri in Active Directory sono 90 giorni, i due criteri devono corrispondere. Tuttavia, se i criteri di Active Directory non sono 90 giorni, è possibile aggiornare i criteri password di Microsoft Entra in modo che corrispondano usando il comando PowerShell Update-MgDomain.

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

Il comando Di PowerShell Update-MgDomain non funziona nei domini federati.

Nota

Il comando Di PowerShell Update-MgUser non funziona nei domini federati.

Sincronizzazione delle password temporanee e "Forza modifica password all'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à temporanea della password 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 in Microsoft Entra ID per gli utenti sincronizzati, è possibile abilitare la funzionalità ForcePasswordChangeOnLogOn eseguendo il comando seguente nel server Microsoft Entra Connessione:

Set-ADSyncAADCompanyFeature -ForcePasswordChangeOnLogOn $true

Nota

Per forzare un utente a modificare la password all'accesso successivo, è necessario modificare la password contemporaneamente. Microsoft Entra Connessione 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 force non verrà impostato in Active Directory (AD), quindi all'utente non verrà richiesto di modificare la password durante l'accesso successivo.

Viene sempre effettuato il provisioning di un nuovo utente creato in Active Directory con il flag "L'utente deve modificare la password al successivo accesso" in Microsoft Entra ID con un criterio password per "Forzare la modifica della password all'accesso successivo", indipendentemente dalla funzionalità ForcePasswordChangeOnLogOn true o false. Si tratta di una logica interna di Microsoft Entra poiché 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 dell'abilitazione della funzionalità, l'utente riceverà un errore durante l'accesso. Per risolvere il problema, deselezionare e controllare nuovamente il campo "L'utente deve modificare la password all'accesso successivo" in Utenti e computer di Active Directory. Dopo la sincronizzazione delle modifiche dell'oggetto utente, l'utente riceverà il prompt previsto in Microsoft Entra ID per aggiornare la password.

Attenzione

È consigliabile usare questa funzionalità solo quando la reimpostazione della password self-service e il writeback delle password sono abilitati nel tenant. In questo modo, se un utente modifica la password tramite 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 ). Viceversa, 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 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 Connessione usa il processo aggiuntivo seguente per sincronizzare gli hash delle password con Microsoft Entra ID per l'uso in Servizi di dominio Microsoft Entra:

Importante

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

Microsoft Entra Connessione sincronizza gli hash delle password legacy solo quando si abilita Microsoft Entra Domain Services per il tenant di Microsoft Entra. I passaggi seguenti non vengono usati se si usa solo Microsoft Entra Connessione 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 Connessione 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 Connessione rileva le modifiche delle password tramite il canale di replica della directory (le modifiche degli attributi che devono essere replicate in altri controller di dominio).
  4. Per ogni utente la cui password è stata modificata, Microsoft Entra Connessione esegue i passaggi seguenti:
    • Genera una chiave simmetrica AES casuale a 256 bit.
    • 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 e alta (diverso dalla password dell'utente). Questo hash viene quindi combinato con gli hash delle password Kerberos esatti dall'attributo supplementalCrendetials in un'unica 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 di Microsoft Entra Domain Services del tenant.
  5. Microsoft Entra Connessione trasmette la chiave simmetrica AES crittografata, la struttura di dati crittografati contenente gli hash delle password e il vettore di inizializzazione a Microsoft Entra ID.
  6. Microsoft Entra ID archivia la chiave simmetrica AES crittografata, la struttura dei dati crittografata 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 interno su una sessione HTTP crittografata a 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 i passaggi seguenti:
    • Usa la chiave privata per decrittografare la chiave simmetrica AES.
    • Usa la chiave simmetrica AES con il vettore di inizializzazione per decrittografare la struttura dei dati crittografati che contiene gli hash delle password.
    • Scrive gli hash delle password Kerberos ricevuti nel controller di dominio di Microsoft Entra Domain Services. Gli hash vengono salvati nell'attributo supplementalCredentials dell'oggetto utente crittografato nella chiave pubblica del controller di dominio di 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 federativi) alla sincronizzazione dell'hash delle password, visualizzare Risorse per la migrazione delle applicazioni all'ID Microsoft Entra.

Quando si installa Microsoft Entra Connect usando l'opzione Impostazioni Rapide, la sincronizzazione dell'hash della password viene abilitata automaticamente. Per altre informazioni, vedere Introduzione a Microsoft Entra Connessione tramite le impostazioni rapide.

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

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. Salva 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 sulla conformità FIPS, vedere Sincronizzazione, crittografia e conformità dell'hash delle password di Microsoft Entra.

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