管理员 MDM 设置
RedirectWeb 支持 Apple 的“托管应用配置”(Managed App Configuration),允许您(IT 管理员)通过移动设备管理(MDM)解决方案(如 Jamf、Intune、Kandji 等),在员工/学生的设备上集中部署和管理应用设置。
本页面概述了可配置的键、应用行为、最佳实践和局限性。
概述
通过 MDM 推送配置,您可以实现以下目标:
- 强制规则: 应用组织范围内的重定向规则,用户无法修改或删除。
- 初始规则分发: 分发一组模板规则,作为应用首次启动时的默认规则。
- UI 控制: 限制对特定功能(如库)的访问,并在应用内清楚地指示其处于组织管理之下。
- 大规模规则获取(回退): 通过从外部服务器获取规则,绕过 MDM 负载大小限制。
使用场景
- 系统迁移期间的无缝路由:
当从旧的内部系统(例如
legacy-crm.internal.local)迁移到新平台(例如salesforce.com)时,分发enforcedRuleSet。即使员工使用旧的书签,他们也会自动重定向到新系统,从而消除有关过期链接的 IT 支持工单。 - 内网访问辅助: 分发使用自定义 URL 方案的重定向规则,以便通过按应用 VPN 隧道(如 Omnissa Web)访问内网资源。
注意
MDM 配置推送仅在用户打开 RedirectWeb 应用时立即应用。 虽然该应用利用后台任务静默地将 MDM 更新推送到浏览器扩展,但这是由操作系统决定的“尽力而为”执行。执行时机高度不可预测,任务可能根本不会运行。 因此,不应依赖此功能进行时间紧迫的事件响应(例如,在云服务中断后几分钟内尝试立即将所有员工重定向到备份站点)。
演示
视频中使用的 plist 文件可在此处获取:sample-mdm.plist
在视频中,使用了 ManageEngine 的 MDM 来部署配置,但只要支持 Apple 的“托管应用配置”,同样的配置也可以用于其他 MDM 解决方案。
可配置键
通过您的 MDM 控制台部署以下用于“托管应用配置”的键和值,通常采用 plist 格式。
| 键名 | 类型 | 描述 |
|---|---|---|
enforcedRuleSet | 规则集 | [强制规则] 以高于普通规则的优先级应用的规则集。列表中的第一个规则优先。用户无法编辑、删除或重新排序这些规则。它们始终处于活动状态,忽略应用的全局禁用开关,并且不会通过 iCloud 同步。 |
prefilledRuleSet | 规则集 | [初始规则] 当用户首次启动应用且没有现有规则时,用于代替默认示例规则创建的规则集。一旦分发,这些规则将作为普通规则使用,允许用户修改、删除和进行 iCloud 同步。 |
organizationName | String | 在应用内设置屏幕顶部显示“由 [organizationName] 管理”,向用户指示该应用受管理。 |
managedConfigVersion | String | 配置的任意版本字符串。显示在 UI 中,允许 IT 支持人员在排除故障时验证最新的 MDM 负载是否已到达设备。 |
showsLibrarySection | Boolean | 如果设置为 false,则隐藏“规则库”功能,并用“受组织限制”错误消息替换该部分。 |
fallback | 回退 | 当配置超出 MDM 负载限制时指定此项。应用将从该 URL 获取 JSON/XML 以应用配置。 |
这些键均为可选。
[对象] 规则集
每个规则对象的格式与您可以通过应用共享/导出的格式相同,但您需要将其从 JSON 转换为 plist,如下所示:
...
<key>enforcedRuleSet</key>
<dict>
<key>kind</key>
<string>RedirectList</string>
<key>bundleID</key>
<string>io.github.mshibanami.RedirectWebForSafari</string>
<key>formatVersion</key>
<string>5</string>
<key>redirects</key>
<array>
<dict>
<key>kind</key>
<string>Redirect</string>
<key>type</key>
<string>originalRedirect</string>
<key>title</key>
<string>My enforced Rule</string>
<key>sourceURLPattern</key>
<dict>
<key>type</key>
<string>wildcard</string>
<key>value</key>
<string>https://example.com/1</string>
</dict>
<key>destinationURLPattern</key>
<string>https://google.com/search?q=1</string>
</dict>
</array>
</dict>
...
[对象] 回退
| 键名 | 类型 | 描述 |
|---|---|---|
fallbackDataURL | String (URL) | 包含规则集的 JSON/XML 文件的端点 URL。 |
authToken | String | 从 fallbackDataURL 获取时附加到 HTTP 标头的身份验证令牌。(用作 Authorization: Bearer [authToken])。 |
规则评估与冲突解决
- 如果提供了
enforcedRuleSet,其规则将以绝对优先级应用。 - 如果没有普通规则但存在
prefilledRuleSet,则prefilledRuleSet将保存为普通规则。 - 仅当未配置 MDM 规则且没有普通规则时,才会生成默认的“示例重定向规则”。
回退 URL 行为
当内联 MDM 负载和通过 fallbackDataURL 获取的数据中同时存在某个键时,应用按如下方式处理冲突:
- 获取完成前: 内联设置被严格优先考虑并使用。
- 成功获取后: 从
fallbackDataURL检索的数据将覆盖相应的内联设置。 - 获取失败后: 应用继续使用内联设置。
- 仅存在于内联负载中的独立键将被保留。
MDM 反馈和状态检查
如果您的 MDM 解决方案支持,您可以通过 MDM 反馈通道 (com.apple.feedback.managed) 验证配置是否应用成功。在处理配置(或完成 URL 获取)后,应用将返回以下数据:
managedConfigVersion: 配置尝试的版本字符串。result:success或error。messages: 包含详细错误或警告消息(如果适用)的数组。