Implementace synchronizace hodnot hash hesel se službou Microsoft Entra Připojení Sync

Tento článek obsahuje informace, které potřebujete k synchronizaci uživatelských hesel z instance místní Active Directory do cloudové instance Microsoft Entra.

Jak funguje synchronizace hodnot hash hesel

Doménová služba Active Directory ukládá hesla ve formě reprezentace hodnoty hash skutečného hesla uživatele. Hodnota hash je výsledkem jednosměrné matematické funkce ( algoritmu hash). Neexistuje žádný způsob, jak výsledek jednosměrné funkce převést zpět na heslo v prostém textu.

Pokud chcete synchronizovat heslo, Microsoft Entra Připojení Sync extrahuje hodnotu hash hesla z instance místní Active Directory. Před synchronizací do ověřovací služby Microsoft Entra se na hodnotu hash hesel použije dodatečné zpracování zabezpečení. Hesla se synchronizují na základě jednotlivých uživatelů a v chronologickém pořadí.

Skutečný tok dat procesu synchronizace hodnot hash hesel je podobný synchronizaci uživatelských dat. Hesla se ale synchronizují častěji než standardní okno synchronizace adresářů pro jiné atributy. Proces synchronizace hodnot hash hesel se spouští každých 2 minuty. Četnost tohoto procesu nelze změnit. Při synchronizaci hesla přepíše stávající cloudové heslo.

Při prvním povolení funkce synchronizace hodnot hash hesel provede počáteční synchronizaci hesel všech uživatelů v oboru. Postupné uvedení vám umožňuje selektivně testovat skupiny uživatelů s funkcemi cloudového ověřování, jako je vícefaktorové ověřování Microsoft Entra, podmíněný přístup, ochrana identit za účelem úniku přihlašovacích údajů, zásady správného řízení identit a další, ještě před vyjmutím domén. Nemůžete explicitně definovat podmnožinu uživatelských hesel, která chcete synchronizovat. Pokud ale existuje více konektorů, je možné zakázat synchronizaci hodnot hash hesel pro některé konektory, ale ne jiné pomocí rutiny Set-ADSyncAADPasswordSyncSyncConfiguration .

Když změníte místní heslo, aktualizované heslo se synchronizuje nejčastěji během několika minut. Funkce synchronizace hodnot hash hesel automaticky opakuje neúspěšné pokusy o synchronizaci. Pokud při pokusu o synchronizaci hesla dojde k chybě, zaprotokoluje se v prohlížeči událostí chyba.

Synchronizace hesla nemá žádný vliv na uživatele, který je aktuálně přihlášený. Aktuální relace cloudové služby není okamžitě ovlivněna synchronizovanou změnou hesla, ke které dojde, když jste přihlášení ke cloudové službě. Pokud ale cloudová služba vyžaduje, abyste se znovu ověřili, musíte zadat nové heslo.

Uživatel musí zadat své podnikové přihlašovací údaje podruhé, aby se ověřil v MICROSOFT Entra ID bez ohledu na to, jestli je přihlášený ke své podnikové síti. Tento vzor je ale možné minimalizovat, pokud uživatel při přihlášení zaškrtne políčko Zůstat přihlášeni (Služba správy klíčů I). Tento výběr nastaví soubor cookie relace, který obchází ověřování po dobu 180 dnů. Služba správy klíčů I může povolit nebo zakázat správce Microsoft Entra. Kromě toho můžete snížit počet výzev k heslům tak, že nakonfigurujete hybridní připojení Microsoft Entra nebo Hybridní připojení Microsoft Entra, které uživatele automaticky přihlásí, když jsou na firemních zařízeních připojených k podnikové síti.

Další výhody

  • Synchronizace hodnot hash hesel je obecně jednodušší než federační služba. Nevyžaduje žádné další servery a eliminuje závislost na vysoce dostupné federační službě k ověřování uživatelů.
  • Kromě federace je také možné povolit synchronizaci hodnot hash hesel. Může se použít jako záložní, pokud vaše federační služba dojde k výpadku.

Poznámka:

Synchronizace hesel je podporována pouze pro uživatele typu objektu ve službě Active Directory. Typ objektu iNetOrgPerson není podporován.

