大多数浏览器和
Developer App 均支持流媒体播放。
-
了解声明式设备管理的改进
探索如何帮助信息技术管理员获得管理组织设备所需的工具,了解声明式设备管理的更新项,包括软件更新管理、新增资产类型、文件保险箱状态报告等。
资源
相关视频
WWDC23
WWDC22
WWDC21
-
下载
♪ ♪
Cyrus: 大家好 欢迎观看本期课程 “了解声明式设备管理的改进” 我是 Cyrus Daboo 是 Device Management Client 团队的一名工程师 在本次讲座中 我将为大家 介绍声明式设备管理相关的 一些激动人心的新功能 声明式设备管理是适用于 所有 Apple 设备的 设备管理新方案 它具备自主及主动管理功能 让设备可在没有服务器提示的情况下 应用管理逻辑 并支持异步状态报告 从而避免了服务器轮询设备的步骤
此外 声明式设备管理 内置于移动设备管理中 可与现有产品轻松实现过渡和集成
在 WWDC22 上 我们曾说过: “未来协议特性的重点 将会是声明式设备管理” 在今年发行的版本中 我们贯彻的是 “新协议特性的重点 就是声明式设备管理” 该版本的新功能非常有吸引力 而这些功能只能通过 声明式设备管理获得 其中有些功能增加了声明式设备管理 与移动设备管理之间的对等性 并有助于从移动设备管理顺利过渡 在 WWDC21 上首次推出了 声明式设备管理 在 WWDC22 上宣布了 更多基础功能的提升 移动设备管理开发者和企业管理员 对声明式设备管理都非常满意
一些移动设备管理开发者已实现 并发布了支持声明性设备管理的 移动设备管理服务器 新版本增添了许多新功能后 有更多的人希望为他们的客户 提供一个管理功能更新总结
请观看 WWDC21 和 WWDC22 的视频 深入了解什么是 声明式设备管理 以及如何将其用于你的产品
先快速介绍一下新增的支持平台
WatchOS 现在也支持使用 移动设备管理和声明式设备管理
欲了解完整内容 可以观看讲座 “了解 Apple Watch 的设备管理”
声明式设备管理是 Apple 内部 多个不同团队协同合作研发的 旨在为移动设备管理开发者 和企业管理员 提供安全且持久有效的解决方案
我们始终致力于 提供顺畅无缝的用户体验 保护用户及其设备的隐私和安全 同时为管理员提供所需工具 用于保护企业数据 和强制执行遵守政策
声明式设备管理也是移动设备管理 开发者与企业管理员的合作成果 你的反馈可以帮助我们 对此版本中所有功能的重要性 作出排序
由于声明式设备管理的基础功能 已经实现 我们的研究重点已经转移到 核心管理功能的实现上 来看一下都有哪些核心管理功能 第一个是强制软件更新的新方法 其次是管理 App
第三个是通过锁定系统服务 和监控后台任务来保护设备
第四个是安装设备使用的证书 和身份凭证 最后一个是将配置文件从移动设备管理 转换到声明式设备管理 变得更为轻松 是一种新的行为
通过与 Software Update 团队的 合作开发 我们将为基于声明式设备管理构建的 macOS、iOS 和 iPadOS 设备 带来全新的托管软件更新体验 信息技术管理员需要确保其用户的设备 安装了最新的系统软件更新 以便保证能获取到所需功能和修复 管理员需要强制执行软件更新 并将其推迟一小段时间 以便测试 OS 新版本 确保兼容组织的 App 和服务 管理员还需要在接到指令时 验证设备是否已完成正确更新 如果是大型设备群 此步骤可能会非常耗时 现在 管理员可以使用 移动设备管理命令 在受监管的设备上安装更新 服务器轮询设备时 他们可以接收到更新状态的反馈
管理员还可以通过配置文件 推迟次要或主要的更新 以防止受监管的设备在指定的时间段 向用户提供软件更新 但是 根据各位的反馈 我们希望进一步改善管理员和用户 在托管软件更新方面的 整体使用体验
声明式设备管理这种机制 不仅能让管理员对更新过程 拥有更多的掌控 还能让用户获得更丰富的体验 同时还确保了及时开启更新 下面介绍它的原理
配置可用于定义软件更新行为 设备可以主动执行这些指令 同时让用户随时了解更新过程的最新动态 他们可以在截止日期之前的任何时候 决定开始更新
当设备升级到种子和 GM 版本时 或者当快速安全响应可供使用时 就可以用谓词来表达复杂的逻辑 从而控制软件更新的顺序
管理员可以通过异步状态报告 随时了解软件更新流程 以便在出现问题时快速解决 一起来看看这是如何实现的
为在特定时间之前管理 受监管设备的强制软件更新 这里已经添加了一个配置 还有一组新的状态项 用于报告设备上的软件更新流程 包括安装状态 和所有故障原因的详细信息 下面来看几个示例
第一个示例中的配置 在特定时间内强制执行 特定 OS 版本 和构建过程的软件更新 TargetOSVersion 密钥显示了 设备应更新到的 OS 版本
如有需要 可选的 TargetBuildVersion 密钥允许以特定的种子构建为目标 若两者都已设置 TargetBuildVersion 的 优先级要高于 TargetOSVersion 如果没有找到指定版本的更新 设备将搜索软件更新服务器 提供的默认更新
TargetLocalDateTime 密钥显示了 强制更新的本地日期和时间
以下是软件更新状态项目的 状态报告示例
install-reason 状态项是描述 安装发生原因的原因数组 其中会显示更新 是由声明、系统或用户发起的 还是由它们之间的 任意组合发起的 pending-version 状态项指出了 系统尝试安装的软件更新版本 install-state 状态项显示的是 系统当前相对于更新的状态
failure-reason 状态项指出了错误的数量 以及最新错误的原因和时间戳 接下来切换到用户视角的呈现效果
用户能够清楚地看到 更新状态以及开始时间
他们可以轻松选择在截止日期前更新 或者计划在当天晚上更新
如果用户选择“今晚更新” 设备会先下载更新并准备 然后在当天晚上电量充足 且空闲时依次开启更新
如果用户没有立即触发更新 那么 在截止日期前 软件更新将每天显示可用更新通知 在 macOS 上 当通知出现时 用户可以选择“安装”或“今晚试用” 截止日期前的 24 小时 此通知将每小时显示一次 勿扰模式下也会如此 截止日期前的一小时 通知将每 30 分钟出现一次 接下来是每 10 分钟出现一次
假设用户在度假期间关闭了设备 结果错过了截止日期 等用户重启设备时 软件更新会发出通知 告诉用户更新已过期 然后将在下一个小时内尝试更新
iOS 和 iPadOS 上的过程与此类似
在此示例中 管理员正在 强制更新 iOS 17.0 如底部突出显示的部分所示 用户可以轻松选择 立即更新或今晚更新 确保更新在截止日期前安装 就像在 macOS 上一样
还有一点也和 macOS 一样 那就是如果用户选择 不触发更新 提醒通知的间隔时间将会越来越短 逾期之后的流程也一样
软件更新声明与移动设备管理命令 以及配置文件可以共存
但由声明强制执行的软件更新优先级 将始终高于移动设备管理命令 和配置文件
软件更新配置和状态项在 macOS、 iOS 及 iPadOS 上可用
现在我们来看看管理设备的 另一个重要因素: App
管理员需要管理受监管设备上 App 的许可、安装、更新和删除 包括在出现问题时提供支持 以及重新配置设备 因为这些设备被分配给了 组织中担任不同角色的不同用户
移动设备管理开发者提供了 各种工具帮助管理员管理 App 同时使用移动设备管理 与 App 相关的命令 以及 Apple 服务器 API 来查找 App 元数据和管理许可
移动设备管理的命令性轮询特性意味着 当出现问题、用户更改角色 或设备需要在用户之间循环使用时 管理员通常很难及时做出响应 此外 当用户第一次设置或进行更改时 设备的反应会很慢
而声明式设备管理为管理员提供了 更高效管理 App 的全新体验 也为用户提供了响应更快、更可靠的体验 下面介绍它的原理
配置可用于指定在需要时设备上 可使用的 App 配置可以被提前发送给设备 以免在设备条件需要使用时缺失
谓词可用于表达逻辑 根据设备状态或服务器设置的管理属性 控制哪些 App 集 可供哪些用户使用 因此 管理员可根据需要 在 App 集之间快速切换
App 无须安装即可显示给用户 因此用户可以自主决定 何时安装 App 不需要服务器干预 如此一来 侵入性用户也不需要 对提示表示同意了 管理员可通过异步状态报告及时了解 托管 App 的更改 以便在出现问题时迅速解决
一起来看看这是如何实现的
为管理单个 App 的安装、 更新和删除 此处添加了一个配置 还有一个新的状态项负责报告 托管 App 的列表 App 可以来自 App Store 也可以是由清单指定的 类似于移动设备管理的企业 App
macOS 支持安装软件包 但每个软件包里只能有一个 App 此外 App 安装可以标记为可选 由用户触发 下面来看几个示例
在此示例中 托管 App 配置 会从 App Store 中 安装 Pages 文稿 App 该安装行为表示需要此 App 如此一来 配置激活后 此 App 会立即安装并受到监管 而且用户不能删除该 App
或者 可以将安装行为 设置为“可选”
配置激活后 用户不仅可以在需要时下载 App 还可以将其随时删除
配置中也有控制管理的其他属性 例如每个 App 的 VPN
本示例显示了已完成安装的 Pages 文稿 App 的状态项
Identifier 密钥 是状态对象的唯一标识符 并且被设置为该 App 的束标识符 声明标识符密钥是管理该 App 的 配置的标识符 设备出现更改时 状态会异步更新 因此不需要轮询 接下来介绍一下用户体验 许多移动设备管理开发者 给用户提供的 App 可以让他们拥有控制管理体验的选项 通常会配有一个 App 列表 让用户选择安装内容和时间 用户可以通过点击 App 开始安装 为实现这一点 App 和移动设备管理服务器之间 需要一个私有协议 来传递 App 列表 然后再将用户的操作发回服务器 然后 服务器必须发出一个 移动设备管理命令才能触发安装 但这些来回发送让用户体验到了 更多的延迟 为改善这一点 我们的方法是 让安装可选 App 既能简单快速 又能保障安全
新的托管 App 分发框架 可供第三方管理 App 使用 使用时需要授权 可以作为 App Store 提交流程的一部分 进行申请 该框架包含一个 SwiftUI 视图扩展 将每个托管 App 显示为 可以放置在可自定义布局中的 SwiftUI 视图 用户可查看 App 的详细信息 然后轻点安装 通过消除移动设备管理服务器 收发的往返延迟、 让 App 可以立即安装 以及提供更好的进度反馈 用户体验得到进一步改善 来看看在你可以构建的 App 中 可能呈现的效果
画面中显示的是 iOS 上的 移动设备管理管理 App 它使用新的视图服务 向用户展示 App 列表
当前有一个 App 已安装完成 一个正在下载 还显示实时进度 还有一个是可选项 正等待安装 App 视图的样式可以自定义 此示例使用的是标准列表样式
macOS 上的布局种类还有很多 比如此处显示的网格布局 使用了不同风格的 App 视图
使用视图服务的 App 可以使用任意方式 对 App 集进行排序和分组 如果你已拥有可显示 App 列表的 管理 App 这个视图服务可以作为备选项 以便让用户获得更好的体验 如果你打算为用户 提供一个管理 App 那视图服务功能将是 实现它的良好开端
请注意 如果你打算使用 新的托管 App 配置提供的 可选安装行为 那么 你必须将自己的管理 App 提供给用户使用
macOS、iOS 和 iPadOS 上 将支持管理 App 配置、状态项、 公共框架和视图扩展
此外 我很高兴地宣布 新的“组织 App 和书籍” 服务器 API 已经随时可以使用 这是我们改善 App 管理体验的目标之一
这将替换现有的 contentMetadataLookup 服务器 API
除了更优秀的性能 和更持久的正常运行时间之外 新版 API 还增加了 定制功能和版本控制功能 要了解如何使用新 API 的详细信息 请访问 developer.apple.com/cn/ 接下来介绍如何使用声明式设备管理 来帮助实施 macOS 系统服务 以及验证后台任务的安全合规性
管理员通常需要确保他们所支持设备的 运行模式的一致性和安全性 确保一致性可以 更容易支持大量的设备 因为设备都是以相同方式配置的 确保合规性可以 让已知设备具有基本的安全性 能够保障组织的数据安全
所有设备的更改过程 以及新设备添加到清单中的过程 需要快速且高效
该要求涉及到了 对安装在设备上的系统 或第三方服务的配置和监控
macOS 平台附带许多 通过系统配置文件控制的系统服务 例如 sshd 是通过 /etc/ssh 目录中的文件进行配置
管理员必须安全稳妥地配置好 若干系统服务 才能满足组织所需的 一致性和合规性 因此 务必确保用户无法 有意或无意地更改这些系统配置
然而这很难实现 因为用户通常能够 通过修改系统配置文件 或覆盖系统服务 来使用自定义配置文件
声明式设备管理的理想定位是 提供一种安全可靠的机制 支持受系统完整性保护 所保护的系统服务的配置 并通过监视后台任务 来帮助保证设备一致性 和安全合规性 下面介绍它的原理
声明性设备管理配置可用于 为不同的系统服务指定 防篡改系统配置文件集 状态可用于监控往返的后台任务 如果有需要 谓词能够 以完全自主的方式 支持设备状态触发的复杂遵从规则 一起来看看这是如何实现的
为支持管理系统服务配置文件 此处已添加了声明性设备管理配置
配置引用了一个可以提供 ZIP 存档文件的数据资产
激活配置后 存档文件被下载并扩展到 一个防篡改、用于特定服务的位置
该位置可以通过调用 新库中的函数以编程方式找到 如此一来 所有系统服务 都可以采用受监管的服务配置文件
内置系统服务将会被修改 用于查找受监管的服务配置文件 并始终在任何默认或覆盖的 系统配置之前使用这些文件
第三方服务也可以用同样的方式 采用受监管的服务配置文件 我们非常欢迎你联系自己使用的 任何第三方服务的开发者 并让他们体验和使用此新功能 一起来看看这是如何实现的
此示例配置将为 sshd 服务安装 受监管的服务配置文件
包括对数据资产的引用
下面是数据资产的示例
该资产属于一种新类型 可用于传送任意数据
还有一种新方法是让资产显示 在检索资产数据时 使用了哪种类型的身份验证 如此一来 对于资产托管位置 以及如何实现身份验证和授权 以便保障访问数据安全性的方面 我们拥有更大的灵活性
资产中的数据 URL 指向一个位置 引用配置被激活后 可以在该位置下载 ZIP 存档文件
随后该存档文件被扩展到一个防篡改、 用于特定服务的位置 在该位置上 sshd 进程可以访问 存档文件并将其用作受监管服务配置
第一批采用此功能的内置服务是: sshd、sudo、PAM、 CUPS、Apache httpd、 bash 以及 zee shells
除了锁定系统服务配置之外 此版本还添加了一个新的状态项 用于报告已安装的后台任务列表
因此 管理员得以快速验证 所需任务处于运行状态 且不需要的任务未在运行 我们来看一下具体信息
此示例显示的是 后台任务的状态数组项 具体细节包括:任务的唯一标识符 运行任务的用户帐户的 uid 及其状态 守护程序、代理、 登录项、App 或用户项等任务类型 还有标签和程序参数 以及用于加载服务的 launchd 属性的校验和散列等 所有 launchd 详细信息
此外 此版本还添加了一个状态项 用于报告 macOS 启动卷的 文件保险箱启用状态 它可以返回一个布尔值来表明 是否启用了文件保险箱 并且很容易在激活谓词的状态下使用 因此 只有在安全的情况下 才可安装安全敏感的配置
通过组合 受监管服务配置文件、 后台任务 和文件保险箱状态报告 管理员可以 非常有效地确保组织中 所有 macOS 设备的 一致性和合规性 接下来介绍声明式设备管理中的 安全证书和身份
管理员需要保障 访问在内部及外部网络上 托管的组织资源的安全性
这通常需要向设备添加证书和身份 以确保传输层安全性 或对 App 服务的身份验证访问
不同的 App 服务可能会使用 相同的证书或身份 能够管理这些关系非常重要
证书的生存期也是有限的 因此 需要可靠的途径来刷新证书
此外 也推荐用安全技术 (如密钥) 来取代密码认证 前者速度更快、更易上手使用 而且兼具抗网络钓鱼效果 因此 移动设备管理开发者务必 为管理员提供可靠且高效的方法 来管理证书和身份
移动设备管理已经包含了 配置文件有效负载 可用于在设备上的钥匙串中 创建证书和身份
它不仅可以通过 自动化证书管理环境 和简单证书注册协议提供身份 还支持通过证书列表命令 检索证书 但是移动设备管理在功能上 也有一些限制
同一配置文件中的一个 或多个其他有效负载 都可以引用移动设备管理证书 或身份有效负载
但不允许引用其他配置文件中的 证书或身份
这意味着有两种选择 第一 扩容配置文件 以容纳引用同一项的所有有效负载; 第二 跨多个配置文件 复制证书和身份 但需要做更多的工作 才能让它们一直处于最新状态
此外 证书或身份确实需要刷新时 配置文件中的所有其他有效负载 都将在系统中更新 用户体验可能会受到影响
声明式设备管理可以利用 其声明数据模型的全部功能 为管理证书和身份 提供更有效的机制 下面介绍它的原理
可以将证书和身份定义为资产声明 配置可以引用这些资产
多个配置可以引用同一个证书或标识 同一配置也可以引用 多个证书或标识
刷新证书或身份之前 只需更新资产即可 这种资产和配置的组合解决了 移动设备管理配置文件 有效负载的诸多限制
还可以报告证书和身份的状态 包括在提供自动化证书管理环境 和简单证书注册协议身份时快速反馈 而且无需轮询 一起来看看这是如何实现的
为提供证书或身份数据 此处已添加一组资产
证书使用 PEM 或 DER 数据格式
身份使用 PKCS #12 格式 或者可以通过自动化证书管理环境 或简单证书注册协议协议提供 该过程在可用的情况下 使用了硬件绑定密钥
若需报告通过资产安装的 每个证书或身份 还可以使用新的状态项 下面来看几个示例
此示例中的资产将安装一个证书
参考详细信息提供了一个 将实际证书数据传递给设备的 URL
第二个示例显示的是通过 自动化证书管理环境服务器提供身份的资产
此示例的参考详细信息提供了一个 递送 JSON 文档的 URL 该 JSON 文档中含有 自动化证书管理环境协议 交换所需的属性 下面是自动化证书管理环境属性 JSON 文档的一个示例
目录 URL 指的是 自动化证书管理环境服务器的 URL 这里的一组属性可以定义 生成的密钥类型 还有一组属性用于生成的证书
下面介绍一下状态 此示例显示了一个带有 两个证书的状态数组项 每个项目包括相关联资产的 声明标识符、DER 编码的证书数据 以及证书是否与身份对应的 指示符
有了证书和身份的资产之后 它们在新的配置 和现有的配置中 都可以使用
首先 我们有两种新的配置 它们都可用于安装独立的证书和身份 两种配置都是引用凭证资产 来提供实际的证书或身份数据的
证书配置会将单个证书 安装到钥匙串中 如果是自签名证书 并且源于证书颁发机构 那么它也会被添加到信任存储中
身份配置会将单个身份 安装到钥匙串中
这些配置适用于 所有平台
我们还提供了一个 用于部署企业密钥的配置
WWDC22 上发布了密钥 可作为登录网站和 App 时 不使用密码的解决方案 在新版本中 我们的解决方向变为 通过确保只有授权的设备和用户 才能调配密钥 从而让企业更轻松地部署密钥
为实现这一点 我们引入了一个新的 企业密钥证明配置 当用户访问配置指定的任何站点时 该配置可以为设备上的用户 生成一个安全的密钥
该配置引用了身份资产
然后该身份会用于对生成的密钥 执行标准 WebAuthn 证明 WebAuthn 依赖方可以验证此证明 并允许访问相关站点 因此 管理员可以限制某些密钥 只能用于受监管设备
此功能适用于 macOS、iOS 以及 iPadOS 平台
若想了解移动设备管理服务器 和依赖方 如何协同工作 来实现此流程的详细信息 请观看讲座“在工作中部署密钥” 最后 为支持 S/MIME 邮件和 Exchange 帐户配置 已经更新 从而实现了 与其移动设备管理配置文件 有效负载一致的功能
这些配置现在可以引用能用于 S/MIME 签名和加密的标识资产 该功能适用于 iOS 和 iPadOS
接下来是本次讲座的最后一项内容 我们开发了一个可以让你轻松地 从移动设备管理配置文件 过渡到配置的新功能
声明式设备管理 内置于移动设备管理中 并可以与移动设备管理同时使用 以便添加新的管理功能 这样你就可以逐步 过渡你的产品 在移动设备管理中实现 声明式设备管理非常简单 只需向设备发送移动设备管理 DeclarativeManagement 命令 并在设备上激活的一组声明之间 进行同步
服务器会查看传入的状态报告
为简化该转换过程 之前是 创建了一个遗留配置文件配置 旨在将现有的移动设备管理配置文件 作为配置发送 从而使配置文件能够充分利用 声明式设备管理的自主行为 和主动行为
所以首先要删除现有的 移动设备管理配置文件 然后发送并激活 安装相同配置文件的配置
这可能是一个破坏性的过程 造成帐户等相关内容不得不刷新所有数据 或者会留下管理缺口 让设备在短时间内失去了限制 移动设备管理开发者已提出过要求 他们需要一种更简单的方法 从使用移动设备管理配置文件 转为使用遗留配置文件配置 这个要求现在已得到了满足 下面介绍该方法是如何实现的 现在 无需删除配置文件 声明式设备管理 就可以支持接管已安装的设备配置文件 要使用该功能 服务器要做的就是 发送并激活一个配置 其中包含的配置文件要与移动设备管理 已经安装的配置文件一致 声明性设备管理系统无需重新安装 或更新该配置文件就可以直接接管 那样 声明性设备管理就有了该配置文件 移动设备管理将无法对其进行更改 配置文件管理的设备状态不会中断 而且不会出现管理缺口 这样 从移动设备管理过渡到 声明式设备管理就更轻松了
该功能适用于所有平台
今天讲座的最后一项内容就介绍到这儿 我们讲解了很多新版声明式设备管理中 激动人心的新功能 下面总结一下 有了基础要素的铺路 我们将新版本的重点放在了 如何利用声明式设备管理的强大功能 构建关键管理功能上
这些功能中有很多是 基于你的反馈研发出来的成果 我们对此表示感谢 随着声明式设备管理的不断发展 欢迎大家提出更多的反馈意见 这样我们才能知道 该优先考虑哪些你认为重要的功能
新的管理功能只需 添加到声明式设备管理即可 如果你还没有添加 那现在就可以 将新功能构建到你的产品中了 如果你已添加完成 新版本的各项新功能 会帮助你制作出更多 客户喜欢的优秀产品
若想了解此版本中 其他新管理功能的信息 可以观看讲座 “有关管理 Apple 设备的新功能” 新配置、资产和状态项的模式 可以在我们的开源模式存储库中找到 视频参考详细信息中含有链接
感谢你观看本期讲座 ♪ ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。