Compatibilité avec les configurations gérées

Certaines applications conçues pour les entreprises comportent des paramètres intégrés appelés applications gérées de configuration que les administrateurs informatiques peuvent configurer à distance. Par exemple, une application peut proposent la possibilité de ne synchroniser les données que lorsqu'un appareil est connecté au Wi-Fi. Fournir Les administrateurs informatiques peuvent spécifier des configurations gérées et les appliquer à est obligatoire pour tous les ensembles de solutions. Il existe deux façons de prendre en charge les configurations gérées dans votre console EMM:

  • Créez votre propre UI et appliquez les paramètres via managedConfiguration dans ApplicationPolicy :
  • Ajoutez l'iFrame de configurations gérées à votre console (instructions détaillées ci-dessous) et appliquer les paramètres via managedConfigurationTemplate dans ApplicationPolicy


L'iFrame de configurations gérées est une interface utilisateur intégrable qui permet aux administrateurs informatiques enregistrer, modifier et supprimer les paramètres de configuration gérée d'une application. Vous pouvez, par exemple, afficher un bouton (ou un élément d'interface utilisateur similaire) dans les détails d'une application ou qui ouvre l'iFrame.

Actions disponibles pour les administrateurs informatiques depuis l'iFrame

<ph type="x-smartling-placeholder">
</ph> iFrame CM <ph type="x-smartling-placeholder">
</ph> Figure 1. Exemple d'iFrame de configurations gérées pour Gmail

Définir et enregistrer des profils de configuration

L'iFrame récupère et affiche le schéma des configurations gérées pour l'application spécifiée. Dans l'iFrame, un administrateur informatique peut définir des configurations et enregistrer en tant que profil de configuration. Chaque fois qu'un administrateur informatique enregistre profil de configuration, l'iFrame renvoie un identifiant unique appelé mcmId. Les administrateurs informatiques peuvent ainsi créer plusieurs profils pour le même l'application.

Modifier les profils de configuration

L'iFrame peut afficher les profils de configuration enregistrés. Les administrateurs informatiques peuvent mettre à jour les paramètres d’un profil et enregistrer leurs modifications.

Supprimer des profils de configuration

Les administrateurs informatiques peuvent supprimer des profils de configuration depuis l'iFrame. Cette fonctionnalité est sont désactivées par défaut.

Ajouter l'iFrame à votre console

Générer un jeton Web

Utiliser enterprises.webTokens.create pour générer un jeton Web qui identifie l'entreprise, et définir iframeFeature sur MANAGED_CONFIGURATIONS Vous devez inclure le jeton renvoyé, ainsi que d'autres lors de l'affichage de l'iFrame dans votre console.

Afficher l'iFrame

Voici un exemple d'affichage de l'iFrame des configurations gérées:

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

Paramètres d'URL

Le tableau ci-dessous liste tous les paramètres disponibles pour l'URL du cadre iFrame.

ParamètreObligatoireDescription
token Oui Jeton renvoyé par Enterprises.createWebToken.
packageName Oui ID produit de l'application. Par exemple : com.google.android.gm
mcmId Non ID d'un profil de configuration gérée.
canDelete Non Si la valeur est TRUE, active un bouton dans l'iFrame qui permet au service informatique aux administrateurs de supprimer le profil des configurations gérées. Si FALSE (valeur par défaut) : le bouton est désactivé.
locale Non Une structure BCP 47 language utilisée pour localiser le contenu dans l'iFrame. Si ce n'est pas le cas spécifié, la valeur par défaut est en_US.

Événements iFrame

Vous devez également gérer les événements suivants dans le cadre de votre intégration.

ÉvénementDescription
onconfigupdated L'utilisateur met à jour un profil de configuration gérée existant ou en crée un. 1. Cette opération renvoie un objet contenant:
{
  "mcmId": The ID of the managed configurations profile.
  "name": The name of the updated or newly created managed configurations profile.
}
onconfigdeleted L'utilisateur supprime un profil de configuration gérée existant. Cela renvoie un objet contenant:
{
  "mcmId": The ID of the managed configurations profile.
}

L'exemple ci-dessous montre comment écouter onconfigupdated:

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

Mises à jour du schéma de configurations gérées d'une application

Si le développeur met à jour le schéma de configuration gérée d'une application, les profils de configuration sont automatiquement mis à jour. Par exemple, si le développeur supprime une option, l'option est supprimée de toutes les configurations pour l'application. Si le développeur ajoute une option, la valeur par défaut du paramètre (définie par le développeur) sera ajoutée à toutes les configurations existantes. pour l'application.

Appliquer des profils de configuration à la stratégie

Chaque profil de configuration est enregistré en tant que mcmId unique. Pour appliquer un profil de configuration à une règle, spécifiez mcmId dans managedConfigurationTemplate


Comprendre le comportement de sélection/désélection

L'iFrame des configurations gérées permet désormais aux administrateurs informatiques de désélectionner explicitement les restrictions d'application d'une configuration gérée quand elles n'en ont pas besoin. Ce est un changement par rapport au comportement antérieur et peut avoir un impact sur les restrictions sont envoyés à votre application en fonction de la sélection de l'administrateur.

La section ci-dessous décrit le comportement de l'iFrame de configurations gérées avec ce nouveau modèle de désélection et ce que les développeurs peuvent espérer recevoir leur configuration gérée.

Utiliser la valeur par défaut pour une restriction d'application

Si les restrictions de l'application sont de type bool, choice, entier, sélection multiple ou chaîne sont fournies avec une valeur par défaut, celle-ci est appliquée de restriction d'application lorsque les administrateurs enregistrent la configuration gérée si vous modifiez cette restriction d'application.

Par exemple, avec le schéma de restriction d'application suivant:

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

Les restrictions des applications envoyées à l'appareil seront les suivantes:

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

Sans utiliser les valeurs par défaut pour les restrictions des applications

Si les restrictions de l'application sont de type bool, choice, entier, sélection multiple ou chaîne ne sont pas fournies avec une valeur par défaut, ces restrictions de l'application inclus lorsque les administrateurs enregistrent la configuration gérée sans appliquer les modifications sur cette restriction d'application.

Par exemple, avec le schéma de restriction d'application suivant:

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

Les restrictions des applications envoyées à l'appareil seront les suivantes:

"restrictions": [
    // Empty
]

Utiliser des groupes dans votre schéma

Cette section concerne les lots. restrictions des applications:

Avoir au moins une restriction d'application enfant avec une valeur par défaut dans une restriction d'application de bundle

Si vous êtes dans le lot une restriction d'application de type bool au moins une des restrictions d'application enfant ; choice, entier, sélection multiple ou chaîne sont fournies avec une valeur par défaut, celle-ci est appliquée de la restriction de l'application et celles sans valeur par défaut seront exclues Lorsque les administrateurs enregistrent la configuration gérée sans y apporter de modifications. une restriction liée aux applications.

"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.
        }
    ]
}]

