मैनेज किए जा रहे कॉन्फ़िगरेशन के साथ काम करता है

एंटरप्राइज़ के लिए डिज़ाइन किए गए कुछ ऐप्लिकेशन में पहले से मौजूद ऐसी सेटिंग शामिल होती हैं जिन्हें मैनेज किए गए कॉन्फ़िगरेशन कहा जाता है. आईटी एडमिन इन्हें कहीं से भी कॉन्फ़िगर कर सकते हैं. उदाहरण के लिए, किसी ऐप्लिकेशन में डेटा को सिर्फ़ तब सिंक करने का विकल्प हो सकता है, जब डिवाइस वाई-फ़ाई से कनेक्ट हो. आईटी एडमिन को मैनेज किए गए कॉन्फ़िगरेशन तय करने और उन्हें डिवाइसों पर लागू करने की सुविधा देना, सभी सॉल्यूशन सेट के लिए ज़रूरी है. ईएमएम कंसोल में, मैनेज किए जा रहे कॉन्फ़िगरेशन के साथ काम करने के दो तरीके हैं:

  • अपना यूज़र इंटरफ़ेस (यूआई) बनाएं और ApplicationPolicy में managedConfiguration के ज़रिए सेटिंग लागू करें.
  • अपने कंसोल में मैनेज किए गए कॉन्फ़िगरेशन iframe जोड़ें (नीचे दिए गए निर्देशों की जानकारी दी गई है). साथ ही, ApplicationPolicy में जाकर managedConfigurationTemplate से सेटिंग लागू करें


मैनेज किए जा रहे कॉन्फ़िगरेशन iframe, एम्बेड किया जा सकने वाला यूज़र इंटरफ़ेस (यूआई) है. इसकी मदद से आईटी एडमिन, ऐप्लिकेशन की मैनेज की जा रही कॉन्फ़िगरेशन सेटिंग सेव कर सकते हैं, उनमें बदलाव कर सकते हैं, और उन्हें मिटा सकते हैं. उदाहरण के लिए, किसी ऐप्लिकेशन की जानकारी या सेटिंग पेज पर वह बटन (या उससे मिलता-जुलता यूज़र इंटरफ़ेस (यूआई) एलिमेंट) दिखाया जा सकता है, जिससे iframe खुलता है.

iframe से आईटी एडमिन के लिए उपलब्ध कार्रवाइयां

mcm iframe
पहली इमेज. Gmail के लिए, मैनेज किए जा रहे कॉन्फ़िगरेशन iframe का उदाहरण.

कॉन्फ़िगरेशन प्रोफ़ाइल सेट और सेव करें

iframe, किसी खास ऐप्लिकेशन के लिए मैनेज किए गए कॉन्फ़िगरेशन स्कीमा को वापस लाता है और दिखाता है. iframe में, आईटी एडमिन कॉन्फ़िगरेशन को सेट कर सकता है और उसे कॉन्फ़िगरेशन प्रोफ़ाइल के तौर पर सेव कर सकता है. जब भी कोई आईटी एडमिन एक नई कॉन्फ़िगरेशन प्रोफ़ाइल सेव करता है, तो iframe mcmId नाम का एक यूनीक आइडेंटिफ़ायर देता है. इसकी मदद से आईटी एडमिन, एक ही ऐप्लिकेशन के लिए कई प्रोफ़ाइल बना सकते हैं.

कॉन्फ़िगरेशन प्रोफ़ाइल में बदलाव करें

iframe, सेव की गई कॉन्फ़िगरेशन प्रोफ़ाइल दिखा सकता है. आईटी एडमिन, प्रोफ़ाइल में शामिल सेटिंग को अपडेट करके, उसमें किए गए बदलावों को सेव कर सकते हैं.

कॉन्फ़िगरेशन प्रोफ़ाइल मिटाएं

आईटी एडमिन, iframe से कॉन्फ़िगरेशन प्रोफ़ाइल मिटा सकते हैं. यह सुविधा डिफ़ॉल्ट रूप से बंद रहती है.

अपने कंसोल में iframe जोड़ें

वेब टोकन जनरेट करें

एंटरप्राइज़ की पहचान करने वाला वेब टोकन जनरेट करने के लिए, enterprises.webTokens.create का इस्तेमाल करें और iframeFeature को MANAGED_CONFIGURATIONS पर सेट करें. अपने कंसोल में iframe को रेंडर करते समय, आपको अन्य पैरामीटर के साथ-साथ, लौटाए गए टोकन को भी शामिल करना होगा.

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>

यूआरएल के पैरामीटर

नीचे दी गई टेबल में, iframe यूआरएल के लिए उपलब्ध सभी पैरामीटर दिए गए हैं.

