采用声明式设备管理
Adopt declarative device management
2022年6月6日
一句话判断
如果你在开发 MDM 解决方案,声明式设备管理今年扩展到了全平台和全部注册类型——这不是可选的未来方向,而是 Apple 设备管理的发展重心。
这场 Session 讲了什么
Apple 设备管理团队的 Cyrus Daboo 全面介绍了声明式设备管理(Declarative Device Management)在 2022 年的扩展。去年 WWDC 21 首次引入时仅支持 iOS 的用户注册,今年扩展到所有 MDM 注册类型、所有平台(iOS、macOS、tvOS),并大幅增强了状态报告和谓词系统。
声明式设备管理的核心理念是让设备变得自主和主动:设备根据自身状态变化自主应用管理逻辑,不需要服务端轮询;通过状态通道异步上报重要状态变更。
Session 重点关注三大更新:扩展声明式设备管理的覆盖范围、增强状态报告(新增密码合规状态、账户状态、应用安装状态)、增强谓词系统。
值得深挖的点
密码合规状态的自动触发。 传统 MDM 中,服务端发送密码策略后需要不断轮询设备来检查密码是否合规。声明式方式下,你可以将 Wi-Fi 配置的激活条件绑定到密码合规状态——只有当用户设置了合规密码后,敏感配置才会被激活。整个过程不需要服务端轮询。
平台全覆盖。 macOS Ventura 和 tvOS 16 现在都支持声明式设备管理。macOS 支持所有 MDM 注册类型,tvOS 支持设备注册类型。Shared iPad 也得到支持。每个平台的声明和状态项集合基本一致。
双通道管理的注意点。 macOS 和 Shared iPad 各有两个 MDM 通道(设备通道和用户通道)。声明式设备管理需要在每个通道上单独启用,状态报告也需要分别监控。
状态报告的扩展。 新增三种状态项:密码合规状态(Passcode.is-compliant 和 Passcode.is-present)、配置安装的账户信息、MDM 安装的应用状态。这些状态项让服务端能更精确地了解设备的实际状态。
代码片段
// 声明式配置示例:密码合规后激活 Wi-Fi 配置
{
"Identifier": "com.example.wifi-activation",
"Type": "com.apple.activation.simple",
"Predicate": "passcode-is-compliant == true",
"Configurations": [
"com.example.wifi-profile"
]
}
// Wi-Fi 配置声明
{
"Identifier": "com.example.wifi-profile",
"Type": "com.apple.configuration.wifi",
"Payload": {
"SSID": "SecureNetwork",
"SecurityType": "WPA2",
"Password": "..."
}
}
// 传统 MDM 的轮询模式:
// 1. 服务端发送密码策略
// 2. 服务端反复轮询设备检查密码状态
// 3. 密码合规后,服务端发送 Wi-Fi 配置
// 声明式管理模式:
// 1. 服务端一次性发送密码配置 + Wi-Fi 配置(带激活条件)
// 2. 设备自动应用密码策略
// 3. 密码合规后,设备自动激活 Wi-Fi 配置
// 4. 无需任何服务端轮询
最佳实践
- 尽早开始迁移到声明式设备管理——Apple 明确表示未来协议功能的重点在声明式方向
- 对于密码相关的安全策略,利用谓词绑定激活条件,避免服务端轮询
- 在 macOS 和 Shared iPad 上,记得为每个通道单独启用声明式管理
- 利用状态报告的增量更新机制,服务端只需处理实际发生变更的状态
- 将声明式管理与传统 MDM 命令混合使用是可行的,不需要一次性迁移
- iOS 16 中用户可以在设置应用的 MDM 详情页查看活跃的配置项,增加透明度
还有什么值得关注
- macOS 和 tvOS 上的配置详情视图让终端用户也能看到 MDM 推送的配置
- 谓词系统在今年得到了增强,支持更复杂的条件组合逻辑
- 状态报告的可靠传递机制:设备会跟踪服务端的成功响应,确保状态更新不丢失
- 配套观看 WWDC 2021 的声明式设备管理介绍 Session 了解基础概念