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

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

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


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

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

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

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

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

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

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

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

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

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

"restrictions": [
    // Empty
]

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

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

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

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

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

"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, choice, इंटीजर, एक से ज़्यादा चुनें या स्ट्रिंग हो.

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

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