当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 将 Azure AD 密码策略与本地 AD 同步

作者:精品下载站 日期:2024-12-14 06:41:59 浏览:16 分类:玩电脑

将 Azure AD 密码策略与本地 AD 同步


在本教程中,我将向您展示如何通过设置 enforcecloudpasswordpolicyforpasswordsyncedusers Azure AD 中的属性。

默认情况下,如果您通过 Azure AD Connect 将本地用户与 Azure AD 同步,您的 Azure AD 密码过期策略将不符合本地密码过期策略。这带来了一些重大问题。

如果使用密码哈希同步在本地用户与其 Azure AD 对应身份之间同步密码,则可能需要确保本地和云的密码同时过期。默认情况下,当本地用户帐户密码过期时,在密码过期和用户更新密码之间,他们仍然可以登录 Azure AD 帐户并使用旧密码访问 Azure 资源。

这会带来很大的风险,尤其是在假期期间,用户不太可能登录其系统。

Azure AD Connect 软件很快将被完全从云端管理的 Azure AD Connect Cloud Sync 所取代。查看我的教程,了解如何迁移到 Azure AD Connect 云同步

Azure AD 密码策略同步在幕后的工作原理

我们现在知道,当我们在本地安装 Azure AD Connect 并将用户身份同步到 Azure AD 时,如果我们默认保留所有设置,我们的密码过期策略将不会同步到云。

幕后发生的事情是,当您的用户帐户同步到 Azure AD 时,同步的 Azure AD 用户的“PasswordPolicies”属性将设置为“DisablePasswordExpiration”,以防止密码过期。

我们可以使用 Microsoft Graph PowerShell 通过以下命令检查 PasswordPolicies 属性的值。如果您之前没有使用过 Microsoft Graph PowerShell,请使用本指南了解如何安装它。

1. 首先将 Microsoft Graph 用户模块导入到 PowerShell 会话中。

Import-Module Microsoft.Graph.Users

2. 现在使用所需的最少权限连接到 Microsoft Graph。在这里,我使用 User.Read.All 权限,因为我当前只需要对数据进行读取访问。

Connect-MgGraph -Scopes User.Read.All

3. 针对您的用户之一运行以下命令以查看PasswordPolicies 属性的值。

(Get-MgUser -userid [email ).PasswordPolicies

有关使用 Get-MgUser cmdlet 的完整详细信息,请查看我的教程:如何将 Get-MgUser 与 Microsoft Graph PowerShell 结合使用

如何启用 Azure AD 密码策略同步

现在我们知道禁用此功能会对我们的安全状况产生什么影响,以及幕后到底发生了什么,现在让我们看看在我们的组织中启用此功能。我们将通过 Azure AD Connect 本地服务器在 PowerShell 中运行这些命令。

让我们首先查看所有可能的同步功能的状态。为此,我们需要使用 msol-service PowerShell 模块,因为没有相关的 Microsoft Graph 命令来查看所需的设置。

1. 首先在线连接到 Microsoft 365。

connect-msolservice

2. 然后运行以下命令查看当前的 Azure AD Connect 功能设置。

Get-MsolDirSyncFeatures

从结果中我们可以看到 EnforceCloudPasswordPolicyForPasswordSyncedUsers 功能已禁用。运行以下命令以启用该功能。

Set-MsolDirSyncFeature -Feature EnforceCloudPasswordPolicyForPasswordSyncedUsers 
-Enable $true

现在,如果我们再次运行第一个命令,我们可以看到该功能现已启用(设置为 True)。

我们怎么知道这有效?

一旦用户下次更新其密码,密码策略属性将在其用户帐户上更新。您可以针对您的用户之一再次运行以下命令。

(Get-MgUser -userid [email ).PasswordPolicies

关于enforcecloudpasswordpolicyforpasswordsyncedusers 属性

enforcecloudpasswordpolicyforpasswordsyncedusers 属性作为 Microsoft 365 租户的一部分存储在云中。

默认情况下,它设置为Disabled,这会将PasswordPolicies 属性设置为DisablePasswordExpiration,如我们在上面所看到的。

每次用户密码从 Active Directory 同步到 Azure AD 时都会检查此属性,以告知 Azure AD 必须忽略云中的密码过期策略。这意味着,在您的本地密码发生更改之前,您的 Azure AD 密码不会过期。

完成 Azure AD 密码策略同步设置的最后重要步骤

现在您已在 Azure AD Connect 配置中启用了该功能,了解一些事情很重要。

建议您在执行用户到 Azure AD 的初始同步之前启用此功能。这是因为,一旦 Azure AD 用户的 PasswordPolicies 属性设置为 DisablePasswordExpiration,启用同步后它不会自动被覆盖。

您可以使用以下脚本将启用密码策略同步之前最初同步的所有用户的 DisablePasswordExpiration 值更改为 none。

Connect-MgGraph -Scopes User.ReadWrite.All

Get-MgUser -All | Where-Object { $_.OnPremisesSyncEnabled -eq $true -and $_.PasswordPolicies -eq ‘DisablePasswordExpiration’} | `
ForEach-Object {
Update-MgUser -UserId $_.ID -PasswordPolicies None
}

此外,如果您启用此功能,如果您的用户正在远程工作,他们的 Azure AD 密码可能会提示已过期,而他们无法在本地更新其密码。

在这种情况下,您必须在您的环境中实施强大的 MFA 以及 SSPR 和密码写回,以获得最佳体验。

您还应该将密码过期策略与本地设置的密码策略相匹配。例如,如果您的默认域策略的本地密码有效期为 90 天,则您应该在 Azure AD 中进行相同的设置,以便它们处于“同步”状态。

概括

感谢您花时间阅读我的帖子。我希望现在您已经了解将此功能保留为默认状态所带来的风险,以及如何在您的组织中启用它。如果您正在寻找有关 Azure AD Connect 的更多指南,我建议您查看以下内容:

  • 如何安装和管理用于目录同步的 Azure AD Connect
  • 如何将 Azure AD Connect 升级到最新版本
  • 如何设置 Azure AD Connect 多租户同步
  • 您应该了解的 Azure AD Connect Powershell 命令

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