在实际工作环境中,域内用户经常使用一些众所周知的密码,比如P@ssw0rd,1q2w3e4r5t之类,复杂性看上去是不错,但是往往很容易被字典爆破,微软推出的Azure AD 密码保护策略可检测并阻止已知的弱密码及其变体,还可以自定义弱密码清单加以阻止,从而更好的加固密码安全,并且它可以部署在混合环境中的本地AD环境中。
一、许可证要求
要使用该套方案,需要至少Azure AD Premium P1许可证。
可以在 Azure Active Directory 定价站点上找到相关许可信息。
二、工作原理
该套方案中有涉及到两个软件:
- Azure AD Password Protection DCagent
- Azure AD Password Protectionproxy service
Azure AD Password Protection proxy service安装在加入域的任意计算机上运行。主要用途是将密码策略下载请求从 DC 转发到 Azure AD,然后将 Azure AD 的响应返回到 DC。
Azure AD Password Protection DC agent 接收密码验证请求。DC 代理服务使用从Azure AD获取到的(本地可用)密码策略处理它们,并返回通过或失败的结果。
工作过程:
- 安装Proxy Service之后,会在本地AD中创建ServiceConnectionPoint对象,该对象指向(Azure AD Password Protection proxy service)代理服务器并将该对象复制到域内所有DC上。
- DC上安装的Azure AD Password Protection DC agent组件会通过serviceConnectionPoint 找到Azure AD密码保护的代理服务点,并向其发送密码策略下载请求,Azure AD Password Protection proxy service把Azure AD的响应返回给本地DC
- 本地DC在获得Azure AD下发的密码策略后,将其存储在域内sysvol文件夹下,并复制到域内所有DC。同时,Azure AD Password Protection DC agent组件会每隔一小时请求新策略。
其实工作原理很简单,一句话即可理解:DC为了安全性不能直接连到Internet,所以微软加了个中间代理组件,用来代替DC连接到Azure AD获取和更新密码策略。DC通过代理组件获取密码策略之后,再通过将其本身的DLL组件加载到LSASS.EXE进程来实施密码策略,验证用户密码更改时是否存在被禁止的弱密码。
三、部署过程
3.1前期准备:
- 在安装两个组件的任何计算机上安装Universal C Runtime。
- 在域控制器上启用密钥分发服务。
- 安装了Proxy Service的计算机须允许连接到微软micosoftonline.com和windows.net网站。
- 该组件安装在本地DC Server上,安装前须检查是否安装安装 .NET 4.7.2,如未安装,可点此下载
- 下载两个Azure AD Password Protection组件,点此下载
3.2 安装Azure AD Password Protection proxy service
Powershell Command(运行命令前建议启用Windows防火墙,以避免安装错误 ,安装完成后可以关闭):
AzureADPasswordProtectionProxySetup.exe /quiet
安装完成后,将Proxy Service注册到Azure AD和注册本地AD林:
Import-Module AzureADPasswordProtection
Get-Service AzureADPasswordProtectionProxy | fl
Register-AzureADPasswordProtectionProxy -AccountUpn 'yourglobaladmin@yourtenant.onmicrosoft.com' #将Proxy Service注册到Azure AD
Register-AzureADPasswordProtectionForest -AccountUpn 'yourglobaladmin@yourtenant.onmicrosoft.com' #注册本地 Active Directory 林
如果环境中需要使用代理与Azure AD通信,可以参考这里,创建一个AzureADPasswordProtectionProxy.exe.config 文件,然后重启服务。
3.3 安装Azure AD Password Protection DC agent
Powershell Command:
msiexec.exe /i AzureADPasswordProtectionDCAgentSetup.msi /quiet /qn /norestart
软件安装或卸载必须重新启动,才能生效。
3.4 查看状态
查看注册状态:
Get-AzureADPasswordProtectionProxy
查看系统日志:
\Applications and Services Logs\Microsoft\AzureADPasswordProtection\DCAgent\Admin
\Applications and Services Logs\Microsoft\AzureADPasswordProtection\DCAgent\Operational
\Applications and Services Logs\Microsoft\AzureADPasswordProtection\DCAgent\Trace
四、启用本地 Azure AD 密码保护
4.1在Azure AD上启用密码保护策略
1. 登录到 Azure 门户并浏览到 Azure Active Directory >安全组>身份验证方法>密码保护。
2. 将"在 Windows Server Active Directory 上启用密码保护"选项设置为"是"。
3. 将"模式"设置为"强制"。
4. 准备就绪后,选择"保存"。
4.2操作模式说明
启用本地 Azure AD 密码保护时,可以使用审核模式或强制模式。
- 审核模式:如果将当前策略配置为处于审核模式,则"错误"密码会导致事件日志消息,但会进行处理和更新
- 强制模式:如果启用了强制模式,则会拒绝根据策略被视为不安全的密码,如果启用了强制模式,则会拒绝根据策略被视为不安全的密码
4.3配置自定义禁止密码
将字符串添加到自定义禁止密码列表,每行一个字符串。以下注意事项和限制适用于自定义禁止密码列表:
- 自定义禁止密码列表最多可以包含 1000 个术语。
- 自定义禁止密码列表不区分大小写。
- 自定义禁止密码列表考虑常见字符替换,例如"o"和"0",或"a"和"@"。
- 最小字符串长度为 4 个字符,最大字符串长度为 16 个字符。
应用对自定义禁止密码列表的更新可能需要几个小时。
五、测试自定义禁止密码列表
1.确认本地已获取到最新的策略
在DC上的sysvol目录下应自动生成以下三个文件夹,并下载相应的策略文件。
2.将user1用户密码更改为自定义禁止密码清单中的弱密码:Abc@abc123,并观察实施结果。
弱密码Abc@abc123被阻止应用,策略应用成功。