পরিচালিত কনফিগারেশন iframe

পরিচালিত কনফিগারেশন iframe হল একটি এমবেডযোগ্য UI যা আইটি অ্যাডমিনদের একটি অ্যাপের পরিচালিত কনফিগারেশন সেটিংস সংরক্ষণ, সম্পাদনা এবং মুছে ফেলতে দেয়। আপনি, উদাহরণস্বরূপ, একটি অ্যাপের বিবরণ বা সেটিংস পৃষ্ঠাতে একটি বোতাম (বা অনুরূপ UI উপাদান) প্রদর্শন করতে পারেন যা iframe খোলে।

আইফ্রেম থেকে আইটি অ্যাডমিনদের জন্য উপলব্ধ অ্যাকশন

mcm iframe
চিত্র 1. জিমেইলের জন্য আইফ্রেম পরিচালিত কনফিগারেশনের উদাহরণ।

কনফিগারেশন প্রোফাইল সেট করুন এবং সংরক্ষণ করুন

iframe একটি নির্দিষ্ট অ্যাপের জন্য পরিচালিত কনফিগারেশন স্কিমা পুনরুদ্ধার করে এবং প্রদর্শন করে। আইফ্রেমের মধ্যে, একজন আইটি প্রশাসক কনফিগারেশন সেট করতে পারেন এবং সেগুলিকে কনফিগারেশন প্রোফাইল হিসাবে সংরক্ষণ করতে পারেন। প্রতিবার আইটি অ্যাডমিন একটি নতুন কনফিগারেশন প্রোফাইল সংরক্ষণ করে, iframe mcmId নামে একটি অনন্য শনাক্তকারী প্রদান করে। এটি আইটি অ্যাডমিনদের জন্য একই অ্যাপের জন্য একাধিক প্রোফাইল তৈরি করা সম্ভব করে তোলে।

কনফিগারেশন প্রোফাইল সম্পাদনা করুন

iframe সংরক্ষিত কনফিগারেশন প্রোফাইল প্রদর্শন করতে সক্ষম। আইটি প্রশাসকরা একটি প্রোফাইলের মধ্যে সেটিংস আপডেট করতে পারেন এবং তাদের পরিবর্তনগুলি সংরক্ষণ করতে পারেন৷

কনফিগারেশন প্রোফাইল মুছুন

আইটি অ্যাডমিনরা iframe থেকে কনফিগারেশন প্রোফাইল মুছে ফেলতে পারেন। এই বৈশিষ্ট্যটি ডিফল্টরূপে অক্ষম করা হয়৷

আপনার কনসোলে পরিচালিত কনফিগারেশন আইফ্রেম প্রদর্শন করুন

একটি ওয়েব টোকেন তৈরি করুন

এন্টারপ্রাইজ শনাক্ত করে এমন একটি ওয়েব টোকেন তৈরি করতে Enterprises.createWebToken ব্যবহার করুন। আপনার কনসোলে iframe রেন্ডার করার সময় আপনাকে অবশ্যই অন্যান্য পরামিতি সহ ফেরত টোকেন অন্তর্ভুক্ত করতে হবে। নিম্নলিখিত উদাহরণ দেখায় কিভাবে জাভা-এর জন্য Google 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 হ্যাঁ অ্যাপের পণ্য আইডি। উদাহরণস্বরূপ, com.google.android.gm
mcmId না একটি পরিচালিত কনফিগারেশন প্রোফাইলের আইডি।
canDelete না যদি TRUE , iframe-এ একটি বোতাম সক্রিয় করে যা IT অ্যাডমিনদের পরিচালিত কনফিগারেশন প্রোফাইল মুছে ফেলতে দেয়। যদি FALSE (ডিফল্ট মান), বোতামটি অক্ষম করা হয়।
locale না একটি সুগঠিত BCP 47 ভাষা ট্যাগ যা iframe-এ বিষয়বস্তু স্থানীয়করণ করতে ব্যবহৃত হয়। নির্দিষ্ট করা না থাকলে, ডিফল্ট মান হল en_US

আইফ্রেম ইভেন্ট

আপনার একীকরণের অংশ হিসাবে নিম্নলিখিত ইভেন্টগুলি পরিচালনা করা উচিত।

ঘটনা বর্ণনা
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);

একটি অ্যাপের পরিচালিত কনফিগারেশন স্কিমার আপডেট

যদি বিকাশকারী একটি অ্যাপের পরিচালিত কনফিগারেশন স্কিমা আপডেট করে, সংরক্ষিত কনফিগারেশন প্রোফাইলগুলি স্বয়ংক্রিয়ভাবে আপডেট হয়। উদাহরণস্বরূপ, যদি বিকাশকারী একটি বিকল্প সরিয়ে দেয়, তবে অ্যাপটির জন্য বিদ্যমান সমস্ত কনফিগারেশন প্রোফাইল থেকে বিকল্পটি সরানো হবে। যদি বিকাশকারী একটি বিকল্প যোগ করে, তবে বিকল্পটির জন্য ডিফল্ট মান (ডেভেলপার দ্বারা সংজ্ঞায়িত) অ্যাপের জন্য বিদ্যমান সমস্ত কনফিগারেশন প্রোফাইলে যোগ করা হবে।

ব্যবহারকারীদের ডিভাইসে পরিচালিত কনফিগারেশন প্রয়োগ করুন

ব্যবহারকারীদের ডিভাইসে কীভাবে পরিচালিত কনফিগারেশন প্রয়োগ করতে হয় তা জানতে, পরিচালিত কনফিগারেশন প্রয়োগ করুন দেখুন।