पैरामीटरज़रूरी हैकंपनी का ब्यौरा
token हां टोकन, Enterprises.createWebToken से मिला है.
packageName हां ऐप्लिकेशन का प्रॉडक्ट आईडी. उदाहरण के लिए, com.google.android.gm.
mcmId नहीं मैनेज की गई कॉन्फ़िगरेशन प्रोफ़ाइल का आईडी.
canDelete नहीं TRUE पर, iframe में बटन चालू करता है, जो आईटी एडमिन को मैनेज की गई कॉन्फ़िगरेशन प्रोफ़ाइल मिटाने की अनुमति देता है. अगर FALSE (डिफ़ॉल्ट वैल्यू) है, तो बटन बंद हो जाता है.
locale नहीं अच्छी तरह से बनाया गया BCP 47 भाषा का टैग, जो iframe में कॉन्टेंट को स्थानीय भाषा में उपलब्ध कराने के लिए इस्तेमाल किया जाता है. अगर इसके लिए कोई वैल्यू नहीं दी गई है, तो डिफ़ॉल्ट वैल्यू के तौर पर en_US को चुना जाता है.

Iframe इवेंट

आपको इंटिग्रेशन के तौर पर, इन इवेंट को भी मैनेज करना चाहिए.

इवेंटकंपनी का ब्यौरा
onconfigupdated उपयोगकर्ता, मैनेज किए जा रहे कॉन्फ़िगरेशन की मौजूदा प्रोफ़ाइल अपडेट करता है या नई प्रोफ़ाइल बनाता है. इससे एक ऑब्जेक्ट दिखता है, जिसमें:
{
  "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);

किसी ऐप्लिकेशन के मैनेज किए गए कॉन्फ़िगरेशन स्कीमा में हुए अपडेट

अगर डेवलपर, मैनेज किए जा रहे किसी ऐप्लिकेशन के कॉन्फ़िगरेशन स्कीमा को अपडेट करता है, तो सेव की गई कॉन्फ़िगरेशन प्रोफ़ाइल अपने-आप अपडेट हो जाती हैं. उदाहरण के लिए, अगर डेवलपर किसी विकल्प को हटाता है, तो उस विकल्प को ऐप्लिकेशन के सभी मौजूदा कॉन्फ़िगरेशन प्रोफ़ाइल से हटा दिया जाएगा. अगर डेवलपर कोई विकल्प जोड़ता है, तो ऐप्लिकेशन की सभी मौजूदा कॉन्फ़िगरेशन प्रोफ़ाइल में उस विकल्प की डिफ़ॉल्ट वैल्यू (डेवलपर ने तय की है) जोड़ दी जाएगी.

नीति पर कॉन्फ़िगरेशन प्रोफ़ाइल लागू करें

हर कॉन्फ़िगरेशन प्रोफ़ाइल को एक यूनीक mcmId के तौर पर सेव किया जाता है. किसी नीति पर कॉन्फ़िगरेशन प्रोफ़ाइल लागू करने के लिए, managedConfigurationTemplate में mcmId तय करें.


चुनने या चुने हुए का निशान हटाने की कार्रवाई के बारे में समझना

मैनेज किए गए कॉन्फ़िगरेशन iframe की मदद से अब आईटी एडमिन, मैनेज किए जा रहे कॉन्फ़िगरेशन की ऐप्लिकेशन पाबंदियों से चुने हुए का निशान हटा सकते हैं. यह बदलाव पिछले व्यवहार से आया है. इसका असर इस बात पर पड़ सकता है कि एडमिन ने जो पाबंदियां लगाई हैं उनके हिसाब से आपके ऐप्लिकेशन पर कौनसी पाबंदियां लगाई गई हैं.

नीचे दिया गया सेक्शन बताता है कि मैनेज किए गए कॉन्फ़िगरेशन iframe, चुने हुए का निशान हटाने के इस नए पैटर्न के साथ कैसे काम करता है. साथ ही, यह भी बताया गया है कि मैनेज किए जा रहे कॉन्फ़िगरेशन के तहत, डेवलपर को क्या जानकारी भेजी जा सकती है.

ऐप्लिकेशन पर लगी पाबंदी के लिए, डिफ़ॉल्ट वैल्यू का इस्तेमाल करना

अगर ऐप्लिकेशन से जुड़ी bool, विकल्प, इंटीजर, एक से ज़्यादा चुनें या डिफ़ॉल्ट वैल्यू के साथ ऐप्लिकेशन से जुड़ी पाबंदियां दी गई हैं, तो डिफ़ॉल्ट वैल्यू को ऐप्लिकेशन पर पाबंदी की वैल्यू के तौर पर लागू किया जाएगा. ऐसा तब होगा, जब एडमिन उस ऐप्लिकेशन स्ट्रिंग पर कोई बदलाव लागू किए बिना, मैनेज किए गए कॉन्फ़िगरेशन को सेव करेंगे.

उदाहरण के लिए, यहां दिए गए ऐप्लिकेशन पर पाबंदी वाले स्कीमा के साथ:

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

डिवाइस पर भेजी गई ऐप्लिकेशन पाबंदियां ये होंगी:

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

ऐप्लिकेशन से जुड़ी पाबंदियों की डिफ़ॉल्ट वैल्यू का इस्तेमाल किए बिना

अगर bool, विकल्प, इंटीजर, एक से ज़्यादा चुनें या स्ट्रिंग वाली ऐप्लिकेशन से जुड़ी पाबंदियों की डिफ़ॉल्ट वैल्यू नहीं दी गई है, तो ऐप्लिकेशन से जुड़ी इन पाबंदियों को तब शामिल नहीं किया जाएगा, जब एडमिन मैनेज किए गए कॉन्फ़िगरेशन को सेव करेंगे और ऐप्लिकेशन पर कोई पाबंदी लागू नहीं करेंगे.

उदाहरण के लिए, यहां दिए गए ऐप्लिकेशन पर पाबंदी वाले स्कीमा के साथ:

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

डिवाइस पर भेजी गई ऐप्लिकेशन पाबंदियां ये होंगी:

"restrictions": [
    // Empty
]

अपने स्कीमा में बंडल का इस्तेमाल करना

यह सेक्शन बंडल ऐप्लिकेशन से जुड़ी पाबंदियों पर लागू होता है:

बंडल ऐप्लिकेशन पर पाबंदी में, डिफ़ॉल्ट वैल्यू के साथ कम से कम एक चाइल्ड ऐप्लिकेशन पर पाबंदी लगाना

अगर बंडल ऐप्लिकेशन की पाबंदी वाली कैटगरी में, bool, विकल्प, इंटीजर, एक से ज़्यादा चुनें या स्ट्रिंग वाली डिफ़ॉल्ट वैल्यू दी गई है, तो ऐप्लिकेशन पर पाबंदी की डिफ़ॉल्ट वैल्यू को ऐप्लिकेशन की पाबंदी की वैल्यू के तौर पर लागू किया जाएगा. साथ ही, उन पाबंदियों को हटा दिया जाएगा जिनकी डिफ़ॉल्ट वैल्यू सेव नहीं है.

"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, विकल्प, पूर्णांक, एक से ज़्यादा चुनें या स्ट्रिंग के लिए डिफ़ॉल्ट वैल्यू नहीं दी गई है, तो बंडल ऐप्लिकेशन की पाबंदी को तब शामिल नहीं किया जाएगा, जब एडमिन उस ऐप्लिकेशन पर कोई बदलाव लागू किए बिना, मैनेज किए गए कॉन्फ़िगरेशन को सेव करेंगे.

उदाहरण के लिए, यहां दिए गए ऐप्लिकेशन पर पाबंदी वाले स्कीमा के साथ:

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

अपने स्कीमा में बंडल_array का इस्तेमाल करना

यह सेक्शन bundle_array ऐप्लिकेशन की पाबंदियों पर लागू होता है. यह तब काम का नहीं होता, जब चाइल्ड ऐप्लिकेशन में मौजूद पाबंदियों की वैल्यू bool, विकल्प, इंटीजर, एक से ज़्यादा चुनें या स्ट्रिंग वाली डिफ़ॉल्ट वैल्यू हों.

उदाहरण के लिए, यहां दिए गए ऐप्लिकेशन पर पाबंदी वाले स्कीमा के साथ:

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

बंडल_array ऐप्लिकेशन की पाबंदी में कम से कम एक बंडल ग्रुप होना चाहिए

अगर कम से कम एक बंडल ग्रुप सेट है, तो एडमिन, मैनेज किए जा रहे कॉन्फ़िगरेशन को सेव करने के बाद 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 में मौजूद सभी पाबंदियां/बंडल इस प्राथमिकता के हिसाब से सेट किए जाएंगे:

  • एडमिन की चुनी हुई वैल्यू
  • उस बंडल/पाबंदी के लिए सूची में शामिल डिफ़ॉल्ट वैल्यू.
  • कोई डिफ़ॉल्ट वैल्यू न होने पर, iframe में दिखने वाली वैल्यू

बंडल_array की मदद से, ऐप्लिकेशन में कोई पाबंदी नहीं है

जब एडमिन बंडल ग्रुप जोड़े बिना, मैनेज किए गए कॉन्फ़िगरेशन को सेव करेंगे, तब bundle_array ऐप्लिकेशन पर पाबंदी नहीं लगाई जाएगी. डिवाइस पर भेजी गई ऐप्लिकेशन पाबंदियां ये होंगी:

"restrictions": [
    // Empty
]