Certaines applications conçues pour les entreprises incluent des paramètres intégrés appelés configurations gérées que les administrateurs informatiques peuvent configurer à distance. Par exemple, une application peut avoir la possibilité de ne synchroniser les données que lorsqu'un appareil est connecté au Wi-Fi. Tous les ensembles de solutions nécessitent de donner aux administrateurs informatiques la possibilité de spécifier des configurations gérées et de les appliquer aux appareils. Il existe deux façons de gérer les configurations gérées dans votre console EMM:
- Créez votre propre interface utilisateur 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 appliquez des paramètres via
managedConfigurationTemplate
dans ApplicationPolicy
L'iFrame de configurations gérées est une interface utilisateur intégrable qui permet aux administrateurs informatiques d'enregistrer, de modifier et de supprimer les paramètres de configuration gérée d'une application. Par exemple, vous pouvez afficher un bouton (ou un élément d'interface utilisateur similaire) sur la page d'informations ou de paramètres d'une application qui ouvre l'iFrame.
Actions disponibles pour les administrateurs informatiques dans l'iFrame
Définir et enregistrer des profils de configuration
L'iFrame récupère et affiche le schéma des configurations gérées pour une application spécifiée. Dans l'iFrame, un administrateur informatique peut définir les configurations et les enregistrer en tant que profil de configuration. Chaque fois qu'un administrateur informatique enregistre un nouveau profil de configuration, l'iFrame renvoie un identifiant unique appelé mcmId
.
Cela permet aux administrateurs informatiques de créer plusieurs profils pour la même application.
Modifier les profils de configuration
L'iFrame est capable d'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 de l'iFrame. Cette fonctionnalité est désactivée par défaut.
Ajouter l'iFrame à votre console
Générer un jeton Web
Utilisez enterprises.webTokens.create
pour générer un jeton Web qui identifie l'entreprise, puis définissez iframeFeature
sur MANAGED_CONFIGURATIONS
. Vous devez inclure le jeton renvoyé ainsi que d'autres paramètres lors de l'affichage de l'iFrame dans votre console.
Afficher l'iFrame
Voici un exemple d'affichage de l'iFrame de 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 iFrame.
Paramètres | Obligatoire | Description |
---|---|---|
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é. |
canDelete |
Non | Si la valeur est TRUE, active un bouton dans l'iFrame qui permet aux administrateurs informatiques de supprimer le profil de configuration gérée. Si la valeur est FALSE (valeur par défaut), le bouton est désactivé. |
locale |
Non | Balise BCP 47 correctement formatée, utilisée pour localiser le contenu dans l'iFrame. Si aucune valeur n'est spécifiée, 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énement | Description |
---|---|
onconfigupdated |
L'utilisateur met à jour un profil de configuration géré existant ou en crée un. 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é existant. Cette opération 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 configuration géré d'une application
Si le développeur met à jour le schéma de configuration géré d'une application, les profils de configuration enregistrés sont automatiquement mis à jour. Par exemple, si le développeur supprime une option, elle sera supprimée de tous les profils de configuration existants pour l'application. Si le développeur ajoute une option, la valeur par défaut de l'option (définie par le développeur) sera ajoutée à tous les profils de configuration existants pour l'application.
Appliquer des profils de configuration aux stratégies
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 de 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 lorsqu'ils n'en ont pas besoin. Il s'agit d'un changement par rapport au comportement précédent et peut avoir un impact sur les restrictions envoyées à 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ésactivation, et ce à quoi les développeurs peuvent s'attendre dans le cadre de leur configuration gérée.
Utiliser la valeur par défaut pour une restriction d'application
Si les restrictions d'application de type bool, choice, integer, multi-select ou string sont fournies avec une valeur par défaut, celle-ci est appliquée en tant que valeur de la restriction d'application lorsque les administrateurs enregistrent la configuration gérée sans appliquer de modification à 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 d'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 d'application
Si les restrictions d'application de type bool, choice, integer, multi-select ou string ne sont pas fournies avec une valeur par défaut, elles ne sont pas incluses lorsque les administrateurs enregistrent la configuration gérée sans appliquer de modification à cette restriction.
Par exemple, avec le schéma de restriction d'application suivant:
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
Les restrictions d'applications envoyées à l'appareil seront les suivantes:
"restrictions": [
// Empty
]
Utiliser des bundles dans votre schéma
Cette section s'applique aux restrictions d'application du bundle:
Avoir au moins une restriction d'application enfant avec une valeur par défaut dans une restriction d'application d'app bundle
Si au moins une des restrictions d'application enfants de type bool, choice, integer, multi-select ou string est fournie dans la restriction d'application bundle, elle est appliquée en tant que valeur de la restriction d'application. Si les administrateurs enregistrent la configuration gérée sans appliquer de modifications à cette restriction d'application, celle-ci sera appliquée en tant que valeur de la restriction d'application.
"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 d'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 pour les applications enfants sans valeurs par défaut
Si, dans la restriction d'application bundle, toutes les restrictions d'applications enfants de type bool, choice, integer, multi-select ou string ne sont pas fournies avec une valeur par défaut, la restriction d'application du bundle n'est pas incluse lorsque les administrateurs enregistrent la configuration gérée sans appliquer de modifications à 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 d'applications envoyées à l'appareil seront les suivantes:
"restrictions": [
// Empty
]
Utiliser bundle_array dans votre schéma
Cette section s'applique aux restrictions d'application bundle_array. Cela n'est pas pertinent si les restrictions des applications enfants de type bool, choice, integer, multi-select ou string 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
}
}]
}]
}]
Avoir au moins un groupe de bundles dans la restriction d'application bundle_array
Si au moins un groupe de bundles est défini, la restriction d'application bundle_array sera incluse lorsque les administrateurs enregistrent la configuration gérée.
Les restrictions d'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 bundles est enregistré, tous les groupes/restrictions de l'ensemble du bundle_array
seront définis selon la priorité suivante:
- la valeur choisie par l'administrateur
- la valeur par défaut indiquée pour ce bundle/restriction.
- la valeur affichée dans l'iFrame s'il n'existe aucune valeur par défaut ;
Aucun groupe de bundles dans la restriction d'application bundle_array
La restriction d'application bundle_array ne sera pas incluse lorsque les administrateurs enregistrent la configuration gérée sans ajouter de groupe. Les restrictions d'applications envoyées à l'appareil seront les suivantes:
"restrictions": [
// Empty
]