Podrobný popis fungování synchronizace hodnot hash hesel

Následující část popisuje, jak funguje synchronizace hodnot hash hesel mezi službou Active Directory a ID Microsoft Entra.

Detailed password flow

  1. Každých dvě minuty vyžaduje agent synchronizace hodnot hash hesel na serveru AD Připojení uložené hodnoty hash hesel (atribut unicodePwd) z řadiče domény. Tento požadavek je prostřednictvím standardního protokolu replikace MS-DRSR používaného k synchronizaci dat mezi řadiči domény. Aby mohl účet služby získat hodnoty hash hesel, musí mít replikovat změny adresáře a replikovat změny adresáře Všechny oprávnění AD (udělená ve výchozím nastavení při instalaci).
  2. Před odesláním řadič domény zašifruje hodnotu hash hesla MD4 pomocí klíče, který je hodnotou hash MD5 klíče relace RPC a solí. Potom odešle výsledek agentu synchronizace hodnot hash hesel přes RPC. Řadič domény také předává sůl synchronizačnímu agentu pomocí protokolu replikace řadiče domény, takže agent bude moct obálku dešifrovat.
  3. Jakmile má agent synchronizace hodnot hash hesel šifrovanou obálku, použije MD5CryptoServiceProvider a sůl k vygenerování klíče pro dešifrování přijatých dat zpět do původního formátu MD4. Agent synchronizace hodnot hash hesel nikdy nemá přístup k heslu s prostým textem. Použití agenta synchronizace hodnot hash hesel MD5 je výhradně pro kompatibilitu protokolu replikace s řadičem domény a používá se pouze místně mezi řadičem domény a agentem synchronizace hodnot hash hesel.
  4. Agent synchronizace hodnot hash hesel rozšiřuje hodnotu hash binárních hesel 16 bajtů na 64 bajtů tím, že nejprve převede hodnotu hash na šestnáctkový řetězec 32 bajtů a pak tento řetězec převede zpět na binární s kódováním UTF-16.
  5. Agent synchronizace hodnot hash hesel přidá do binárního souboru o délce 64 bajtů 10 bajtů solí na uživatele, který bude dále chránit původní hodnotu hash.
  6. Agent synchronizace hodnot hash hesel pak zkombinuje hodnotu hash MD4 a každou soli uživatele a zadá ji do funkce PBKDF2 . Používá se 1000 iterací algoritmu hash HMAC-SHA256 s klíči. Další podrobnosti najdete v dokumentu White paper společnosti Microsoft Entra.
  7. Agent synchronizace hodnot hash hesel přebírá výslednou hodnotu hash 32 bajtů, zřetězí hodnotu soli pro jednotlivé uživatele i počet iterací SHA256 (pro použití pomocí Microsoft Entra ID) a pak přenese řetězec z Microsoft Entra Připojení do Microsoft Entra ID přes TLS.
  8. Když se uživatel pokusí přihlásit k ID Microsoft Entra a zadá heslo, heslo se spustí prostřednictvím stejného procesu MD4+salt+PBKDF2+HMAC-SHA256. Pokud výsledná hodnota hash odpovídá hodnotě hash uložené v MICROSOFT Entra ID, uživatel zadal správné heslo a je ověřený.

Poznámka:

Původní hodnota hash MD4 se nepřenáší do Microsoft Entra ID. Místo toho se přenáší hodnota hash SHA256 původní hodnoty hash MD4. Pokud se v důsledku toho získá hodnota hash uložená v MICROSOFT Entra ID, nedá se použít v místním útoku pass-the-hash.

Poznámka:

Hodnota hash hesla není nikdy uložena v SQL. Tyto hodnoty se zpracovávají pouze v paměti před odesláním do Microsoft Entra ID.

Bezpečnostní aspekty

Při synchronizaciheselch hesel se neskrájí verze hesla ve formátu prostého textu ani žádné z přidružených služeb.

