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 veri senkronizasyonu seçeneğine sahip olabilir. BT yöneticilerine yönetilen yapılandırmaları belirtme ve bunları cihazlara uygulama olanağı sağlamak tüm çözüm grupları için bir zorunluluktur. EMM konsolunuzda yönetilen yapılandırmaları iki şekilde destekleyebilirsiniz:

  • Kendi kullanıcı arayüzünüzü oluşturun ve ApplicationPolicy'de managedConfiguration aracılığıyla ayarları uygulayın.
  • Yönetilen yapılandırmalar iframe'ini konsolunuza ekleyin (talimatlar aşağıda açıklanmıştır) ve ApplicationPolicy'de managedConfigurationTemplate aracılığıyla ayarları 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 ayarlar veya ayrıntılar 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 yönetilen yapılandırma iframe'i örneği.

Yapılandırma profillerini ayarlama ve kaydetme

iframe, belirtilen bir uygulamanın yönetilen yapılandırma şemasını alır ve görüntüler. iframe içinde bir BT yöneticisi yapılandırmaları ayarlayıp yapılandırma profili olarak kaydedebilir. BT yöneticisi her yeni yapılandırma profili kaydettiğinde 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üncelleyip 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 ekleyin

Web jetonu oluşturma

Kuruluşu tanımlayan bir web jetonu oluşturmak için enterprises.webTokens.create etiketini 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ırmalar 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ği. Ö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 ise (varsayılan değer) düğme devre dışıdır.
locale Hayır iframe'deki içeriği yerelleştirmek için kullanılan, iyi biçimlendirilmiş BCP 47language etiketi. Belirtilmezse varsayılan değer en_US olur.

iFrame etkinlikleri

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

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 siler. Bu komut, şunları içeren bir nesne döndürür:
{
  "mcmId": The ID of the managed configurations profile.
}

Aşağıdaki örnekte, onconfigupdated metninin 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ırmalar ş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 seçeneğin 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 uygulama

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çim kaldırma davranışını anlama

Yönetilen yapılandırmalar iframe'i, artık BT yöneticilerinin ihtiyaç duymadıkları bir yönetilen yapılandırmanın uygulama kısıtlamalarının seçimini açık bir şekilde kaldırmasına olanak tanıyor. Bu, önceki davranıştan kaynaklanan bir değişikliktir 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çim 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 söz konusu uygulama kısıtlamasında herhangi bir değişiklik yapmadan yönetilen yapılandırmayı 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, çoklu seçim veya dize 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ı dahilinde 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, yönetilen yapılandırmayı herhangi bir değişiklik yapmadan bu yapılandırmaya kaydettiğinde varsayılan değer 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 uygulama 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 söz konusu uygulama kısıtında herhangi bir değişiklik yapmadan yönetilen yapılandırmayı 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 durum 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 ayarlanırsa 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/paketler aşağıdaki önceliğe 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
]