前言
Windows本地管理员密码解决方案Windows LAPS
是一项Windows功能,允许IT管理员保护本地管理员密码。这包括自动轮换密码以及将密码备份到Azure Active Directory或Active Directory。
自2023年4月21日起,适用于Azure Active Directory的Windows LAPS也可以在公共预览版中访问。本文,我将记录使用 Azure Active Directory & Microsoft Intune对Windows LAPS 的初步使用测试。
先决条件
许可证要求
拥有Azure AD
免费或更高版本许可证的客户现在可以访问Windows LAPS for Azure Active Directory。但是,相关功能(如管理单元、自定义角色、条件访问和 Microsoft Intune)有特定的许可要求。
支持的场景
只有加入Azure AD
或Hybrid Azure AD
的设备才与Windows LAPS for Azure Active Directory兼容。
支持的操作系统
- Windows 11 (21H2或更新) 专业版、EDU 和企业版(必须安装 2023 年 4 月累积更新)
- Windows 10 (20H2或更新) 专业版、EDU 和企业版(必须安装 2023 年 4 月累积更新)
- Windows Server 2019 或更新(必须安装 2023 年 4 月累积更新)
所需的角色或权限
- Cloud Device Administrator
- Intune Administrator
- Global Administrator
除了Azure AD的默认角色:
Cloud Device Administrator
、Intune Administrator
和Global Administrator
这些角色都有权访问device.LocalCredentials.Read.All
外,你还可以使用Azure AD自定义角色或管理单元授权以恢复本地管理员密码。
Azure Active Directory的Windows LAPS功能概述:
- 在Microsoft Azure(在Azure设备对象上)中存储密码
- 通过Microsoft Intune进行设置配置
- 通过Microsoft Entra/Microsoft Intune门户或Microsoft Graph API/PowerShell恢复存储的密码
- 通过Microsoft Intune进行按需密码轮换
- 在使用时自动重置密码(客户端驱动)
- 创建Azure AD基于角色的访问控制(RBAC)策略,使用自定义角色和管理单元进行密码恢复授权。
- 通过Microsoft Entra或Microsoft Graph API/PowerShell查看审核日志,以监视密码更新和检索事件。
- 在具有密码恢复授权的目录角色上配置条件访问策略。
配置 Windows LAPS for AAD
本文将以Windows 11
客户端为例配置Windows LAPS
要求
确保你的客户端必须安装了(2023 年 4 月累积更新(KB5025239))
配置本地管理员账户
请务必注意,在Windows 11中,默认情况下本地内置管理员帐户是禁用状态。Windows LAPS不会自动为我们启用内置管理员帐户,也不会自动创建专用管理员帐户。
可以通过以下方式配置本地管理员账户, 具体基于个人习惯或公司策略进行配置
- 手动或通过脚本启用
administrator
账户; - 手动或通过脚本创建自定义Local Admin 账户;
- 基于
Intune主动修正
脚本或自定义OMA-URI
;
本文将直接手动启用administrator账户进行配置。
启用 Windows LAPS
Windows LAPS for Azure Active Directory可以从Microsoft Entra
管理中心或Azure Active Directory
门户启用:
- https://entra.microsoft.com 依次访问设备⇒概述⇒设备设置⇒启用Azure AD本地管理员密码解决方案(LAPS):是
- https://portal.azure.com 依次访问Azure Active Directory⇒设备⇒设备设置⇒启用Azure AD本地管理员密码解决方案(LAPS):是
创建 Windows LAPS 策略
Windows LAPS 密码策略配置可通过Microsoft Intune
管理中心的Endpoint Security
进行配置:
https://intune.microsoft.com 依次访问端点安全⇒帐户保护⇒创建策略⇒Windows 10 及更高版本⇒选择配置文件:本地管理员密码解决方案 (Windows LAPS)
Windows LAPS配置设置
下面我简单列出可用的不同配置选项。详见请见官方文档:
备份目录: 允许将本地管理员密码备份到Azure AD 或 Local AD;
管理员帐户名称: 如果已配置,则指定帐户的密码将通过策略进行管理。如果未指定,则默认的内置本地管理员帐户将由已知的 SID 定位(即使它已被重命名);
注意: 如果在此设置中指定了自定义托管本地管理员帐户名称,则必须确保该帐户已经创建并启用。在此设置中指定名称不会导致创建帐户;
密码复杂性: 允许IT 管理员配置托管本地管理员帐户的密码复杂性;
密码长度: 配置密码长度。默认值为14,最小值为8,最大值为64;
Post Authentication Actions: 此设置指定成功进行身份验证后LAPS应如何处理帐户。默认情况下,它将注销管理帐户并重置密码;
Post Authentication Reset Delay: 在执行我们上面指定的身份验证后操作之前将等待多长时间。默认值为24小时
;
配置、查阅本地管理员密码
管理员可以通过多种方式查看本地管理员密码:
Intune Admin Portal
Microsoft Entra
PowerShell
安装Microsoft Graph SDK
Install-Module Microsoft.Graph -Scope AllUsers
安装Azure Module
Install-Module Az -Scope AllUsers
创建AZURE ACTIVE DIRECTORY应用
- 连接Azure AD
Connect-AzAccount
- 创建 Azure AD 注册的应用程序
$AppRegistrationSplat = @{
DisplayName = "IntuneLAPSadmin"
}
$AzureADApp = New-AzADApplication @AppRegistrationSplat
- 给注册的应用授权
需要为新创建的应用程序授予适当的权限。应用程序必须具有Device.Read.All
权限,并且具有以下两个权限之一:
DeviceLocalCredential.ReadBasic.All
或DeviceLocalCredential.Read.All
,其中:
-
DeviceLocalCredential.ReadBasic.All
: 用于授予读取有关持久化 Windows LAPS 密码的非敏感元数据的权限。示例包括密码备份到 Azure 的时间以及密码的预期过期时间。此权限级别适用于报告和合规性应用程序。 -
DeviceLocalCredential.Read.All
: 用于授予读取有关持久化 Windows LAPS 密码的所有内容的完全权限,包括明文密码本身。此权限级别很敏感,谨慎使用。
下表将列出权限及其相应的权限 ID。记下下一步的权限 ID。
Permission | ID |
---|---|
Device.Read.All | 7438b122-aefc-4978-80ed-43db9fcc7715 |
DeviceLocalCredential.Read.All | 884b599e-4d48-43a5-ba94-15c414d00588 |
DeviceLocalCredential.ReadBasic.All | db51be59-e728-414b-b800-e0f010df1a79 |
$AppPermissions = @(
"7438b122-aefc-4978-80ed-43db9fcc7715"
"884b599e-4d48-43a5-ba94-15c414d00588"
)
$AppPermissions | ForEach-Object {
Add-AzADAppPermission -ObjectId $AzureADApp.id -ApiId '7c24036f-0000-0000-c000-c24e0558687' -PermissionId $_ -Type Role
}
注意: 在上面的脚本中,我使用的是DeviceLocalCredential.Read.All
权限。
- 给注册程序创建一个重定向URL
访问Azure Portal⇒Azure AD⇒App Registrations⇒
IntuneLAPSadmin(你创建的APP名)⇒Authentication⇒添加自定义重定向URL http://localhost
- 授予管理员批准权限
访问Azure Portal⇒Azure AD⇒App Registrations⇒IntuneLAPSadmin(你创建的APP名)⇒API Permissions⇒点击批准
查询密码
通过Powershell MgGraph获取的前提需要2个ID:
- 应用程序的客户端 ID
- 租户 ID
然后使用PowerShell和上面收集的信息登录到Microsoft Graph
Connect-MgGraph -Environment Global -TenantId a98642c2-0000-0000-0000-ac6273459731 -ClientId 15fe2bc7-0000-0000-0000-7d3de9fe3a97 -Scopes "Device.Read.All","DeviceLocalCredential.Read.All"
注意: 在上面的脚本中,如果你使用的是DeviceLocalCredential.ReadBasic.All
权限而不是DeviceLocalCredential.Read.All
则需要在此进行替换为DeviceLocalCredential.ReadBasic.All
使用方法:
若要获取设备的LAPS密码信息,需要设备ID(可在 Azure AD 门户中找到)。获得设备ID后,运行以下命令:
Get-LapsAADPassword -DeviceIds 8155b933-9cfa-4d86-ba50-dd72ca6579db
注意: 返回的信息是不包括设备密码。如果授予了DeviceLocalCredential.Read.All
权限,则可以运行以下命令以包含设备的LAPS密码。
Get-LapsAADPassword -DeviceIds 8155b933-9cfa-4d86-ba50-dd72ca6579db -IncludePasswords -AsPlainText
密码轮换
Intune
在Intune门户中,单击设备,然后单击设备概述中的省略号,单击即可选择轮换本地管理员密码。
当客户端重启后其密码将会更新。
PowerShell
通过Powershell 的Reset-LapsPassword
cmdlet直接在本地客户端进行密码轮换(需要使用本地管理员权限)。
手动强制策略更新
Windows LAPS 定期(每小时)处理当前处于活动状态的策略。若要避免在应用策略后等待,可以运行Invoke-LapsPolicyProcessing
PowerShell cmdlet(需要使用本地管理员权限)
TroubleShooting
WINDOWS LAPS 事件日志
Windows LAPS 日志可以在 Windows事件查看器中找到:
应用程序和服务日志⇒Microsoft⇒Windows⇒LAPS
Powershell
PowerShell命令Get-LapsDiagnostics
从本地计算机收集Windows LAPS日志和跟踪。此zip中包含当前设备配置和LAPS Windows事件日志的概述。
以上为Windows LAPS配置及简单实用方法, Enjoy ~~ 、:smile::smile:
欢迎访问我的个人博客: ITPro.cc