Yönetilen yapılandırmaları destekleme

Kuruluşlar için tasarlanan bazı uygulamalarda, BT yöneticilerinin uzaktan yapılandırabileceği yönetilen yapılandırmalar adı verilen yerleşik ayarlar bulunur. Örneğin, bir uygulama yalnızca bir cihaz kablosuz ağa bağlıyken verileri senkronize etme seçeneğine sahip olabilir. BT yöneticilerine yönetilen yapılandırmalar belirleme ve bunları cihazlara uygulama olanağı sağlamak, tüm çözüm grupları için bir zorunluluktur. EMM konsolunuzda yönetilen yapılandırmaları desteklemenin iki yolu vardır:

  • ApplicationPolicy'de kendi kullanıcı arayüzünüzü oluşturup ayarları managedConfiguration aracılığıyla uygulayın.
  • Yönetilen yapılandırma iframe'ini konsolunuza ekleyin (talimatlar aşağıda açıklanmıştır) ve ApplicationPolicy'de ayarları managedConfigurationTemplate aracılığıyla uygulayın.


Yönetilen yapılandırma iframe'i, BT yöneticilerinin bir uygulamanın yönetilen yapılandırma ayarlarını kaydetmesine, düzenlemesine ve silmesine olanak tanıyan yerleştirilebilir bir kullanıcı arayüzüdür. Örneğin, bir uygulamanın iframe'i açan ayrıntılar veya ayarlar sayfasında bir düğme (veya benzer bir kullanıcı arayüzü öğesi) görüntüleyebilirsiniz.

BT yöneticilerinin iframe'den yararlanabilecekleri işlemler

mm iframe
Şekil 1. Gmail için örnek yönetilen yapılandırma iframe'i.

Yapılandırma profillerini ayarlama ve kaydetme

iframe, belirtilen bir uygulama için yönetilen yapılandırmalar şemasını alır ve görüntüler. iframe içinde bir BT yöneticisi yapılandırmaları ayarlayabilir ve bunları bir yapılandırma profili olarak kaydedebilir. BT yöneticisinin yeni bir yapılandırma profili kaydettiği her seferde iframe, mcmId adlı benzersiz bir tanımlayıcı döndürür. Bu, BT yöneticilerinin aynı uygulama için birden fazla profil oluşturmasına olanak tanır.

Yapılandırma profillerini düzenle

iframe, kayıtlı yapılandırma profillerini görüntüleyebilir. BT yöneticileri, bir profildeki ayarları güncelleyebilir ve değişikliklerini kaydedebilir.

Yapılandırma profillerini silme

BT yöneticileri, yapılandırma profillerini iframe'den silebilir. Bu özellik varsayılan olarak devre dışıdır.

iframe'i konsolunuza ekleme

Web jetonu oluşturma

Kuruluşu tanımlayan bir web jetonu oluşturmak için enterprises.webTokens.create kodunu kullanın ve iframeFeature öğesini MANAGED_CONFIGURATIONS olarak ayarlayın. Konsolunuzda iframe'i oluştururken diğer parametrelerle birlikte döndürülen jetonu da eklemeniz gerekir.

iframe'i oluşturma

Aşağıda, yönetilen yapılandırma iframe'inin nasıl oluşturulacağına ilişkin bir örnek verilmiştir:

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

Aşağıdaki tabloda, iframe URL'si için kullanılabilen tüm parametreler listelenmiştir.

ParametreGerekliAçıklama
token Evet Enterprises.createWebToken cihazından döndürülen jeton.
packageName Evet Uygulamanın ürün kimliğidir. Örneğin, com.google.android.gm.
mcmId Hayır Yönetilen yapılandırma profilinin kimliği.
canDelete Hayır TRUE ise iframe'de, BT yöneticilerinin yönetilen yapılandırmalar profilini silmesine olanak tanıyan bir düğmeyi etkinleştirir. FALSE (varsayılan değer) değerine ayarlanırsa düğme devre dışıdır.
locale Hayır iframe'deki içeriği yerelleştirmek için kullanılan, iyi oluşturulmuş bir BCP 47 language etiketi. Belirtilmezse varsayılan değer en_US olur.

iFrame etkinlikleri

Entegrasyonunuzun bir parçası olarak aşağıdaki etkinlikleri de yönetmeniz gerekir.

EtkinlikAçıklama
onconfigupdated Kullanıcı mevcut bir yönetilen yapılandırma profilini günceller veya yeni bir profil oluşturur. Bu komut, şunları içeren bir nesne döndürür:
{
  "mcmId": The ID of the managed configurations profile.
  "name": The name of the updated or newly created managed configurations profile.
}
onconfigdeleted Kullanıcı mevcut bir yönetilen yapılandırma profilini silerse. Bu komut, şunları içeren bir nesne döndürür:
{
  "mcmId": The ID of the managed configurations profile.
}

Aşağıdaki örnekte onconfigupdated ifadesinin nasıl dinleneceği gösterilmektedir:

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

Bir uygulamanın yönetilen yapılandırma şemasında yapılan güncellemeler

