পরিচালিত কনফিগারেশন সমর্থন, পরিচালিত কনফিগারেশন সমর্থন

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

  • আপনার নিজস্ব UI তৈরি করুন এবং ApplicationPolicy-managedConfiguration এর মাধ্যমে সেটিংস প্রয়োগ করুন।
  • আপনার কনসোলে পরিচালিত কনফিগারেশন আইফ্রেম যোগ করুন (নিচে বিস্তারিত নির্দেশাবলী) এবং অ্যাপ্লিকেশন পলিসিতে managedConfigurationTemplate মাধ্যমে সেটিংস প্রয়োগ করুন


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

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

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

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

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>

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);

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

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

নীতিতে কনফিগারেশন প্রোফাইল প্রয়োগ করুন

প্রতিটি কনফিগারেশন প্রোফাইল একটি অনন্য mcmId হিসাবে সংরক্ষিত হয়। একটি নীতিতে একটি কনফিগারেশন প্রোফাইল প্রয়োগ করতে, managedConfigurationTemplatemcmId উল্লেখ করুন।


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

পরিচালিত কনফিগারেশন 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 মধ্যে সমস্ত সীমাবদ্ধতা/বান্ডেল নিম্নলিখিত অগ্রাধিকার দ্বারা সেট করা হবে:

  • অ্যাডমিন দ্বারা নির্বাচিত মান
  • সেই বান্ডেল/সীমাবদ্ধতার জন্য তালিকাভুক্ত ডিফল্ট মান।
  • কোনো ডিফল্ট মান না থাকলে iFrame-এ প্রদর্শিত মান

bundle_array অ্যাপ সীমাবদ্ধতায় কোনো বান্ডিল গ্রুপ নেই

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

"restrictions": [
    // Empty
]