Ověřování uživatelů probíhá proti microsoft Entra, nikoli vůči vlastní instanci služby Active Directory organizace. Data hesla SHA256 uložená v Microsoft Entra ID (hodnota hash původní hodnoty hash MD4) jsou bezpečnější než data uložená ve službě Active Directory. Vzhledem k tomu, že tuto hodnotu hash SHA256 nelze dešifrovat, nelze ji přenést zpět do prostředí služby Active Directory organizace a předložit ji jako platné heslo uživatele při útoku pass-the-hash.

Důležité informace o zásadách hesel

Existují dva typy zásad hesel, které jsou ovlivněny povolením synchronizace hodnot hash hesel:

  • Zásady složitosti hesel
  • Zásady vypršení platnosti hesla

Zásady složitosti hesel

Pokud je povolená synchronizace hodnot hash hesel, zásady složitosti hesel ve vaší instanci místní Active Directory přepisují zásady složitosti v cloudu pro synchronizované uživatele. Pro přístup ke službám Microsoft Entra můžete použít všechna platná hesla z vaší instance místní Active Directory.

Poznámka:

Hesla pro uživatele, kteří jsou vytvářeni přímo v cloudu, se stále řídí zásadami hesel definovanými v cloudu.

Zásady vypršení platnosti hesla

Pokud je uživatel v oboru synchronizace hodnot hash hesel, ve výchozím nastavení je heslo cloudového účtu nastavené na Nikdy nevypršet.

K cloudovým službám se můžete dál přihlašovat pomocí synchronizovaného hesla, jehož platnost vypršela ve vašem místním prostředí. Cloudové heslo se aktualizuje při příští změně hesla v místním prostředí.

CloudPasswordPolicyForPasswordSyncedUsersEnabled

Pokud existují synchronizovaní uživatelé, kteří pracují pouze s integrovanými službami Microsoft Entra a musí také dodržovat zásady vypršení platnosti hesla, můžete je vynutit, aby dodržovali zásady vypršení platnosti hesla Microsoft Entra povolením funkce CloudPasswordPolicyForPasswordSyncedUsersEnabled (v zastaralém modulu MSOnline PowerShellu se nazývá EnforceCloudPasswordPolicyForPasswordSyncedUsers).

Pokud je CloudPasswordPolicyForPasswordSyncedUsersEnabled zakázáno (což je výchozí nastavení), Microsoft Entra Připojení nastaví atribut PasswordPolicies synchronizovaných uživatelů na DisablePasswordExpiration. To se provádí při každé synchronizaci hesla uživatele a dá Microsoft Entra ID pokyn ignorovat zásady vypršení platnosti cloudových hesel pro daného uživatele. Hodnotu atributu můžete zkontrolovat pomocí modulu Microsoft Graph PowerShellu pomocí následujícího příkazu:

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

Pokud chcete povolit funkci CloudPasswordPolicyForPasswordSyncedUsersEnabled, spusťte následující příkazy pomocí modulu Graph PowerShellu, jak je znázorněno níže:

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

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

Po povolení microsoft Entra ID nepřejde na každého synchronizovaného uživatele a odebere DisablePasswordExpiration hodnotu z atributu PasswordPolicies. Místo toho se DisablePasswordExpiration hodnota odebere z PasswordPolicies během další synchronizace hodnot hash hesel pro každého uživatele při další změně hesla v místní službě AD.

Po povolení funkce CloudPasswordPolicyForPasswordSyncedUsersEnabled se noví uživatelé zřídí bez hodnoty PasswordPolicies.

Tip

Před povolením synchronizace hodnot hash hesel doporučujeme povolit CloudPasswordPolicyForPasswordSyncedUsersEnabled , aby počáteční synchronizace hodnot hash hesel nepřidá DisablePasswordExpiration hodnotu do atributu PasswordPolicies pro uživatele.

Výchozí zásady hesel Microsoft Entra vyžadují, aby uživatelé každých 90 dnů změnili svá hesla. Pokud jsou vaše zásady ve službě AD také 90 dní, měly by se tyto dvě zásady shodovat. Pokud však zásady AD nejsou 90 dnů, můžete aktualizovat zásady hesel Microsoft Entra tak, aby odpovídaly pomocí příkazu Update-MgDomain PowerShellu.

