iFrame für verwaltete Konfigurationen

Der iFrame für verwaltete Konfigurationen ist eine einbettbare Benutzeroberfläche, mit der IT-Administratoren die verwalteten Konfigurationseinstellungen einer App speichern, bearbeiten und löschen können. Sie können beispielsweise auf der Detailseite einer App eine Schaltfläche oder ein ähnliches UI-Element einblenden, über das der iFrame geöffnet wird.

Aktionen, die IT-Administratoren über den iFrame zur Verfügung stehen

CM-iFrame
Abbildung 1: Beispiel für einen iFrame von verwalteten Konfigurationen für Gmail

Konfigurationsprofile festlegen und speichern

Mit dem iFrame wird das Schema der verwalteten Konfigurationen für eine angegebene App abgerufen und angezeigt. Innerhalb des iFrames kann ein IT-Administrator Konfigurationen festlegen und als Konfigurationsprofil speichern. Jedes Mal, wenn ein IT-Administrator ein neues Konfigurationsprofil speichert, gibt der iFrame eine eindeutige Kennung namens mcmId zurück. Dadurch können IT-Administratoren mehrere Profile für dieselbe Anwendung erstellen.

Konfigurationsprofile bearbeiten

Im iFrame können gespeicherte Konfigurationsprofile angezeigt werden. IT-Administratoren können die Einstellungen in einem Profil aktualisieren und ihre Änderungen speichern.

Konfigurationsprofile löschen

IT-Administratoren können Konfigurationsprofile aus dem iFrame löschen. Diese Funktion ist standardmäßig deaktiviert.

iFrame für verwaltete Konfigurationen in der Konsole aufrufen

Webtoken generieren

Verwenden Sie Enterprises.createWebToken, um ein Webtoken zu generieren, das das Unternehmen identifiziert. Sie müssen das zurückgegebene Token zusammen mit anderen Parametern beim Rendern des iFrames in der Konsole angeben. Das folgende Beispiel zeigt, wie Sie das Token mit der Google Play EMM API-Clientbibliothek für Java abrufen.

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

iFrame rendern

Hier ist ein Beispiel dafür, wie der iFrame für verwaltete Konfigurationen gerendert wird:

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

URL-Parameter

In der folgenden Tabelle sind alle verfügbaren Parameter für die iFrame-URL aufgeführt.

ParameterErforderlichBeschreibung
token Ja Das von Enterprises.createWebToken zurückgegebene Token.
packageName Ja Die Produkt-ID der App, z. B. com.google.android.gm.
mcmId Nein Die ID eines verwalteten Konfigurationsprofils.
canDelete Nein Falls TRUE, wird eine Schaltfläche im iFrame aktiviert, mit der IT-Administratoren das verwaltete Konfigurationsprofil löschen können. Bei FALSE (Standardwert) ist die Schaltfläche deaktiviert.
locale Nein Ein korrekt formatiertes BCP 47-Tag, das zum Lokalisieren der Inhalte im iFrame verwendet wird. Wenn keine Angabe erfolgt, wird der Standardwert en_US verwendet.

iFrame-Ereignisse

Sie sollten im Rahmen Ihrer Integration auch die folgenden Ereignisse verarbeiten.

VeranstaltungBeschreibung
onconfigupdated Der Nutzer aktualisiert ein vorhandenes verwaltetes Konfigurationsprofil oder erstellt ein neues. Dadurch wird ein Objekt zurückgegeben, das Folgendes enthält:
{
  "mcmId": The ID of the managed configurations profile.
  "name": The name of the updated or newly created managed configurations profile.
}
onconfigdeleted Der Nutzer löscht ein vorhandenes verwaltetes Konfigurationsprofil. Dadurch wird ein Objekt zurückgegeben, das Folgendes enthält:
{
  "mcmId": The ID of the managed configurations profile.
}

Das folgende Beispiel zeigt, wie auf onconfigupdated gewartet wird:

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

Aktualisierungen des Schemas für verwaltete Konfigurationen einer App

Wenn der Entwickler das verwaltete Konfigurationsschema einer Anwendung aktualisiert, werden gespeicherte Konfigurationsprofile automatisch aktualisiert. Wenn der Entwickler beispielsweise eine Option entfernt, wird sie aus allen vorhandenen Konfigurationsprofilen für die App entfernt. Wenn der Entwickler eine Option hinzufügt, wird der vom Entwickler festgelegte Standardwert für die Option allen vorhandenen Konfigurationsprofilen für die App hinzugefügt.

Verwaltete Konfigurationen auf Nutzergeräte anwenden

