Saltar al contenido principal

Configuración de MDM para administradores

RedirectWeb es compatible con la Configuración de aplicaciones gestionadas (Managed App Configuration) de Apple, lo que les permite a ustedes (administradores de TI) implementar y gestionar los ajustes de la aplicación de forma centralizada en los dispositivos de empleados/estudiantes a través de una solución de Gestión de dispositivos móviles (MDM), como Jamf, Intune, Kandji, etc.

Esta página describe las claves configurables, los comportamientos de la aplicación, las mejores prácticas y las limitaciones.

Descripción general

info

Para implementaciones de Apple Business Manager / Apple School Manager (VPP): La aplicación estándar RedirectWeb utiliza un modelo de compra desde la aplicación (In-App Purchase) de tipo "freemium", el cual no es elegible para compras por volumen de VPP. Para implementar la aplicación completamente desbloqueada en su organización, adquiera la aplicación RedirectWeb Pro, que es una versión de pago diseñada específicamente para la distribución a través de MDM/VPP.

Al enviar configuraciones a través de su MDM, puede lograr lo siguiente:

  • Reglas obligatorias: Aplique reglas de redirección para toda la organización que los usuarios no puedan modificar ni eliminar.
  • Distribución inicial de reglas: Distribuya un conjunto de reglas de plantilla que sirva como predeterminado en el primer inicio de la aplicación.
  • Control de la interfaz de usuario (UI): Restrinja el acceso a funciones específicas (como la Biblioteca) e indique claramente dentro de la aplicación que está bajo gestión organizacional.
  • Obtención de reglas grandes (Respaldo/Fallback): Evite los límites de tamaño de la carga útil de MDM obteniendo las reglas desde un servidor externo.

Casos de uso

  • Enrutamiento fluido durante migraciones de sistemas: Al migrar de un sistema interno heredado (por ejemplo, legacy-crm.internal.local) a una nueva plataforma (por ejemplo, salesforce.com), distribuya un enforcedRuleSet. Incluso si los empleados utilizan marcadores antiguos, serán redirigidos automáticamente al nuevo sistema, eliminando los tickets de soporte técnico de TI relacionados con enlaces desactualizados.
  • Asistencia para el acceso a la intranet: Distribuya reglas de redirección utilizando esquemas de URL personalizados para facilitar el acceso a los recursos de la intranet a través de túneles VPN por aplicación (Per-App VPN), como Omnissa Web.
aviso

Los cambios en la configuración de MDM se aplican inmediatamente solo si el usuario abre la aplicación RedirectWeb. Aunque la aplicación utiliza tareas en segundo plano para enviar actualizaciones de MDM a la extensión del navegador de forma silenciosa, esta es una ejecución de "mejor esfuerzo" dictada por el sistema operativo. El momento de ejecución es altamente impredecible y es posible que la tarea no se ejecute en absoluto. Por lo tanto, no se debe confiar en esta función para respuestas a incidentes críticos en los que el tiempo es esencial (por ejemplo, intentar redirigir instantáneamente a todos los empleados a un sitio de respaldo a los pocos minutos de una interrupción del servicio en la nube).

Demo

El archivo plist utilizado en el video está disponible como sample-mdm.plist, que utiliza claves de tipo Diccionario (<dict>). También está sample-mdm-json-string.plist, que utiliza claves de tipo Cadena JSON (JSON String) (los mismos datos).

En el video, se utilizó el MDM de ManageEngine para implementar la configuración, pero se puede utilizar la misma configuración para otras soluciones de MDM, siempre que sean compatibles con la Configuración de aplicaciones gestionadas (Managed App Configuration) de Apple.

nota

Diccionario frente a Cadena JSON: Aunque el tipo Diccionario es más seguro en cuanto a tipos, algunas soluciones de MDM (como Omnissa Workspace ONE UEM) no admiten el tipo Diccionario en la configuración de aplicaciones gestionadas. En tales casos, el uso del tipo Cadena JSON (JSON String) es una alternativa recomendada.

Claves configurables

Implemente las siguientes claves y valores para la Configuración de aplicaciones gestionadas a través de su consola MDM, generalmente en formato plist.