Les restrictions des applications envoyées à l'appareil seront les suivantes:

"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.
    ]
}]

Toutes les restrictions des applications enfants sans valeurs par défaut

Si vous êtes dans le lot restriction d'application toutes les restrictions d'applications enfants avec le type bool, choice, entier, sélection multiple ou chaîne ne sont pas fournis avec une valeur par défaut, le lot La restriction d'application ne sera pas incluse lorsque les administrateurs enregistreront la configuration gérée sans modifier cette restriction d'application.

Par exemple, avec le schéma de restriction d'application suivant:

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

Les restrictions des applications envoyées à l'appareil seront les suivantes:

"restrictions": [
    // Empty
]

Utiliser bundle_array dans votre schéma

Cette section s'applique à bundle_array. les restrictions de l'application. Cela n'a pas d'importance si les restrictions de l'application enfant associées au type bool, choice, entier, sélection multiple ou chaîne ont des valeurs par défaut.

Par exemple, avec le schéma de restriction d'application suivant:

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

La restriction d'application bundle_array doit comporter au moins un groupe de bundle

Si au moins un lot est défini, bundle_array une restriction liée aux applications sera incluse lorsque les administrateurs enregistreront la configuration gérée.

Les restrictions des applications envoyées à l'appareil seront les suivantes:

"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 une restriction ou un groupe de groupes est enregistré, toutes les restrictions/tous les groupes dans l'ensemble du bundle_array sera défini par la priorité suivante:

  • la valeur choisie par l'administrateur
  • la valeur par défaut indiquée pour ce groupe ou cette restriction.
  • la valeur affichée dans le cadre iFrame s'il n'y a pas de valeur par défaut ;

Aucun groupe de bundle dans la restriction d'application bundle_array

bundle_array La restriction d'application ne sera pas incluse lorsque les administrateurs enregistreront la configuration gérée sans ajouter de lot groupe. Les restrictions des applications envoyées à l'appareil seront les suivantes:

"restrictions": [
    // Empty
]