探索声明式设备管理的新进展
Explore advances in declarative device management
2023年6月5日
一句话判断
声明式设备管理从”基础设施”阶段进入了”核心功能”阶段——软件更新强制执行、App 管理、安全策略这些过去只能用传统 MDM 做的事,现在有了声明式方案,而且用户体验更好。
这场 Session 讲了什么
Session 覆盖了声明式设备管理(Declarative Device Management)在 2023 年的五项核心更新:
1. 强制软件更新: 通过声明式配置强制受监管设备在指定时间前安装系统更新。支持指定目标 OS 版本和 build 版本,支持 predicate 控制更新顺序(比如先升 seed 再升 GM)。
用户体验方面做得很好:用户能看到更新截止日期,可以选择提前更新或预约”今晚更新”。截止日期前 24 小时通知频率加密到每小时一次,1 小时内每 30 分钟提醒一次,最后 10 分钟每 10 分钟一次。如果设备关机错过了截止日期,开机会在 1 小时内强制执行。
异步状态报告让管理员实时掌握更新进展:安装原因(声明触发/系统触发/用户触发)、待安装版本、当前安装状态、失败原因等。
2. App 管理: 新增了声明式 App 安装和管理能力,具体细节在相关文档中。
3. 系统服务锁定和后台任务监控: 增强了对设备安全策略的控制能力。
4. 证书和身份凭据安装: 新增声明式的证书和身份凭据管理。
5. 从 MDM Profile 平滑迁移: 新增了将现有 MDM 配置文件迁移到声明式管理的行为,降低切换成本。
此外,watchOS 现在也支持 MDM 和声明式设备管理。
值得深挖的点
强制软件更新的用户体验设计是这次更新中最用心的部分。Apple 没有采用”到点强制重启”的粗暴方式,而是设计了一个完整的通知递进体系——从”更新可用”到”更新即将到期”到”更新已逾期”,通知频率逐步加密。用户始终有主动更新的选择权,但时间压力在增加。这种设计平衡了企业安全需求和用户体验。
Predicate 驱动的更新顺序控制很灵活。管理员可以用 predicate 定义条件逻辑,比如”只有当设备已经安装了 seed build X 时才执行更新到 GM build Y”。这对大型组织的灰度更新策略来说是个强力的工具。
异步状态报告取代轮询是声明式管理的核心理念之一。传统 MDM 需要服务器定期轮询设备来了解更新状态,声明式管理让设备主动报告状态变化。这不仅减少了网络开销,还让状态更新更及时。
代码片段
声明式强制软件更新配置:
{
"Type": "com.apple.configuration.softwareupdate",
"Identifier": "enforce-ios17",
"Payload": {
"TargetOSVersion": "17.0",
"TargetBuildVersion": "21A329",
"TargetLocalDateTime": "2023-10-01T08:00:00"
}
}
// TargetOSVersion: 目标系统版本
// TargetBuildVersion: 可选,指定具体 build(优先于版本号)
// TargetLocalDateTime: 本地时间截止日期,届时强制安装
软件更新状态报告:
{
"softwareupdate.status": {
"install-reasons": ["declaration", "user"],
"pending-version": "17.0",
"install-state": "installing",
"failure-reason": {
"count": 0,
"reasons": [],
"latestErrorTimestamp": null
}
}
}
// install-reasons: 更新触发的来源(声明、系统、用户,可组合)
// pending-version: 正在安装的版本
// install-state: 当前安装状态
// failure-reason: 失败次数、原因和时间戳
最佳实践
- 测试强制更新策略时,先用小范围设备验证 predicate 逻辑和截止日期设置,避免影响整个设备群。
- 设置合理的截止日期窗口——给用户足够的反应时间,但不要太长以至于更新拖延。
- 利用
TargetBuildVersion可以精确控制更新到特定 build,适合需要验证兼容性的企业环境。 - 监控状态报告中的
failure-reason,及时处理更新失败的设备。 - 从 MDM 迁移到声明式管理时,利用新的迁移行为逐步切换,不要一次性全部切换。
- watchOS 的设备管理是新能力,如果你的组织有 Apple Watch 设备,值得评估统一管理的可能性。
还有什么值得关注
- 声明式设备管理现在有了”独占”的新功能——某些能力只能通过声明式方式使用,传统 MDM 命令不再提供。这是 Apple 推动迁移的明确信号。
- 几家主流 MDM 服务商已经支持声明式设备管理,如果你的 MDM 还没支持,可以向供应商施压。
- 软件更新的用户体验在 macOS 和 iOS/iPadOS 上略有不同,macOS 多了”Do Not Disturb”穿透的通知行为。
- 证书和身份凭据的声明式管理对 zero-trust 安全架构的落地有帮助。
- 搭配 WWDC21 和 WWDC22 的声明式设备管理 Session 一起学习,可以理解完整的演进脉络。