Mendukung konfigurasi terkelola

Beberapa aplikasi yang didesain untuk perusahaan menyertakan setelan bawaan yang disebut terkelola berbeda yang dapat dikonfigurasi oleh admin IT dari jarak jauh. Misalnya, aplikasi mungkin memiliki opsi untuk hanya menyinkronkan data saat perangkat terhubung ke Wi-Fi. Menyediakan Admin IT memiliki kemampuan untuk menentukan konfigurasi terkelola dan menerapkannya ke perangkat adalah persyaratan untuk semua kumpulan solusi. Ada dua cara untuk mendukung konfigurasi terkelola di konsol EMM:

  • Membuat UI Anda sendiri dan menerapkan setelan melalui managedConfiguration di ApplicationPolicy.
  • Menambahkan iframe konfigurasi terkelola ke konsol (detail petunjuk di bawah) dan terapkan setelan melalui managedConfigurationTemplate di ApplicationPolicy


Iframe konfigurasi terkelola adalah UI yang dapat disematkan dan memungkinkan admin IT menyimpan, mengedit, dan menghapus setelan konfigurasi terkelola aplikasi. Anda bisa, untuk misalnya, menampilkan tombol (atau elemen UI serupa) dalam detail aplikasi atau yang membuka iframe.

Tindakan yang tersedia untuk admin IT dari iframe

iframe mcm
Gambar 1. Contoh iframe konfigurasi terkelola untuk Gmail.

Menetapkan dan menyimpan profil konfigurasi

iframe mengambil dan menampilkan skema konfigurasi terkelola untuk aplikasi tertentu. Dalam iframe, admin IT dapat mengatur konfigurasi dan menyimpan mereka sebagai profil konfigurasi. Setiap kali admin IT menyimpan profil konfigurasi, iframe akan menampilkan ID unik yang disebut mcmId. Hal ini memungkinkan admin IT membuat beberapa profil untuk .

Edit profil konfigurasi

iframe mampu menampilkan profil konfigurasi yang disimpan. Admin IT dapat memperbarui pengaturan dalam profil dan menyimpan perubahannya.

Menghapus profil konfigurasi

Admin IT dapat menghapus profil konfigurasi dari iframe. Fitur ini dinonaktifkan secara default.

Menambahkan iframe ke konsol

Membuat token web

Gunakan enterprises.webTokens.create untuk membuat token web yang mengidentifikasi perusahaan, dan menetapkan iframeFeature ke MANAGED_CONFIGURATIONS. Anda harus menyertakan token yang ditampilkan, bersama dengan , saat merender iframe di konsol Anda.

Merender iframe

Berikut ini contoh cara merender iframe konfigurasi terkelola:

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

Parameter URL

Tabel di bawah mencantumkan semua parameter yang tersedia untuk URL iframe.

ParameterWajibDeskripsi
token Ya Token yang ditampilkan dari Enterprises.createWebToken.
packageName Ya ID produk aplikasi. Misalnya, com.google.android.gm.
mcmId Tidak ID profil konfigurasi terkelola.
canDelete Tidak Jika TRUE, mengaktifkan tombol di iframe yang memungkinkan IT admin untuk menghapus profil konfigurasi terkelola. Jika FALSE (nilai default), tombol dinonaktifkan.
locale Tidak Dibentuk dengan baik BCP 47 language yang digunakan untuk melokalkan konten di iframe. Jika tidak nilai default-nya adalah en_US.

Acara iframe

Anda juga harus menangani peristiwa berikut sebagai bagian dari integrasi.

AcaraDeskripsi
onconfigupdated Pengguna memperbarui profil konfigurasi terkelola yang ada atau membuat profil satu. Tindakan ini akan menampilkan objek yang berisi:
{
  "mcmId": The ID of the managed configurations profile.
  "name": The name of the updated or newly created managed configurations profile.
}
onconfigdeleted Pengguna menghapus profil konfigurasi terkelola yang ada. Ini akan mengembalikan objek yang berisi:
{
  "mcmId": The ID of the managed configurations profile.
}

Contoh di bawah menunjukkan cara memproses onconfigupdated, sebagai contoh:

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

Pembaruan pada skema konfigurasi terkelola untuk aplikasi

Jika developer memperbarui skema konfigurasi terkelola untuk aplikasi, yang telah disimpan profil konfigurasi akan diperbaharui secara otomatis. Misalnya, jika developer menghapus opsi, opsi tersebut akan dihapus dari semua konfigurasi yang ada profil untuk aplikasi. Jika developer menambahkan opsi, nilai default untuk opsi (ditentukan oleh developer) akan ditambahkan ke semua konfigurasi yang ada profil untuk aplikasi.

Menerapkan profil konfigurasi ke kebijakan