নির্বাচন/অনির্বাচন আচরণ বোঝা

পরিচালিত কনফিগারেশন iframe এখন আইটি প্রশাসকদের যখন তাদের প্রয়োজন না হয় তখন একটি পরিচালিত কনফিগারেশনের অ্যাপ সীমাবদ্ধতাগুলি স্পষ্টভাবে অনির্বাচন করার অনুমতি দেয়৷ এটি পূর্ববর্তী আচরণ থেকে একটি পরিবর্তন এবং প্রশাসকের নির্বাচনের উপর ভিত্তি করে আপনার অ্যাপে কোন বিধিনিষেধ পাঠানো হয়েছে তার উপর প্রভাব ফেলতে পারে।

নীচের বিভাগটি রূপরেখা দেয় কিভাবে পরিচালিত কনফিগারেশন আইফ্রেম এই নতুন অনির্বাচিত প্যাটার্নের সাথে আচরণ করে এবং বিকাশকারীরা তাদের পরিচালিত কনফিগারেশনের অংশ হিসাবে কী পাঠানোর আশা করতে পারে।

একটি অ্যাপ সীমাবদ্ধতার জন্য ডিফল্ট মান ব্যবহার করা

যদি টাইপ bool , choice , integer , multi-select বা 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 , multi-select বা string টাইপ সহ অ্যাপের সীমাবদ্ধতাগুলি একটি ডিফল্ট মান প্রদান না করা হয়, তাহলে এই অ্যাপ সীমাবদ্ধতাগুলি অন্তর্ভুক্ত করা হবে না যখন প্রশাসকরা সেই অ্যাপ সীমাবদ্ধতায় কোনো পরিবর্তন প্রয়োগ না করে পরিচালিত কনফিগারেশন সংরক্ষণ করেন।

উদাহরণস্বরূপ, নিম্নলিখিত অ্যাপ্লিকেশন সীমাবদ্ধতা স্কিমা সহ:

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

ডিভাইসে পাঠানো অ্যাপ সীমাবদ্ধতা হবে:

"restrictions": [
    // Empty
]

আপনার স্কিমার মধ্যে বান্ডিল ব্যবহার করে

এই বিভাগটি বান্ডেল অ্যাপ সীমাবদ্ধতার ক্ষেত্রে প্রযোজ্য:

একটি বান্ডেল অ্যাপ সীমাবদ্ধতায় একটি ডিফল্ট মান সহ কমপক্ষে একটি চাইল্ড অ্যাপ সীমাবদ্ধতা থাকা

বান্ডেল অ্যাপ সীমাবদ্ধতার মধ্যে যদি bool , choice , integer , multi-select বা string টাইপ সহ চাইল্ড অ্যাপ সীমাবদ্ধতার মধ্যে একটি ডিফল্ট মান প্রদান করা হয়, ডিফল্ট মানটি অ্যাপ সীমাবদ্ধতার মান হিসাবে প্রয়োগ করা হবে এবং যেগুলি ছাড়া ডিফল্ট মানগুলি বাদ দেওয়া হবে যখন অ্যাডমিনরা সেই অ্যাপ সীমাবদ্ধতায় কোনো পরিবর্তন প্রয়োগ না করে পরিচালিত কনফিগারেশন সংরক্ষণ করে।

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

ডিফল্ট মান ছাড়াই সমস্ত চাইল্ড অ্যাপ সীমাবদ্ধতা

যদি বান্ডেল অ্যাপ সীমাবদ্ধতার মধ্যে টাইপ বুল , পছন্দ , পূর্ণসংখ্যা , মাল্টি-সিলেক্ট বা স্ট্রিং সহ সমস্ত চাইল্ড অ্যাপ সীমাবদ্ধতা একটি ডিফল্ট মান প্রদান না করা হয়, তবে অ্যাডমিনরা কোনো প্রয়োগ না করে পরিচালিত কনফিগারেশন সংরক্ষণ করলে বান্ডেল অ্যাপ সীমাবদ্ধতা অন্তর্ভুক্ত করা হবে না। যে অ্যাপ সীমাবদ্ধতা পরিবর্তন.

উদাহরণস্বরূপ, নিম্নলিখিত অ্যাপ্লিকেশন সীমাবদ্ধতা স্কিমা সহ:

"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 অ্যাপ সীমাবদ্ধতার ক্ষেত্রে প্রযোজ্য। বুল , পছন্দ , পূর্ণসংখ্যা , বহু-নির্বাচন বা স্ট্রিং টাইপ সহ চাইল্ড অ্যাপের সীমাবদ্ধতা ডিফল্ট মান থাকলে এটি প্রাসঙ্গিক নয়।

উদাহরণস্বরূপ, নিম্নলিখিত অ্যাপ্লিকেশন সীমাবদ্ধতা স্কিমা সহ:

"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 অ্যাপ সীমাবদ্ধতায় কমপক্ষে একটি বান্ডিল গ্রুপ থাকা

অন্তত একটি বান্ডিল গ্রুপ সেট করা থাকলে, অ্যাডমিনরা পরিচালিত কনফিগারেশন সংরক্ষণ করলে 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 অ্যাপ সীমাবদ্ধতায় কোনো বান্ডিল গ্রুপ নেই

বান্ডেল_অ্যারে অ্যাপ সীমাবদ্ধতা অন্তর্ভুক্ত করা হবে না যখন প্রশাসকরা একটি বান্ডেল গ্রুপ যোগ না করে পরিচালিত কনফিগারেশন সংরক্ষণ করে। ডিভাইসে পাঠানো অ্যাপ সীমাবদ্ধতা হবে:

"restrictions": [
    // Empty
]