Cómo admitir configuraciones administradas

Algunas aplicaciones diseñadas para empresas incluyen una configuración integrada llamada administrada de configuración que los administradores de TI pueden configurar de forma remota. Por ejemplo, una app puede tienen la opción de sincronizar los datos solo cuando un dispositivo está conectado a Wi-Fi. Proporcionando Los administradores de TI pueden especificar parámetros de configuración administrados y aplicarlos a dispositivos es un requisito para todos los conjuntos de soluciones. Existen dos formas de admitir parámetros de configuración administrados en tu consola de EMM:

  • Crea tu propia IU y aplica la configuración a través de managedConfiguration en ApplicationPolicy.
  • Agrega el iframe de configuraciones administradas a tu consola (instrucciones detalladas a continuación) y aplica la configuración a través de managedConfigurationTemplate en ApplicationPolicy


El iframe de configuraciones administradas es una IU incorporable que permite a los administradores de TI guardar, editar y borrar los parámetros de configuración administrados de una app Puedes, por Por ejemplo, muestra un botón (o un elemento de la IU similar) en los detalles o de configuración que abre el iframe.

Acciones disponibles para los administradores de TI desde el iframe

iframe de MCM
Figura 1: Ejemplo de iframe de configuraciones administradas para Gmail.

Establece y guarda perfiles de configuración

El iframe recupera y muestra el esquema de configuraciones administradas de un la app especificada. En el iframe, un administrador de TI puede establecer los parámetros de configuración y guardar con ellos como un perfil de configuración. Cada vez que un administrador de TI guarda un nuevo perfil de configuración, el iframe muestra un identificador único llamado mcmId. Esto permite que los administradores de TI creen varios perfiles para el mismo .

Editar perfiles de configuración

El iframe puede mostrar los perfiles de configuración guardados. Los administradores de TI pueden actualizar la configuración de un perfil y guardar los cambios.

Borrar perfiles de configuración

Los administradores de TI pueden borrar los perfiles de configuración del iframe. Esta función es inhabilitado de forma predeterminada.

Agrega el iframe a tu consola

Genera un token web

Usa enterprises.webTokens.create. para generar un token web que identifique la empresa y establezca iframeFeature como MANAGED_CONFIGURATIONS Debes incluir el token devuelto, junto con otros cuando renderizas el iframe en tu consola.

Procesa el iframe

Este es un ejemplo de cómo renderizar el iframe de configuraciones administradas:

<script src="https://apis.google.com/js/api.js"></script>
<div id="container" style="width: 1000px; height: 1000px"></div>
<script>
  gapi.load('gapi.iframes', function() {
    var options = {
      'url': 'https://play.google.com/managed/mcm?token=web_token&packageName=app_package_name',
      'where': document.getElementById('container'),
      'attributes': { style: 'height:1000px', scrolling: 'yes'}
    }

    var iframe = gapi.iframes.getContext().openChild(options);
  });
</script>

Parámetros de URL

La siguiente tabla incluye todos los parámetros disponibles para la URL del iframe.

ParámetroObligatorioDescripción
token El token que muestra Enterprises.createWebToken.
packageName Es el ID del producto de la app. Por ejemplo: com.google.android.gm
mcmId No El ID de un perfil de configuración administrado.
canDelete No Si es TRUE, habilita un botón en el iframe que le permite al equipo de TI para que los administradores borren el perfil de configuración administrado. Si FALSE (valor predeterminado), el botón está inhabilitado.
locale No Un modelo con formato BCP 47 idioma que se usa para localizar el contenido en el iframe. Si no es así si especificas, el valor predeterminado es en_US.

Eventos de iframe

También debes controlar los siguientes eventos como parte de tu integración.

EventoDescripción
onconfigupdated El usuario actualiza un perfil de configuración administrado existente o crea un nuevo uno. Se muestra un objeto que contiene lo siguiente:
{
  "mcmId": The ID of the managed configurations profile.
  "name": The name of the updated or newly created managed configurations profile.
}
onconfigdeleted El usuario borra un perfil de configuración administrado existente. Esto devuelve un objeto que contiene lo siguiente:
{
  "mcmId": The ID of the managed configurations profile.
}

En el siguiente ejemplo, se muestra cómo escuchar onconfigupdated:

iframe.register('onconfigupdated', function(event) {
  console.log(event);
}, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);

Actualizaciones del esquema de configuraciones administradas de una app

Si el desarrollador actualiza el esquema de configuración administrada de una app, los perfiles de configuración se actualizan automáticamente. Por ejemplo, si el desarrollador quita una opción, esta se quitará de todos los parámetros de configuración perfiles para la app. Si el desarrollador agrega una opción, el valor predeterminado de la (definida por el desarrollador) se agregará a todos los parámetros de perfiles para la app.

Aplica perfiles de configuración a la política

Cada perfil de configuración se guarda como un mcmId único. Para aplicar un de configuración de Terraform a una política, especifica mcmId en managedConfigurationTemplate


Comprender el comportamiento de seleccionar y anular la selección

El iframe de configuraciones administradas ahora permite que los administradores de TI anulen la selección de forma explícita las restricciones de apps de una configuración administrada cuando no se necesitan. Esta es un cambio en el comportamiento anterior y puede afectar las restricciones se enviarán a tu app según la selección del administrador.

En la siguiente sección, se describe cómo se comporta el iframe de configuraciones administradas con este nuevo patrón de anulación de selección y lo que los desarrolladores pueden esperar que se envíen como parte del su configuración administrada.