Geliştirici bir uygulamanın yönetilen yapılandırma şemasını güncellerse kayıtlı yapılandırma profilleri otomatik olarak güncellenir. Örneğin, geliştirici bir seçeneği kaldırırsa bu seçenek, uygulamanın mevcut tüm yapılandırma profillerinden kaldırılır. Geliştirici bir seçenek eklerse, uygulamanın varsayılan değeri (geliştirici tarafından tanımlanır) uygulamanın mevcut tüm yapılandırma profillerine eklenir.

Yapılandırma profillerini politikaya uygula

Her yapılandırma profili benzersiz bir mcmId olarak kaydedilir. Bir politikaya yapılandırma profili uygulamak için managedConfigurationTemplate bölümünde mcmId değerini belirtin.


Seçme/seçimini kaldırma davranışını anlama

Yönetilen yapılandırma iframe'i artık BT yöneticilerinin, ihtiyaç duymadıkları zaman yönetilen bir yapılandırmaya ait uygulama kısıtlamalarının seçimini açık bir şekilde kaldırmalarına olanak tanıyor. Bu durum, önceki davranışın değişmesine neden olur ve yöneticinin seçimine bağlı olarak uygulamanıza hangi kısıtlamaların gönderileceğini etkileyebilir.

Aşağıdaki bölümde, yönetilen yapılandırma iframe'inin bu yeni seçimi kaldırma kalıbıyla nasıl davrandığı ve geliştiricilerin, yönetilen yapılandırmalarının bir parçası olarak ne gönderilmesini bekleyebilecekleri özetlenmektedir.

Bir uygulama kısıtlaması için varsayılan değer kullanılıyor

bool, choice, integer, çoklu seçim veya dize türündeki uygulama kısıtlamalarına varsayılan bir değer sağlanırsa yöneticiler, yönetilen yapılandırmayı uygulama kısıtlamasında herhangi bir değişiklik yapmadan kaydettiğinde, uygulama kısıtlamasının değeri olarak varsayılan değer uygulanır.

Örneğin, aşağıdaki uygulama kısıtlama şeması ile:

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

Cihaza gönderilen uygulama kısıtlamaları:

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

Uygulama kısıtlamaları için varsayılan değerler kullanılmadan

bool, choice, integer, multi-select veya string türündeki uygulama kısıtlamalarına varsayılan bir değer sağlanmazsa yöneticiler, yönetilen yapılandırmayı uygulama kısıtlamasında herhangi bir değişiklik yapmadan kaydettiğinde bu uygulama kısıtlamaları dahil edilmez.

Örneğin, aşağıdaki uygulama kısıtlama şeması ile:

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

Cihaza gönderilen uygulama kısıtlamaları:

"restrictions": [
    // Empty
]

Şemanızda paketleri kullanma

Bu bölüm, paket uygulama kısıtlamaları için geçerlidir:

Paket uygulama kısıtlamasında varsayılan değere sahip en az bir alt uygulama kısıtlamasına sahip olma

Paket uygulama kısıtlaması kapsamında, bool, choice, tamsayı, çoklu seçim veya dize türüne sahip alt uygulama kısıtlamalarından en az birine varsayılan bir değer sağlanırsa, uygulama kısıtlamasının değeri olarak varsayılan değer uygulanır. Yöneticiler herhangi bir değişiklik yapmadan yönetilen uygulamayı kaydettiğinde, varsayılan değere sahip olmayanlar hariç tutulur.

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

Cihaza gönderilen uygulama kısıtlamaları:

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

Varsayılan değeri olmayan tüm alt uygulama kısıtlamaları

Paket uygulaması kısıtlaması dahilinde, bool, choice, tamsayı, çoklu seçim veya dize türüne sahip tüm alt uygulama kısıtlamalarına varsayılan bir değer sağlanmazsa yöneticiler yönetilen yapılandırmayı herhangi bir değişiklik yapmadan kaydettiğinde paket uygulama kısıtlaması dahil edilmez.

Örneğin, aşağıdaki uygulama kısıtlama şeması ile:

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

Cihaza gönderilen uygulama kısıtlamaları:

"restrictions": [
    // Empty
]

Şemanızda Bundle_array kullanma

Bu bölüm, bundle_array uygulama kısıtlamaları için geçerlidir. bool, choice, integer, multi-select veya string türündeki alt uygulama kısıtlamalarının varsayılan değerleri varsa bu sınır geçerli değildir.

Örneğin, aşağıdaki uygulama kısıtlama şeması ile:

"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 uygulama kısıtlamasında en az bir paket grubuna sahip olma

En az bir bundle grubu ayarlanmışsa yöneticiler yönetilen yapılandırmayı kaydettiğinde bundle_array uygulama kısıtlaması dahil edilir.

Cihaza gönderilen uygulama kısıtlamaları:

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

Bir kısıtlama veya paket grubu kaydedilirse bundle_array genelindeki tüm kısıtlamalar/gruplar aşağıdaki öncelik sırasına göre ayarlanır:

  • yönetici tarafından seçilen değer
  • ilgili paket/kısıtlama için listelenen varsayılan değerdir.
  • varsayılan değer yoksa iFrame'de görüntülenen değer

Bundle_array uygulama kısıtlamasında paket grubu yok

Yöneticiler, yönetilen yapılandırmayı bir bundle grubu eklemeden kaydettiğinde bundle_array uygulama kısıtlaması dahil edilmez. Cihaza gönderilen uygulama kısıtlamaları:

"restrictions": [
    // Empty
]