Id Microsoft Entra podporuje samostatnou zásadu vypršení platnosti hesla pro každou zaregistrovanou doménu.

Upozornění: Pokud existují synchronizované účty, které musí mít hesla bez vypršení platnosti v Microsoft Entra ID, musíte explicitně přidat DisablePasswordExpiration hodnotu do atributu PasswordPolicies objektu uživatele v Microsoft Entra ID. Můžete to provést spuštěním následujícího příkazu.

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

Poznámka:

Pro hybridní uživatele s hodnotou PasswordPolicies nastavenou na DisablePasswordExpirationtuto hodnotu se tato hodnota přepne po None provedení změny hesla místně.

Poznámka:

Příkaz Update-MgDomain PowerShellu nefunguje na federovaných doménách.

Poznámka:

Příkaz Update-MgUser PowerShell nefunguje na federovaných doménách.

Synchronizace dočasných hesel a vynucení změny hesla při příštím přihlášení

Při prvním přihlášení je typické vynutit, aby uživatel změnil heslo, zejména když dojde k resetování hesla správce. Běžně se označuje jako nastavení dočasného hesla a je dokončeno zaškrtnutím příznaku Uživatel musí změnit heslo při příštím přihlášení u objektu uživatele ve službě Active Directory (AD).

Dočasná funkce hesel pomáhá zajistit, aby se při prvním použití dokončil přenos vlastnictví přihlašovacích údajů, aby se minimalizovala doba, po kterou má více než jeden jednotlivec znalosti o těchto přihlašovacích údajích.

Pokud chcete podporovat dočasná hesla v Microsoft Entra ID pro synchronizované uživatele, můžete povolit funkci ForcePasswordChangeOnLogOn spuštěním následujícího příkazu na serveru Microsoft Entra Připojení:

Set-ADSyncAADCompanyFeature -ForcePasswordChangeOnLogOn $true

Poznámka:

Vynucení změny hesla uživatele při příštím přihlášení vyžaduje změnu hesla současně. Microsoft Entra Připojení samo o sobě nezvedne příznak vynucené změny hesla. Jedná se o doplněk ke zjištěné změně hesla, ke které dochází během synchronizace hodnot hash hesel.

Pokud má uživatel možnost "Heslo nikdy nevyprší" nastavená ve službě Active Directory (AD), příznak vynucené změny hesla se ve službě Active Directory (AD) nenastaví, takže se uživateli při příštím přihlášení nezobrazí výzva ke změně hesla.

Nový uživatel vytvořený ve službě Active Directory s příznakem "Uživatel musí změnit heslo při příštím přihlášení" se vždy zřídí v Microsoft Entra ID se zásadou hesla pro vynucení změny hesla při příštím přihlášení bez ohledu na to, že funkce ForcePasswordChangeOnLogOn bude pravdivá nebo nepravda. Jedná se o interní logiku Microsoft Entra, protože nový uživatel je zřízený bez hesla, zatímco funkce ForcePasswordChangeOnLogOn má vliv pouze na scénáře resetování hesla správce.

Pokud byl uživatel vytvořen ve službě Active Directory s informacemi o tom, že uživatel musí při příštím přihlášení změnit heslo, zobrazí se uživateli při přihlášení chyba. Chcete-li tento problém opravit, zrušte zaškrtnutí a znovu zaškrtněte políčko "Uživatel musí změnit heslo při příštím přihlášení" v Uživatelé a počítače služby Active Directory. Po synchronizaci změn objektu uživatele se uživateli zobrazí očekávaná výzva k aktualizaci hesla v Microsoft Entra ID.

Upozornění

Tuto funkci byste měli použít jenom v případě, že je v tenantovi povolené samoobslužné resetování hesla a zpětný zápis hesla. To znamená, že pokud uživatel změní heslo prostřednictvím SSPR, bude synchronizován se službou Active Directory.

Vypršení platnosti účtu

