跳到主要内容

管理员 MDM 设置

支持平台: iOS | visionOS

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 同步。
organizationNameString在应用内设置屏幕顶部显示“由 [organizationName] 管理”,向用户指示该应用受管理。
managedConfigVersionString配置的任意版本字符串。显示在 UI 中,允许 IT 支持人员在排除故障时验证最新的 MDM 负载是否已到达设备。
showsLibrarySectionBoolean如果设置为 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>
...

[对象] 回退

键名类型描述
fallbackDataURLString (URL)包含规则集的 JSON/XML 文件的端点 URL。
authTokenStringfallbackDataURL 获取时附加到 HTTP 标头的身份验证令牌。(用作 Authorization: Bearer [authToken])。

规则评估与冲突解决

  1. 如果提供了 enforcedRuleSet,其规则将以绝对优先级应用。
  2. 如果没有普通规则但存在 prefilledRuleSet,则 prefilledRuleSet 将保存为普通规则。
  3. 仅当未配置 MDM 规则且没有普通规则时,才会生成默认的“示例重定向规则”。

回退 URL 行为

当内联 MDM 负载和通过 fallbackDataURL 获取的数据中同时存在某个键时,应用按如下方式处理冲突:

  • 获取完成前: 内联设置被严格优先考虑并使用。
  • 成功获取后:fallbackDataURL 检索的数据将覆盖相应的内联设置。
  • 获取失败后: 应用继续使用内联设置。
  • 仅存在于内联负载中的独立键将被保留。

MDM 反馈和状态检查

如果您的 MDM 解决方案支持,您可以通过 MDM 反馈通道 (com.apple.feedback.managed) 验证配置是否应用成功。在处理配置(或完成 URL 获取)后,应用将返回以下数据:

  • managedConfigVersion: 配置尝试的版本字符串。
  • result: successerror
  • messages: 包含详细错误或警告消息(如果适用)的数组。