Informationen zum Anwenden verwalteter Konfigurationen auf Nutzergeräte finden Sie unter Verwaltete Konfigurationen anwenden.


Informationen zum Verhalten beim Auswählen/Deaktivieren der Auswahl

Mit dem iFrame für verwaltete Konfigurationen können IT-Administratoren jetzt die Anwendungseinschränkungen einer verwalteten Konfiguration explizit deaktivieren, wenn sie sie nicht benötigen. Dies ist eine Änderung gegenüber dem vorherigen Verhalten und kann sich darauf auswirken, welche Einschränkungen je nach Auswahl des Administrators an Ihre Anwendung gesendet werden.

Im folgenden Abschnitt wird beschrieben, wie sich der iFrame für verwaltete Konfigurationen mit diesem neuen Auswahlmuster verhält und was Entwickler als Teil ihrer verwalteten Konfiguration erwarten können.

Standardwert für eine App-Einschränkung verwenden

Wenn für die App-Einschränkungen mit dem Typ bool, choice, integer, Mehrfachauswahl oder String ein Standardwert angegeben ist, wird der Standardwert als Wert der App-Einschränkung angewendet, wenn Administratoren die verwaltete Konfiguration speichern, ohne Änderungen an der App-Einschränkung vorzunehmen.

Beispiel mit dem folgenden Schema für die Anwendungseinschränkung:

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

Folgende App-Einschränkungen werden an das Gerät gesendet:

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

Ohne Standardwerte für App-Einschränkungen zu verwenden

Wenn die App-Einschränkungen mit dem Typ bool, choice, integer, Mehrfachauswahl oder String keinen Standardwert haben, werden diese Anwendungseinschränkungen nicht berücksichtigt, wenn Administratoren die verwaltete Konfiguration speichern, ohne Änderungen an der App-Einschränkung vorzunehmen.

Beispiel mit dem folgenden Schema für die Anwendungseinschränkung:

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

Folgende App-Einschränkungen werden an das Gerät gesendet:

"restrictions": [
    // Empty
]

Bundles im Schema verwenden

Dieser Abschnitt gilt für App-Einschränkungen für Bundles:

Mindestens eine untergeordnete App-Einschränkung mit einem Standardwert in einer App-Einschränkung für Bundles

Wenn in der Bundle-App-Einschränkung mindestens eine der Einschränkungen für untergeordnete Apps vom Typ bool, choice, integer, Mehrfachauswahl oder String mit einem Standardwert angegeben ist, wird der Standardwert als Wert der App-Einschränkung angewendet. Diejenigen ohne Standardwerte werden ausgeschlossen, wenn Administratoren die verwaltete Konfiguration speichern, ohne Änderungen an der App-Einschränkung vorzunehmen.

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

Folgende App-Einschränkungen werden an das Gerät gesendet:

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

Alle Einschränkungen für untergeordnete Apps ohne Standardwerte

Wenn in der App-Einschränkung Bundle alle Einschränkungen der untergeordneten App mit dem Typ bool, choice, integer, Mehrfachauswahl oder String keinen Standardwert enthalten, wird die App-Einschränkung Bundle nicht berücksichtigt, wenn Administratoren die verwaltete Konfiguration speichern, ohne Änderungen an der App-Einschränkung vorzunehmen.

Beispiel mit dem folgenden Schema für die Anwendungseinschränkung:

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

Folgende App-Einschränkungen werden an das Gerät gesendet:

"restrictions": [
    // Empty
]

„bundle_array“ im Schema verwenden

Dieser Abschnitt bezieht sich auf die Anwendungseinschränkungen von bundle_array. Es ist nicht relevant, wenn die Einschränkungen der untergeordneten Anwendung mit dem Typ bool, choice, integer, Mehrfachauswahl oder string Standardwerte haben.

Beispiel mit dem folgenden Schema für die Anwendungseinschränkung:

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

Mindestens eine Bundle-Gruppe in der Einschränkung „bundle_array“

Wenn mindestens eine Bundle-Gruppe festgelegt ist, gilt die App-Einschränkung bundle_array, wenn Administratoren die verwaltete Konfiguration speichern.

Folgende App-Einschränkungen werden an das Gerät gesendet:

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

Keine Bundle-Gruppen in der App-Einschränkung „bundle_array“

Die Anwendungseinschränkung bundle_array wird nicht berücksichtigt, wenn Administratoren die verwaltete Konfiguration speichern, ohne eine Bundle-Gruppe hinzuzufügen. Folgende App-Einschränkungen werden an das Gerät gesendet:

"restrictions": [
    // Empty
]