Pokud vaše organizace používá atribut accountExpires jako součást správy uživatelských účtů, tento atribut není synchronizován s Microsoft Entra ID. V důsledku toho bude v prostředí nakonfigurované pro synchronizaci hodnot hash hesel stále aktivní účet služby Active Directory s vypršenou platností. Doporučujeme použít naplánovaný skript PowerShellu, který po vypršení platnosti zakáže účty AD uživatelů (použijte rutinu Set-ADUser ). Naopak během procesu odebrání vypršení platnosti z účtu AD by měl být účet znovu povolený.

Přepsání synchronizovaných hesel

Správce může ručně resetovat heslo přímo v Microsoft Entra ID pomocí PowerShellu (pokud uživatel není v federované doméně).

V tomto případě nové heslo přepíše vaše synchronizované heslo a všechny zásady hesel definované v cloudu se použijí na nové heslo.

Pokud znovu změníte místní heslo, nové heslo se synchronizuje do cloudu a přepíše ručně aktualizované heslo.

Synchronizace hesla nemá žádný vliv na uživatele Azure, který je přihlášený. Aktuální relace cloudové služby není okamžitě ovlivněná synchronizovanou změnou hesla, ke které dojde, když jste přihlášení ke cloudové službě. Služba správy klíčů I prodlouží dobu trvání tohoto rozdílu. Když cloudová služba vyžaduje, abyste se znovu ověřili, musíte zadat nové heslo.

Proces synchronizace hodnot hash hesel pro službu Microsoft Entra Domain Services

Pokud používáte službu Microsoft Entra Domain Services k poskytování starší verze ověřování pro aplikace a služby, které potřebují používat Protokol Kerberos, LDAP nebo NTLM, jsou některé další procesy součástí toku synchronizace hodnot hash hesel. Microsoft Entra Připojení používá další následující proces k synchronizaci hodnot hash hesel do Microsoft Entra ID pro použití ve službě Microsoft Entra Domain Services:

Důležité

Microsoft Entra Připojení by se měl nainstalovat a nakonfigurovat jenom pro synchronizaci s místními prostředími AD DS. Instalace služby Microsoft Entra Připojení ve spravované doméně služby Microsoft Entra Domain Services nepodporuje synchronizaci objektů zpět s ID Microsoft Entra.

Microsoft Entra Připojení synchronizuje pouze starší hodnoty hash hesel, když povolíte službu Microsoft Entra Domain Services pro vašeho tenanta Microsoft Entra. Následující kroky se nepoužívají, pokud k synchronizaci místního prostředí AD DS s Microsoft Entra ID používáte jenom Microsoft Entra Připojení.

