iFrame dans les configurations gérées

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.

Afficher l'iFrame des configurations gérées dans votre console

Générer un jeton Web

Utilisez Enterprises.createWebToken pour générer un jeton Web qui identifie l'entreprise. Vous devez inclure le paramètre ainsi que d'autres paramètres, lors de l'affichage de l'iFrame dans votre console. L'exemple suivant montre comment récupérer le jeton à l'aide de la méthode Google Bibliothèque cliente de l'API Play EMM pour Java.

public AdministratorWebToken getAdministratorWebToken(
    String enterpriseId,
    AdministratorWebTokenSpec tokenSpec) throws IOException {
  return androidEnterprise
     .enterprise()
     .createWebToken(enterpriseId, tokenSpec)
     .execute();
}

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 les configurations gérées aux applications appareils

Pour découvrir comment appliquer des configurations gérées aux pour en savoir plus, consultez Appliquer des configurations gérées


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 une restriction d'application, toutes les restrictions des applications enfants de 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'est pas pertinent si les restrictions de l'application enfant de 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
            }
        }]
    }]
}]

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
]