You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/active-directory/hybrid/how-to-connect-password-hash-synchronization.md
+33-3Lines changed: 33 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,9 +58,6 @@ The following section describes, in-depth, how password hash synchronization wor
58
58
>[!Note]
59
59
>The original MD4 hash is not transmitted to Azure AD. Instead, the SHA256 hash of the original MD4 hash is transmitted. As a result, if the hash stored in Azure AD is obtained, it cannot be used in an on-premises pass-the-hash attack.
60
60
61
-
### How password hash synchronization works with Azure Active Directory Domain Services
62
-
You can also use the password hash synchronization feature to synchronize your on-premises passwords to [Azure Active Directory Domain Services](../../active-directory-domain-services/overview.md). In this scenario, the Azure Active Directory Domain Services instance authenticates your users in the cloud with all the methods available in your on-premises Active Directory instance. The experience of this scenario is similar to using the Active Directory Migration Tool (ADMT) in an on-premises environment.
63
-
64
61
### Security considerations
65
62
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.
66
63
@@ -100,6 +97,39 @@ The synchronization of a password has no impact on the Azure user who is signed
100
97
- Generally, password hash synchronization is simpler to implement than a federation service. It doesn't require any additional servers, and eliminates dependence on a highly available federation service to authenticate users.
101
98
- Password hash synchronization can also be enabled in addition to federation. It may be used as a fallback if your federation service experiences an outage.
102
99
100
+
## Password hash sync process for Azure AD Domain Services
101
+
102
+
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 uses the additional following process to synchronize password hashes to Azure AD for use in Azure AD Domain Services:
103
+
104
+
> [!IMPORTANT]
105
+
> Azure AD Connect only synchronizes legacy password hashes when you enable Azure AD DS for your Azure AD tenant. The following steps aren't used if you only use Azure AD Connect to synchronize an on-premises AD DS environment with Azure AD.
106
+
>
107
+
> 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. For more information, see [Disable weak cipher suites and NTLM credential hash synchronization](../../active-directory-domain-services/secure-your-domain.md).
108
+
109
+
1. Azure AD Connect retrieves the public key for the tenant's instance of Azure AD Domain Services.
110
+
1. When a user changes their password, the on-premises domain controller stores the result of the password change (hashes) in two attributes:
111
+
**unicodePwd* for the NTLM password hash.
112
+
**supplementalCredentials* for the Kerberos password hash.
113
+
1. Azure AD Connect detects password changes through the directory replication channel (attribute changes needing to replicate to other domain controllers).
114
+
1. For each user whose password has changed, Azure AD Connect performs the following steps:
115
+
* Generates a random AES 256-bit symmetric key.
116
+
* Generates a random initialization vector needed for the first round of encryption.
117
+
* Extracts Kerberos password hashes from the *supplementalCredentials* attributes.
118
+
* Checks the Azure AD Domain Services security configuration *SyncNtlmPasswords* setting.
119
+
* If this setting is disabled, generates a random, high-entropy NTLM hash (different from the user's password). This hash is then combined with the exacted Kerberos password hashes from the *supplementalCrendetials* attribute into one data structure.
120
+
* If enabled, combines the value of the *unicodePwd* attribute with the extracted Kerberos password hashes from the *supplementalCredentials* attribute into one data structure.
121
+
* Encrypts the single data structure using the AES symmetric key.
122
+
* Encrypts the AES symmetric key using the tenant's Azure AD Domain Services public key.
123
+
1. Azure AD Connect transmits the encrypted AES symmetric key, the encrypted data structure containing the password hashes, and the initialization vector to Azure AD.
124
+
1. Azure AD stores the encrypted AES symmetric key, the encrypted data structure, and the initialization vector for the user.
125
+
1. 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.
126
+
1. Azure AD Domain Services retrieves the private key for the tenant's instance from Azure Key vault.
127
+
1. For each encrypted set of data (representing a single user's password change), Azure AD Domain Services then performs the following steps:
128
+
* Uses its private key to decrypt the AES symmetric key.
129
+
* Uses the AES symmetric key with the initialization vector to decrypt the encrypted data structure that contains the password hashes.
130
+
* Writes the Kerberos password hashes it receives to the Azure AD Domain Services domain controller. 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.
131
+
* Azure AD Domain Services writes the NTLM password hash it received to the Azure AD Domain Services domain controller. 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.
0 commit comments