Pokud starší verze aplikací nepoužívají ověřování NTLM nebo jednoduché vazby LDAP, doporučujeme zakázat synchronizaci hodnot hash hesel NTLM pro službu Microsoft Entra Domain Services. Další informace naleznete v tématu Zakázání slabých šifrovacích sad a synchronizace hodnot hash přihlašovacích údajů NTLM.

  1. Microsoft Entra Připojení načte veřejný klíč pro instanci tenanta služby Microsoft Entra Domain Services.
  2. Když uživatel změní heslo, uloží místní řadič domény výsledek změny hesla (hash) do dvou atributů:
    • UnicodePwd pro hodnotu hash hesla NTLM.
    • supplementalCredentials for the Kerberos password hash.
  3. Microsoft Entra Připojení detekuje změny hesel prostřednictvím kanálu replikace adresáře (změny atributů potřebné k replikaci do jiných řadičů domény).
  4. Pro každého uživatele, jehož heslo se změnilo, microsoft Entra Připojení provede následující kroky:
    • Vygeneruje náhodný symetrický klíč AES 256 bitů.
    • Vygeneruje náhodný inicializační vektor potřebný pro první kolo šifrování.
    • Extrahuje hodnoty hash hesel Kerberos z atributů supplementalCredentials .
    • Zkontroluje nastavení synchronizace SyncNtlmPasswords v konfiguraci zabezpečení služby Microsoft Entra Domain Services.
      • Pokud je toto nastavení zakázané, vygeneruje náhodnou hodnotu hodnoty hash NTLM s vysokou entropií (odlišnou od hesla uživatele). Tato hodnota hash se pak zkombinuje s přesnými hodnotami hash hesel Kerberos z atributu supplementalCrendetials do jedné datové struktury.
      • Pokud je tato možnost povolená, zkombinuje hodnotu atributu unicodePwd s extrahovanými hodnotami hash hesel Kerberos z atributu supplementalCredentials do jedné datové struktury.
    • Šifruje jednu datovou strukturu pomocí symetrického klíče AES.
    • Šifruje symetrický klíč AES pomocí veřejného klíče služby Microsoft Entra Domain Services tenanta.
  5. Microsoft Entra Připojení přenáší šifrovaný symetrický klíč AES, šifrovanou datovou strukturu obsahující hodnoty hash hesel a inicializační vektor do Microsoft Entra ID.
  6. Microsoft Entra ID ukládá šifrovaný symetrický klíč AES, šifrovanou datovou strukturu a vektor inicializace pro uživatele.
  7. Microsoft Entra ID odešle šifrovaný symetrický klíč AES, šifrovanou datovou strukturu a inicializační vektor pomocí interního synchronizačního mechanismu přes šifrovanou relaci HTTP do služby Microsoft Entra Domain Services.
  8. Služba Microsoft Entra Domain Services načte privátní klíč instance tenanta ze služby Azure Key Vault.
  9. Pro každou zašifrovanou sadu dat (představující změnu hesla jednoho uživatele) provede služba Microsoft Entra Domain Services následující kroky:
    • Použije jeho privátní klíč k dešifrování symetrického klíče AES.
    • Používá symetrický klíč AES s inicializačním vektorem k dešifrování šifrované datové struktury, která obsahuje hodnoty hash hesel.
    • Zapíše hodnoty hash hesel Protokolu Kerberos, které obdrží do řadiče domény služby Microsoft Entra Domain Services. Hodnoty hash jsou uloženy do doplňkového atributuCredentials objektu uživatele, který je šifrovaný do veřejného klíče řadiče domény služby Microsoft Entra Domain Services.
    • Služba Microsoft Entra Domain Services zapíše hodnotu hash hesla NTLM, kterou přijala do řadiče domény služby Microsoft Entra Domain Services. Hodnota hash se uloží do atributu unicodePwd objektu uživatele, který je šifrovaný do veřejného klíče řadiče domény služby Microsoft Entra Domain Services.

Povolení synchronizace hodnoty hash hesel

Důležité

Pokud migrujete ze služby AD FS (nebo jiných federačních technologií) na synchronizaci hodnot hash hesel, podívejte se na prostředky pro migraci aplikací do Microsoft Entra ID.

Když nainstalujete Microsoft Entra Připojení pomocí možnosti Express Nastavení, synchronizace hodnot hash hesel se automaticky povolí. Další informace naleznete v tématu Začínáme s Microsoft Entra Připojení pomocí expresního nastavení.

Pokud používáte vlastní nastavení při instalaci microsoft Entra Připojení, synchronizace hodnot hash hesel je k dispozici na přihlašovací stránce uživatele. Další informace naleznete v tématu Vlastní instalace microsoft Entra Připojení.

Enabling password hash synchronization

Synchronizace hodnot hash hesel a FIPS

Pokud je váš server uzamčený podle standardu FIPS (Federal Information Processing Standard), je md5 zakázaný.

Pokud chcete povolit synchronizaci hodnot hash hesel MD5, proveďte následující kroky:

  1. Přejděte na %programfiles%\Microsoft Azure AD Sync\Bin.
  2. Otevřete miiserver.exe.config.
  3. Přejděte na uzel konfigurace/modulu runtime na konci souboru.
  4. Přidejte následující uzel: <enforceFIPSPolicy enabled="false" />
  5. Uloží vaše změny.
  6. Změny se projeví restartováním.

Tento fragment kódu by měl vypadat takto:

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

Informace o zabezpečení a FIPS naleznete v tématu Synchronizace hodnot hash hesel, šifrování a dodržování předpisů FIPS společnosti Microsoft Entra.

Řešení potíží se synchronizací hodnot hash hesel

Pokud máte problémy se synchronizací hodnot hash hesel, přečtěte si téma Řešení potíží se synchronizací hodnot hash hesel.

Další kroky