پشتیبانی از تنظیمات مدیریت شده، پشتیبانی از تنظیمات مدیریت شده

برخی از برنامه‌های طراحی‌شده برای شرکت‌ها شامل تنظیمات داخلی به نام پیکربندی‌های مدیریت‌شده هستند که سرپرستان فناوری اطلاعات می‌توانند از راه دور آن‌ها را پیکربندی کنند. به عنوان مثال، ممکن است یک برنامه فقط زمانی که دستگاهی به Wi-Fi متصل است، داده ها را همگام سازی کند. ارائه توانایی مدیران فناوری اطلاعات برای تعیین پیکربندی های مدیریت شده و اعمال آنها در دستگاه ها برای همه مجموعه راه حل ها الزامی است. دو روش برای پشتیبانی از تنظیمات مدیریت شده در کنسول EMM وجود دارد:

  • UI خود را ایجاد کنید و تنظیمات را از طریق managedConfiguration در ApplicationPolicy اعمال کنید.
  • پیکربندی های مدیریت شده iframe را به کنسول خود اضافه کنید (دستورالعمل های شرح داده شده در زیر) و تنظیمات را از طریق managedConfigurationTemplate در ApplicationPolicy اعمال کنید.


پیکربندی های مدیریت شده iframe یک رابط کاربری قابل جاسازی است که به مدیران فناوری اطلاعات اجازه می دهد تنظیمات پیکربندی مدیریت شده برنامه را ذخیره، ویرایش و حذف کنند. برای مثال، می‌توانید یک دکمه (یا عنصر رابط کاربری مشابه) را در صفحه جزئیات یا تنظیمات برنامه نمایش دهید که iframe را باز می‌کند.

اقداماتی که از iframe برای سرپرستان فناوری اطلاعات در دسترس است

mcm iframe
شکل 1. نمونه پیکربندی های مدیریت شده iframe برای Gmail.

پروفایل های پیکربندی را تنظیم و ذخیره کنید

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>

پارامترهای URL

جدول زیر تمام پارامترهای موجود برای URL iframe را فهرست می کند.

پارامتر مورد نیاز توضیحات
token بله رمز از Enterprises.createWebToken بازگشت.
packageName بله شناسه محصول برنامه به عنوان مثال، com.google.android.gm .
mcmId خیر شناسه نمایه تنظیمات مدیریت شده.
canDelete خیر اگر درست است ، دکمه‌ای را در 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 منحصر به فرد ذخیره می شود. برای اعمال نمایه پیکربندی به یک خط مشی، mcmId در managedConfigurationTemplate مشخص کنید.


درک رفتار انتخاب/عدم انتخاب

پیکربندی‌های مدیریت‌شده 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
]

استفاده از bundle_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
            }
        }]
    }]
}]

داشتن حداقل یک گروه بسته در محدودیت برنامه 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 وجود ندارد

وقتی سرپرستان پیکربندی مدیریت شده را بدون افزودن گروه بسته ذخیره می‌کنند، محدودیت برنامه bundle_array شامل نمی‌شود. محدودیت های برنامه ارسال شده به دستگاه عبارتند از:

"restrictions": [
    // Empty
]