Nombre de la claveTipoDescripción
enforcedRuleSetRule SetUn conjunto de reglas que se aplica con mayor prioridad que las reglas normales. La primera regla de la lista tiene precedencia. Los usuarios no pueden editar, eliminar ni reordenar estas reglas. Siempre están activas, ignorando el interruptor de desactivación global de la aplicación, y no se sincronizan a través de iCloud.
enforcedRuleSetJSONStringJSON StringIgual que enforcedRuleSet, pero el conjunto de reglas se proporciona como una cadena JSON sin procesar. Esto es útil para las plataformas MDM que no admiten el tipo Diccionario en la configuración de aplicaciones gestionadas.
prefilledRuleSetRule SetUn conjunto de reglas que se crea en lugar de la regla de ejemplo predeterminada cuando un usuario inicia la aplicación por primera vez sin reglas existentes. Una vez distribuidas, estas actúan como reglas normales, permitiendo la modificación, eliminación y sincronización con iCloud por parte del usuario.
prefilledRuleSetJSONStringJSON StringIgual que prefilledRuleSet, pero el conjunto de reglas se proporciona como una cadena JSON sin procesar. Esto es útil para las plataformas MDM que no admiten el tipo Diccionario en la configuración de aplicaciones gestionadas.
organizationNameStringMuestra "Gestionado por [organizationName]" en la parte superior de la pantalla de ajustes de la aplicación, indicando al usuario que la aplicación está gestionada.
managedConfigVersionStringUna cadena de versión arbitraria para la configuración. Se muestra en la interfaz de usuario, lo que permite al soporte técnico de TI verificar si la última carga útil de MDM ha llegado al dispositivo durante la resolución de problemas.
showsLibrarySectionBooleanSi se establece en false, la función de Biblioteca de reglas se oculta y la sección se reemplaza por un mensaje de error que indica "Restringido por su organización".
fallbackFallbackEspecifique esto cuando se exceda el límite de tamaño de la carga útil de MDM. La aplicación obtendrá la configuración desde la URL especificada en fallbackDataURL.
fallbackJSONStringJSON StringIgual que fallback, pero la configuración de respaldo se proporciona como una cadena JSON sin procesar. Esto es útil para las plataformas MDM que no admiten el tipo Diccionario en la configuración de aplicaciones gestionadas.

Estas claves son todas opcionales.

Tipos de valores de configuración

Conjunto de reglas

Cada objeto de regla tiene el mismo formato que el que puede compartir/exportar a través de la aplicación, pero debe convertirlo de JSON a plist, de esta manera:

...
<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>
...

Respaldo (Fallback)

Nombre de la claveTipoDescripción
fallbackDataURLString (URL)Una URL de punto final de un archivo JSON/XML que contiene conjuntos de reglas.
authTokenStringUn token de autenticación que se añade al encabezado HTTP al realizar la obtención desde fallbackDataURL. (Se utiliza como Authorization: Bearer [authToken]).

Cadena JSON (JSON String)

Algunas plataformas MDM (por ejemplo, Omnissa Workspace ONE UEM) no admiten el tipo Diccionario (<dict>) en la configuración de aplicaciones gestionadas. Como alternativa, las claves que terminan en JSONString (como enforcedRuleSetJSONString, prefilledRuleSetJSONString y fallbackJSONString) aceptan los mismos datos que sus contrapartes de tipo Diccionario, pero codificados como una cadena JSON sin procesar dentro de un elemento <string> de plist.

La cadena JSON puede estar minificada o formateada con saltos de línea y sangría para facilitar su lectura, como se muestra en el siguiente ejemplo:

...
<key>enforcedRuleSetJSONString</key>
<string>{
"kind": "RedirectList",
"bundleID": "io.github.mshibanami.RedirectWebForSafari",
"formatVersion": "5",
"redirects": [
{
"kind": "Redirect",
"type": "originalRedirect",
"title": "My enforced Rule",
"sourceURLPattern": {
"type": "wildcard",
"value": "https://example.com/1"
},
"destinationURLPattern": "https://google.com/search?q=1"
}
]
}</string>
...
nota

Si están presentes tanto una clave de Diccionario como su clave JSONString correspondiente (por ejemplo, tanto enforcedRuleSet y enforcedRuleSetJSONString), la clave de Diccionario tiene prioridad.

Evaluación de reglas y resolución de conflictos

  1. Si se proporciona un enforcedRuleSet, sus reglas se aplican con prioridad absoluta.
  2. Si no hay reglas normales pero existe un prefilledRuleSet, el prefilledRuleSet se guarda como reglas normales.
  3. La "Regla de redirección de ejemplo" predeterminada se genera solo si no se han configurado reglas de MDM y no hay reglas normales.

Comportamiento de la URL de respaldo (Fallback)

Cuando una clave existe tanto en la carga útil de MDM en línea como en los datos obtenidos a través de fallbackDataURL, la aplicación gestiona el conflicto de la siguiente manera:

  • Antes de que se complete la obtención: Los ajustes en línea se priorizan estrictamente y se utilizan.
  • Después de una obtención exitosa: Los datos recuperados de la fallbackDataURL sobrescriben los ajustes en línea correspondientes.
  • Después de una obtención fallida: La aplicación continúa utilizando los ajustes en línea.
  • Claves independientes: Las claves que existen solo en la carga útil en línea se conservan siempre.

Comentarios de MDM y verificación de estado

Puede verificar si la configuración se aplicó con éxito a través del canal de comentarios de MDM (com.apple.feedback.managed) si su solución de MDM lo admite. Después de procesar la configuración (o completar la obtención de la URL), la aplicación devuelve los siguientes datos:

  • managedConfigVersion: La cadena de versión del intento de configuración.
  • result: Ya sea success o error.
  • messages: Un arreglo que contiene mensajes detallados de error o advertencia, si corresponde.