Usa el valor predeterminado para una restricción de apps

Si la app restringe con el tipo bool, ocurrirá lo siguiente: elección, integer, selección múltiple o cadena se proporcionan con un valor predeterminado, este se aplicará como el valor de la restricción de la app cuando los administradores guardan la configuración administrada sin aplicar cambios en esa restricción de la app.

Por ejemplo, con el siguiente esquema de restricciones de apps:

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool",
    "defaultValue": {
        "type": "bool",
        "valueBool": false
    }
}]

Las restricciones de apps que se envían al dispositivo serán las siguientes:

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool",
    "value": {
        "type": "bool",
        "valueBool": false
    }
}]

Sin usar los valores predeterminados para las restricciones de apps

Si la app restringe con el tipo bool, ocurrirá lo siguiente: elección, integer, selección múltiple o cadena no se proporcionan con un valor predeterminado, estas restricciones de aplicaciones no se se incluye cuando los administradores guardan la configuración administrada sin aplicar ningún cambio en esa restricción de app.

Por ejemplo, con el siguiente esquema de restricciones de apps:

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool"
    // defaultValue absent.
}]

Las restricciones de apps que se envían al dispositivo serán las siguientes:

"restrictions": [
    // Empty
]

Usa paquetes en tu esquema

Esta sección se aplica al paquete restricciones de apps:

Tener al menos una restricción de apps secundarias con un valor predeterminado en una restricción de app de paquete

Si forma parte del paquete restricción de apps al menos una de las restricciones de apps secundarias con el tipo bool; opción, número entero, selección múltiple o cadena se proporcionan con un valor predeterminado, este se aplicará como el de la restricción de apps y se excluirán los que no tengan valores predeterminados cuando los administradores guardan la configuración administrada sin aplicarle ningún cambio restricción de apps.

"restrictions": [{
    "key": "bundle_key",
    "restrictionType": "bundle",
    "nestedRestriction": [{
            "key": "bool_key_1",
            "restrictionType": "bool",
            "defaultValue": {
                "type": "bool",
                "valueBool": false
            }
        },
        {
            "key": "bool_key_2",
            "restrictionType": "bool"
            // defaultValue absent.
        }
    ]
}]

Las restricciones de apps que se envían al dispositivo serán las siguientes:

"restrictions": [{
    "key": "bundle_key",
    "restrictionType": "bundle",
    "nestedRestriction": [{
            "key": "bool_key_1",
            "restrictionType": "bool",
            "value": {
                "type": "bool",
                "valueBool": false
            }
        },
        // The bool_key_2 child app restriction is not included.
    ]
}]

Todas las restricciones de apps secundarias sin valores predeterminados

Si forma parte del paquete restricción de apps todas las restricciones de apps secundarias con tipo bool, opción, número entero, selección múltiple o cadena no se proporcionan con un valor predeterminado, el paquete no se incluirá la restricción de apps cuando los administradores guarden la configuración administrada sin aplicar cambios en esa restricción de la app.

Por ejemplo, con el siguiente esquema de restricciones de apps:

"restrictions": [{
    "key": "bundle_key",
    "restrictionType": "bundle",
    "nestedRestriction": [{
            "key": "bool_key_1",
            "restrictionType": "bool",
            // defaultValue absent.
        },
        {
            "key": "bool_key_2",
            "restrictionType": "bool"
            // defaultValue absent.
        }
    ]
}]

Las restricciones de apps que se envían al dispositivo serán las siguientes:

"restrictions": [
    // Empty
]

Usa bundle_array en el esquema

Esta sección se aplica a bundle_array. restricciones de la app. No es relevante si la app secundaria establece restricciones de tipo. bool: elección, integer, selección múltiple o cadena tienen valores predeterminados.

Por ejemplo, con el siguiente esquema de restricciones de apps:

"restrictions": [{
    "key": "bundle_array_key",
    "restrictionType": "bundleArray",
    "nestedRestriction": [{
        "key": "bundle_key",
        "restrictionType": "bundle",
        "nestedRestriction": [{
            "key": "bool_key",
            "restrictionType": "bool",
            "defaultValue": {
                "type": "bool",
                "valueBool": true
            }
        }]
    }]
}]

Tienes al menos un grupo de paquetes en la restricción de apps bundle_array

Si hay al menos un paquete está configurado, el atributo bundle_array restricción de apps se incluirá cuando los administradores guarden la configuración administrada.

Las restricciones de apps que se envían al dispositivo serán las siguientes:

"restrictions": [{
    "key": "bundle_array_key",
    "restrictionType": "bundleArray",
    "nestedRestriction": [{
        "key": "bundle_key",
        "restrictionType": "bundle",
        "nestedRestriction": [{
            "key": "bool_key",
            "restrictionType": "bool",
            "value": {
                "type": "bool",
                "valueBool": true
            }
        }]
    }]
}]

Si se guarda una restricción o un grupo de paquetes, todas las restricciones o los paquetes en todo el bundle_array se establecerá según la siguiente prioridad:

  • el valor elegido por el administrador
  • el valor predeterminado que se muestra para ese paquete o restricción.
  • el valor que se muestra en el iFrame si no hay un valor predeterminado

No hay grupos de paquetes en la restricción de apps bundle_array

El atributo bundle_array no se incluirá la restricción de apps cuando los administradores guarden la configuración administrada sin agregar un paquete grupo. Las restricciones de apps que se envían al dispositivo serán las siguientes:

"restrictions": [
    // Empty
]