Organization has password hash synchronization enabled for hybrid deployments
Microsoft Entra hybrid tenants use password hash synchronization to replicate on-premises Active Directory password hashes to Entra for cloud authentication.
Applies to hybrid sync scenarios, not fully federated domains.
Risk
Without password hash synchronization, hybrid accounts lose leaked credential detection and cloud risk-based protections, weakening confidentiality. Authentication remains tied to on-prem services, reducing availability during outages. Users may reuse passwords across systems, increasing credential stuffing exposure.
Run this check with Prowler
Run in Prowler Cloudprowler m365 --checks entra_password_hash_sync_enabledRecommendation
Enable password hash synchronization for hybrid identities and keep it active even alongside federation as a resilient fallback. Combine with MFA, Conditional Access, and strong password policy enforcement for defense in depth. Apply least privilege and monitor sign-in risk to prevent account compromise.
Remediation
CLI
Set-ADSyncAADCompanyFeature -PasswordHashSync $trueOther
Check Code
from typing import List
from prowler.lib.check.models import Check, CheckReportM365
from prowler.providers.m365.services.entra.entra_client import entra_client
class entra_password_hash_sync_enabled(Check):
"""
Check if password hash synchronization is enabled for hybrid Microsoft Entra deployments.
This check verifies that password hash synchronization is enabled in hybrid Microsoft Entra deployments.
Enabling password hash sync ensures that on-premises passwords are synchronized to Microsoft Entra,
facilitating seamless authentication and enhancing leaked credential protection. Without password hash
synchronization, users might have to manage multiple passwords and detection of leaked credentials would be compromised.
Note: This control applies only to hybrid deployments using Microsoft Entra Connect sync and does not apply to federated domains.
"""
def execute(self) -> List[CheckReportM365]:
"""
Execute the password hash synchronization requirement check.
Retrieves the organization settings from the Entra client and generates a report indicating whether
password hash synchronization is enabled.
Returns:
List[CheckReportM365]: A list containing the report object with the result of the check.
"""
findings = []
for organization in entra_client.organizations:
report = CheckReportM365(
self.metadata(),
resource=organization,
resource_id=organization.id,
resource_name=organization.name,
)
report.status = "FAIL"
report.status_extended = "Password hash synchronization is not enabled for hybrid Microsoft Entra deployments."
if organization.on_premises_sync_enabled:
report.status = "PASS"
report.status_extended = "Password hash synchronization is enabled for hybrid Microsoft Entra deployments."
findings.append(report)
return findings