管理対象設定 iframe は埋め込み可能な UI で、IT 管理者はこれを使用して アプリの管理対象設定を保存、編集、削除する。1 人で たとえば、アプリの詳細にボタン(または同様の UI 要素)を表示する、または 設定ページが開きます
IT 管理者が iframe から行える操作
![mcm iframe](https://developers-dot-devsite-v2-prod.appspot.com/static/android/work/play/emm-api/images/mcm_iframe.png?authuser=19&hl=ja)
構成プロファイルの設定と保存
iframe は、特定のサービスに対する管理対象設定スキーマを取得して表示します。
クリックします。IT 管理者は iframe 内で構成を設定し、
構成プロファイルとして保持できます。IT 管理者が新規ファイルを保存するたび
構成プロファイルの場合、iframe は mcmId
という一意の識別子を返します。
これにより、IT 管理者は同じプロジェクトについて複数のプロファイルを作成できます。
。
構成プロファイルを編集する
iframe では、保存された構成プロファイルを表示できます。IT 管理者は プロフィールの設定を更新し、変更を保存します。
構成プロファイルを削除する
IT 管理者は iframe から構成プロファイルを削除できます。この機能は デフォルトで無効になっています。
コンソールに管理対象設定の iframe を表示する
ウェブトークンを生成する
Enterprises.createWebToken
を使用して、企業を識別するウェブトークンを生成します。必ず
他のパラメータとともに返されるトークンを
できます。次の例は、Google Cloud API を使用してトークンを取得する
Java 用 Play EMM API クライアント ライブラリをご覧ください。
public AdministratorWebToken getAdministratorWebToken(
String enterpriseId,
AdministratorWebTokenSpec tokenSpec) throws IOException {
return androidEnterprise
.enterprise()
.createWebToken(enterpriseId, tokenSpec)
.execute();
}
iframe をレンダリングする
次に、管理対象設定の iframe をレンダリングする方法の例を示します。
<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 パラメータ
次の表は、iframe URL で使用できるすべてのパラメータを示したものです。
パラメータ | 必須 | 説明 |
---|---|---|
token |
○ | Enterprises.createWebToken から返されたトークン。 |
packageName |
○ | アプリのプロダクト ID。たとえば
com.google.android.gm 。 |
mcmId |
いいえ | 管理対象設定プロファイルの ID。 |
canDelete |
いいえ | TRUE の場合、iframe で IT を許可するボタンを有効にします 管理対象設定プロファイルを削除することはできません。条件 FALSE(デフォルト値)の場合、ボタンは無効になります。 |
locale |
いいえ | 適切な形式の BCP 47 language タグを使用して、iframe のコンテンツをローカライズします。回答が「いいえ」の場合 指定されていない場合、デフォルト値は en_US です。 |
iframe イベント
統合の一環として、次のイベントも処理する必要があります。
イベント | 説明 |
---|---|
onconfigupdated |
ユーザーが既存の管理対象設定プロファイルを更新するか、新規作成する
1 です。これは、以下を含むオブジェクトを返します。
{ "mcmId": The ID of the managed configurations profile. "name": The name of the updated or newly created managed configurations profile. } |
onconfigdeleted |
ユーザーが既存の管理対象設定プロファイルを削除した。このメソッドは、
次の要素を含むオブジェクト:
{ "mcmId": The ID of the managed configurations profile. } |
以下の例は、例として onconfigupdated
をリッスンする方法を示しています。
iframe.register('onconfigupdated', function(event) {
console.log(event);
}, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);
アプリの管理対象設定スキーマの更新
デベロッパーがアプリの管理対象設定スキーマを更新すると、 自動的に更新されます。たとえば、開発者が オプションを削除すると、そのオプションは既存のすべての設定から削除されます プロファイルを指定します。デベロッパーがオプションを追加した場合、 オプション(デベロッパーが定義)は、既存のすべての構成に追加される プロファイルを指定します。
管理対象設定をユーザーのデバイス
管理対象設定をユーザーのをご覧ください。 管理対象の設定を適用する
選択と選択解除の動作について
管理対象設定の iframe で、IT 管理者は明示的に選択解除を行えるようになりました 管理対象の設定によるアプリの制限が必要ない場合は、その制限を解除できます。この 以前の動作からの変更であり、どの制限に 管理者が選択した内容に基づいてアプリに送信されます
次のセクションでは、管理対象設定の iframe がどのように動作するかを説明します。 この新しい選択解除パターンと、 管理できます。
アプリの制限にデフォルト値を使用する
タイプが bool のアプリ制限の場合、 Choice integer、 複数選択 または string 指定されている場合、デフォルト値がルールとして適用されます。 管理者が管理対象設定を保存する際に、アプリ制限の値を そのアプリの制限に対する変更を適用します
たとえば、次のアプリ制限スキーマがあるとします。
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": false
}
}]
デバイスに送信されるアプリの制限は次のようになります。
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": false
}
}]
アプリの制限にデフォルト値を使用しない場合
タイプが bool のアプリ制限の場合、 Choice integer、 複数選択 または string にデフォルト値がない場合、これらのアプリの制限は 管理者が変更を適用せずに管理対象設定を保存した場合に含まれる そのアプリの制限を設定します
たとえば、次のアプリ制限スキーマがあるとします。
"restrictions": [{
"key": "bool_key",
"restrictionType": "bool"
// defaultValue absent.
}]
デバイスに送信されるアプリの制限は次のようになります。
"restrictions": [
// Empty
]
スキーマ内でのバンドルの使用
このセクションは、バンドルに該当する内容です。 アプリの制限:
バンドルアプリ制限にデフォルト値を持つ子アプリの制限が 1 つ以上ある
バンドル内の場合 タイプが bool の子アプリ制限のうち 1 つ以上でアプリを制限している Choice、 整数 複数選択 または文字列 指定されている場合、デフォルト値がルールとして適用されます。 の値に設定され、デフォルト値のないものは除外されます。 管理者が管理対象の設定に変更を適用せずに保存したとき アプリの制限。
"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.
}
]
}]
デバイスに送信されるアプリの制限は次のようになります。
"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.
]
}]
すべての子アプリの制限(デフォルト値なし)
バンドル内の場合 タイプが bool であるすべての子アプリ制限でアプリを制限する、 Choice、 整数 複数選択 または文字列 デフォルト値が指定されていない場合、バンドル 管理者が管理対象設定を保存する際に、アプリの制限が含まれない そのアプリの制限に対する変更は 適用されません
たとえば、次のアプリ制限スキーマがあるとします。
"restrictions": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key_1",
"restrictionType": "bool",
// defaultValue absent.
},
{
"key": "bool_key_2",
"restrictionType": "bool"
// defaultValue absent.
}
]
}]
デバイスに送信されるアプリの制限は次のようになります。
"restrictions": [
// Empty
]
スキーマ内での bundle_array の使用
このセクションは bundle_array に該当する内容です アプリの制限。 タイプが bool である子アプリの制限は関係ありません。 Choice integer、 複数選択 または string デフォルト値があります。
たとえば、次のアプリ制限スキーマがあるとします。
"restrictions": [{
"key": "bundle_array_key",
"restrictionType": "bundleArray",
"nestedRestriction": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key",
"restrictionType": "bool",
"defaultValue": {
"type": "bool",
"valueBool": true
}
}]
}]
}]
bundle_array アプリ制限にバンドル グループを 1 つ以上含める
1 つ以上のバンドルが グループが設定されている場合、bundle_array は 管理者が管理対象設定を保存すると、アプリの制限が含まれます。
デバイスに送信されるアプリの制限は次のようになります。
"restrictions": [{
"key": "bundle_array_key",
"restrictionType": "bundleArray",
"nestedRestriction": [{
"key": "bundle_key",
"restrictionType": "bundle",
"nestedRestriction": [{
"key": "bool_key",
"restrictionType": "bool",
"value": {
"type": "bool",
"valueBool": true
}
}]
}]
}]
bundle_array アプリ制限にバンドル グループがありません
bundle_array 管理者が管理対象設定を保存する際に、アプリの制限が含まれない バンドルを追加せずに できます。デバイスに送信されるアプリの制限は次のようになります。
"restrictions": [
// Empty
]