Рано или поздно в доброй части крупных компаний возникает вопрос разработки внутреннего корпоративного мобильного приложения. В связи с этим, перед IT-специалистами встает задача проработки двух сценариев: когда нужно установить приложения на личные устройства сотрудников и когда нужно раздать устройства, являющиеся собственностью компании, для выполнения сотрудниками конкретных задач. В рамках данной статьи рассматривается работа с iOS-устройствами через OS X Server.
Введение
Сегодня при желании можно легко найти информацию по настройке OS X Server, MDM-решений и т.п. на английском языке, и в целом конфигурирование не представляет какую-то сложность. Данная статья адресована людям в русскоязычном сегменте, впервые столкнувшимся с данной задачей и желающим понять, что их ждет и насколько все сложно и страшно.
Излагаемый материал был составлен как краткое руководство к действию и за ненадобностью направлялся прямиком в Корзину, но перед тем как нажать «Очистить корзину», я подумал, что, возможно, он будет полезен кому-то еще, кто не знаком с этой темой.
Постановка задачи
Итак, давайте определимся с задачами, которые перед нами поставила компания (или заказчик).
У нас есть два независимых вектора развития мобильного направления:
- Корпоративное мобильное приложение для сотрудников компании, которое они устанавливают на личные устройства, в нашем случае на iOS-девайсы. К примеру, основной функционал — это чтение новостей и календарь мероприятий;
- Узкоспециализированное мобильное приложение для отдельных категорий сотрудников, например, социологов, которые делают опросы, скажем, на улице. Им выдаются iOS-устройства специально для этих задач, и руководство, конечно, надеясь на сознательность этих людей, тем не менее, хочет исключить саму возможность нецелевого использования, как рабочего времени, так и устройств. Проще говоря, нужно запретить делать все: слушать музыку, пользоваться интернетом, устанавливать игры из магазина приложений и т.п., оставить только возможность пользоваться приложением для проведения соц. опросов;
Ликбез
Несмотря на то, что эти два направления отличаются, у них есть что-то общее, а именно — распространение приложений внутри компании, т.е. по программе Apple Developer Enterprise Program. Для неподготовленного разработчика может показаться, что это просто регистрация компании-разработчика как юридического лица, с какими-то Enterprise примочками. К сожалению, дословно суть программы звучит так «The Apple AppStore: no place to distribute enterprise apps», т.е. вступая в эту программу вы приобретаете возможность распространять iOS-приложения в обход AppStore, но теряете возможность публиковать в официальный AppStore.
Давайте теперь взглянем на вопрос распространения корпоративных мобильных приложений несколько шире и не только глазами Apple. Сегодня на рынке есть три крупных игрока — это Google, Apple и Microsoft.
Итак, как видит распространение приложений в обход магазина каждая из этих технологических компаний.
Google
Тут все просто. Android открытая** операционная система. Формируй пакет приложения (*.apk) и далее делай с ним все, что хочешь. Все что нужно — это заплатить разовый взнос в Google Play Developer Program.
Microsoft
Две программы. Для публикации в официальный магазин — небольшой разовый взнос. Для публикации в обход магазина, вы должны раз в год покупать специальный сертификат — Enterprise Mobile Code Signing, которым подписываются ваши приложения. Он, грубо говоря, как пропуск для приложения в гараж приложений смартфона — «Я VIP, мне можно устанавливаться с черного хода».
Apple
Купертиновцы, в свою очередь, видят подход к разработке мобильных приложений следующим образом.
Для публикации в официальный магазин AppStore существует Apple Developer Program в которой могут участвовать как физические, так и юридические лица, цена одна и та же. Если у вас есть потребность в публикации приложений внутри компании, т.е. не для всех, то Apple предоставляет программу Apple Developer Enterprise Program, правда в ней вы уже не сможете публиковать приложения в AppStore.
Но что, если вам нужно публиковать приложения по обоим сценариям? Или пока нет возможности зарегистрировать юридическое лицо, вы только начали делать прототип и можете зарегистрировать физическое лицо, т.е. одного разработчика.
На этот случай в классической Apple Developer Program предусмотрена возможность заливать приложения напрямую на 100 устройств различных типов (iPhone, iPad), зарегистрированных в консоли разработчика. По научному это называется AdHoc, т.е. распространение с целью тестирования.
Как ни странно, эта штука часто решает целый пласт проблем на начальных этапах и о ней мы и поговорим в рамках данной статьи.
Отлично, у нас есть прототип мобильного приложения, есть учетная запись разработчика в Apple Developer Program и огромное желание решить задачу.
Теперь перейдем к модели управления iOS устройствами. Если вы раньше пользовались iPhone или iPad, то наверняка слышали о такой штуке как Профиль. Нет, не тот профиль пользователя из SharePoint, а профиль, описывающий полномочия устройства. Например, доступ к Beta-версиям iOS. Именно, на этой штуке все и крутится в мире Apple: установка приложений, ограничение возможностей устройства, конфигурирование устройств и т.п. И как вы наверно уже поняли, мы будем этими профилями рулить. С кем-то добровольно, с кем-то принудительно.
Apple Configurator 2
Для распространения iOS-приложений в корпоративной среде необходимы два инструмента (из AppStore):
Оба инструмента могут управлять профилями, но только профили, установленные Apple Configurator 2 пользователь не сможет удалить самовольно.
OS X Server, а вернее Profile Manager, входящий в его состав, необходим для удаленного конфигурирования профилей, т.к. Apple Configurator 2 работает только «по шнурку».
Таким образом, чтобы вы четко поняли схему: посредством профилей (по сути — конфигурационного файла, который летает туда-сюда) осуществляется удаленная установка приложений и конфигурирование устройств. Apple Configurator 2 позволяет гарантировать, что профиль, установленный с его помощью, не будет удален пользователем, а Profile Manager в OS X Server позволяет конфигурировать установленные профили удаленно. В первом приближении картинка такая.
Теперь, когда вы собрали мысли в кучку, осталось добавить еще пару недостающих элементов в пазл. Помимо профилей, существует еще одно звено механизма, называемое Supervising, которое предоставляет Apple Configurator 2. Оно заключается в сбросе устройства к заводским настройкам, жесткое конфигурирование на использование вашего Profile Manager, и запрет на хард-ресет устройства. Также в нем поддерживается функция снятия образов памяти, проще говоря, бекапов.
И последнее, думаю вы уже подумали, а как же тогда обычным сотрудникам получить корпоративные приложения без всех этих страшных сбросов и конфигурировании? Для них в рамках Profile Manager предоставляется веб-сайт, по умолчанию называющийся «MyDevices», с которого они могут скачать профиль, настраивающий автоматически устанавливающий нужные приложения на их смартфон. Да, вот так все просто с рядовыми сотрудниками.
Хорошо, вернемся к Apple Configurator 2.
Еще раз перечислим его основные возможности:
- Сброс iOS-устройства к заводским настройкам;
- Создание профилей устройства;
- Создание Blueprint образов;
- Установка iOS-устройства в Supervised-режим, который позволяет контролировать устройство (сбрасывать и т.п.) только с этого компьютера;
- Создание бэкапов iOS-устройств;
В этом списке появилось новое слово Blueprint, и мы до сих пор не поняли, какие именно ограничения мы можем задавать через Профили. Давайте поговорим об этом.
Профили в Apple Configurator 2
Профили служат для установки на устройство требуемых параметров и ограничений.
Например, можно в одном профиле установить:
- Настройки для подключения к WiFi;
- Ограничения на использование мультимедийных возможностей устройства;
- Запрет на установку приложений из AppStore;
- Фильтр на доступные веб-сайты, либо запретить использование браузера Safari;
На одном устройстве может быть установлено несколько профилей.
Blueprints в Apple Configurator 2
Blueprints — это быстрые «образы» желаемых настроек и приложений, которые можно применить к подключенному устройству в один клик.
Выбор типа устройства
Добавление нужных корпоративных приложений в образ
Добавить *.ipa -пакет приложения
Добавление профилей
Хорошо, надеюсь вы получили общее представление о базовых средствах конфигурирования iOS-устройств. Самое время перейти к более продвинутым, и соответственно, платным инструментам.
Apple OS X Server
OS X Server — это приложение, до 2014 года предустановливаемое на топовые версии компьютеров Apple Mac mini. В настоящее время распространяется как отдельное приложение через AppStore и доступно для установки на любые компьютеры Apple.
Представляет из себя набор служб для обслуживания парка Apple устройств, а также удаленного управления iOS- и OSX- устройствами.
Основные возможности:
- Администрирование пользователей в рамках Open Directory (возможна интеграция с Active Directory);
- Синхронизация календарей;
- Синхронизация контактов;
- Обмен файлами (File Sharing);
- Почтовый сервер;
- Групповые чаты пользователей;
- Менеджер профилей для удаленного управления iOS и OSX устройствами;
- Сервер TimeMachine (бекапы);
- VPN;
- Хостинг веб-сайтов на PHP и Python;
- CMS Wiki;
- Сервер XCode для непрерывной интеграции;
- DHCP сервер;
- DNS сервер;
- FTP сервер;
Синхронизация OS X Server с Active Directory
Конечно, я не мог пройти мимо Active Directory, так как мы работаем в корпоративном сегменте, и, как минимум, пару слов я обязан сказать на эту тему. Подобно Microsoft, Apple работает со своей службой каталогов — Open Directory, которая концептуально не отличается от Active Directory.
Для интеграции с Active Directory используется механизм «связывания» (Binding). Настраивается он достаточно просто, однако, не отличается железной стабильностью (на разных комбинациях версий Windows Server и OS X Server разный результат, т.е. можете потерять связь).
Прекрасно, теперь вы в курсе всех основных терминов и принципов. Можем приступать к настройке механизмов распространения приложений внутри компании и конфигурирования iOS-устройств.
Алгоритм действий для настройки инфраструктуры конфигурирования iOS-устройств и распространения приложений
1. Устанавливаем Apple Configurator 2 из AppStore.
2. Устанавливаем Apple OS X Server из AppStore.
3. Создаем профиль с настройками WiFi для iOS-устройства через Apple Configurator 2, если сотрудники должны пользоваться определенной закрытой корпоративной сетью, к которой мы не хотим давать им пароль.
Указываем пароль, который нужно ввести, чтобы удалить профиль. Это один из возможных вариантов. Можем вообще запретить удаление.
4. Перейдем к настройке OS X Server. Зададим имя хоста, доступность из сетей и параметры удаленного доступа. Это начальное конфигурирование нашего сервера.
5. Настроим Open Directory в OS X Server, чтобы далее хранить в ней пользователей.
6. Создадим пользователей в OS X Server, или синхронизируем сервер с Active Directory. Нам потребуется еще один администратор и простой пользователь (он же — сотрудник).
7. Создадим группы пользователей (по бригадам/отделам/подразделениям) и распределим пользователей по этим группам в OS X Server. Это понадобится нам для конфигурирования групп устройств.
8. Включим Apple Push Notifications в OS X Server.
Здесь нам уже понадобится учетная запись нашего разработчика, с активной Apple Developer Program.
9. Настроим синхронизацию контактов в OS X Server. Это опционально, если вы не планируете вести общий список контактов между сотрудниками.
10. Теперь самое интересное. Настроим менеджер профилей в OS X Server.
Сервер управления мобильными устройствами
Profile Manager позволяет централизованно администрировать и управлять зарегистрированными мобильными устройствами, работающими под OS X 10.7 и выше или iOS 4 и выше.
Следует отметить, что Apple предоставляет управление API своих устройств сторонним разработчикам MDM-решений, чтобы использовать их опыт.
Как правило эти системы управления мобильными устройствами (MDM — Mobile Device Management) имеют больше возможностей для настройки.
Для осуществления инициируемой со стороны сервера загрузки настроек, программного обеспечения понадобится push-сервис. Push сервер является частью OS X Server (иногда push-сервис реализуется как часть MDM-решения, в этом случае push-сервис от Apple не нужен). Push сервер будет выполнять функции по загрузке команд, связанных с конфигурацией или установкой ПО мобильных устройств, взаимодействуя с магазином приложений компании Apple. Это обеспечивает выполнение срочных действий, таких как блокировка похищенных устройств или удаление информации с них.
Если планируется управление только устройствами Apple, а какие-либо специальные требования отсутствуют, то Profile Manager — оптимальное решение по соотношению стоимость/функциональность. В этом случае для централизованной загрузки настроек корпоративного ПО следует использовать Apple Push Server. А возможность установки политик на устройства, подключенные даже за периметром корпоративной сети, обеспечит Apple Push Notification Service (APNS).
Алгоритм настройки менеджера профилей
11. Через Profile Manager в OS X Server включим возможность привязывать iOS-устройства, настроенные в Apple Configurator 2.
12. Через Profile Manager в OS X Server зададим пользователю (лучше группе пользователей) ограничения к его iOS-устройству.
13. Пришло время поработать с физическим устройством. Переведем iOS-устройство в Supervised-режим через Apple Configurator 2 с принятием настроек от удаленного MDM-сервера (Mobile Device Management), которым является OS X Server.
После перезагрузки (до принятия приветствия) iOS-устройства через Apple Configurator 2 загрузим в него созданный ранее профиль с настройками WiFi и описанием принадлежности.
Принять приветствие на iOS-устройстве, переведенном в Supervised-режим, и залогиниться под нужным пользователем, созданным в OS X Server.
14. Добавим все iOS-устройства в учетную запись Apple-разработчика.
- Увидеть через iTunes;
- Увидеть через Apple Configurator 2;
- Запросить программно, через установку профиля;
Мы воспользуемся вторым вариантом, так как в данным момент работаем с Apple Configurator 2.
15. Подготовим корпоративное приложение в XCode для распространения внутри компании в XCode (Archive).
Публиковать приложение в AppStore мы не собираемся, поэтому нажимаем Export…
16. Загрузим *.ipa -пакет приложения в Profile Manager в OS X Server.
В данном окне вы видим список корпоративных приложений, доступных для распространения.
17. В Profile Manager в OS X Server укажем для нужного пользователя (лучше группы пользователей) — какие корпоративные приложения установить на его устройство. Сделаем Push приложений (начнем удаленную установку).
Добавим приложения пользователям.
Видим статус применения настроек / установки приложений.
«Внезапно» началась установка корпоративных приложений на устройство. Пользователь не предпринимает никаких действий.
Установка приложений завершена.
Настройка инфрастуктуры завершена.
Распространение приложений среди сотрудников с личными iOS-устройствами
- Зайти на сайт сервера;
http://os-x-server.com/mydevices
- Авторизоваться с учетной записью, созданной на OS X Server. Либо, если предусмотрены общие приложения для всех — авторизация не трубется;
- Нажать Enroll My Device. iOS-устройство отобразится в Profile Manager;
- После этого начнется установка доступных пользователю приложений.
К сожалению, у меня не сохранились скриншоты этого процесса, ввиду его простоты, но суть вы можете уловить из этого видео (начинается с нужного момента). По научному это называется «портал самообслуживания». Почти как в заводской столовой.
Послесловие
Концептуальное описание OS X Server на русском языке, хоть и немного устаревшее, советую почитать здесь.
Актуальные видео по настройке отдельных компонентов OS X Server можно посмотреть здесь.
Примечание
Описанный в статье метод распространения применим для любых приложений созданных для iOS, т.е. он идентичен для приложений, написанных на Xamarin, Cordova или нативно. Все что вам нужно — это сформировать пакет приложения *.ipa и загрузить его в Profile Manager.
Надеюсь, статья покажется полезной начинающим, или не очень, iOS-разработчикам. Успехов!
ссылка на оригинал статьи https://habrahabr.ru/post/277763/
Добавить комментарий