Setiap profil konfigurasi disimpan sebagai mcmId unik. Untuk menerapkan profil konfigurasi ke kebijakan, tentukan mcmId di managedConfigurationTemplate.


Memahami perilaku pilih/batalkan pilihan

iframe konfigurasi terkelola kini memungkinkan admin IT membatalkan pilihan secara eksplisit pembatasan aplikasi dari konfigurasi terkelola ketika mereka tidak membutuhkannya. Ini adalah perubahan dari perilaku sebelumnya dan dapat berdampak pada batasan apa dikirim ke aplikasi Anda berdasarkan pilihan admin.

Bagian di bawah ini menguraikan perilaku iframe konfigurasi terkelola pola batal pilihan baru ini dan apa yang diharapkan pengembang untuk dikirim sebagai bagian dari konfigurasi terkelola mereka.

Menggunakan nilai default untuk pembatasan aplikasi

Jika aplikasi melakukan pembatasan dengan jenis bool, pilihan, bilangan bulat, dapat memilih lebih dari satu atau string nilai default, nilai default akan diterapkan sebagai dari pembatasan aplikasi saat admin menyimpan konfigurasi terkelola tanpa menerapkan perubahan pada pembatasan aplikasi tersebut.

Misalnya, dengan skema pembatasan aplikasi berikut:

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

Pembatasan aplikasi yang dikirim ke perangkat adalah:

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

Tanpa menggunakan nilai default untuk pembatasan aplikasi

Jika aplikasi melakukan pembatasan dengan jenis bool, pilihan, bilangan bulat, dapat memilih lebih dari satu atau string tidak dilengkapi dengan nilai default, pembatasan aplikasi ini tidak akan disertakan saat admin menyimpan konfigurasi terkelola tanpa menerapkan perubahan apa pun tentang pembatasan aplikasi tersebut.

Misalnya, dengan skema pembatasan aplikasi berikut:

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

Pembatasan aplikasi yang dikirim ke perangkat adalah:

"restrictions": [
    // Empty
]

Menggunakan paket dalam skema Anda

Bagian ini berlaku untuk paket pembatasan aplikasi:

Memiliki setidaknya satu pembatasan aplikasi anak dengan nilai default dalam pembatasan aplikasi bundle

Jika termasuk dalam paket pembatasan aplikasi setidaknya salah satu pembatasan aplikasi anak dengan jenis bool, pilihan, bilangan bulat, dapat memilih lebih dari satu atau string nilai default, nilai default akan diterapkan sebagai nilai dari pembatasan aplikasi dan nilai yang tidak memiliki nilai default akan dikecualikan saat admin menyimpan konfigurasi terkelola tanpa menerapkan perubahan apa pun pada pembatasan aplikasi.

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

Pembatasan aplikasi yang dikirim ke perangkat adalah:

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

Semua batasan aplikasi anak tanpa nilai default

Jika termasuk dalam paket pembatasan aplikasi semua pembatasan aplikasi anak dengan jenis bool, pilihan, bilangan bulat, dapat memilih lebih dari satu atau string tidak dilengkapi dengan nilai default, yaitu paket pembatasan aplikasi tidak akan disertakan saat admin menyimpan konfigurasi terkelola tanpa menerapkan perubahan pada pembatasan aplikasi tersebut.

Misalnya, dengan skema pembatasan aplikasi berikut:

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

Pembatasan aplikasi yang dikirim ke perangkat adalah:

"restrictions": [
    // Empty
]

Menggunakan bundle_array dalam skema Anda

Bagian ini berlaku untuk bundle_array pembatasan aplikasi. Tidak relevan jika aplikasi anak membatasi dengan jenis bool, pilihan, bilangan bulat, dapat memilih lebih dari satu atau string memiliki nilai default.

Misalnya, dengan skema pembatasan aplikasi berikut:

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

Memiliki setidaknya satu grup paket dalam pembatasan aplikasi bundle_array

Jika minimal satu paket grup ditetapkan, yaitu bundle_array pembatasan aplikasi akan disertakan saat admin menyimpan konfigurasi terkelola.

Pembatasan aplikasi yang dikirim ke perangkat adalah:

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

Jika satu batasan atau grup paket disimpan, semua pembatasan/paket dalam seluruh bundle_array akan ditetapkan dengan prioritas berikut:

  • nilai yang dipilih oleh admin
  • nilai default yang tercantum untuk paket/pembatasan tersebut.
  • nilai yang ditampilkan di iFrame jika tidak ada nilai default

Tidak ada grup paket dalam pembatasan aplikasi bundle_array

bundle_array pembatasan aplikasi tidak akan disertakan saat admin menyimpan konfigurasi terkelola tanpa menambahkan paket ras. Pembatasan aplikasi yang dikirim ke perangkat adalah:

"restrictions": [
    // Empty
]