Pull to refresh

Управление корпоративными iOS-устройствами при помощи OS X Server, а также распространение приложений внутри компании

Development for iOSDevelopment of mobile applications
Tutorial


Рано или поздно в доброй части крупных компаний возникает вопрос разработки внутреннего корпоративного мобильного приложения. В связи с этим, перед IT-специалистами встает задача проработки двух сценариев: когда нужно установить приложения на личные устройства сотрудников и когда нужно раздать устройства, являющиеся собственностью компании, для выполнения сотрудниками конкретных задач. В рамках данной статьи рассматривается работа с iOS-устройствами через OS X Server.


Введение



Сегодня при желании можно легко найти информацию по настройке OS X Server, MDM-решений и т.п. на английском языке, и в целом конфигурирование не представляет какую-то сложность. Данная статья адресована людям в русскоязычном сегменте, впервые столкнувшимся с данной задачей и желающим понять, что их ждет и насколько все сложно и страшно.
Излагаемый материал был составлен как краткое руководство к действию и за ненадобностью направлялся прямиком в Корзину, но перед тем как нажать «Очистить корзину», я подумал, что, возможно, он будет полезен кому-то еще, кто не знаком с этой темой.
Поэтому, отдельную категорию комментаторов прошу быть снисходительными
image


Постановка задачи



Итак, давайте определимся с задачами, которые перед нами поставила компания (или заказчик).

У нас есть два независимых вектора развития мобильного направления:
  • Корпоративное мобильное приложение для сотрудников компании, которое они устанавливают на личные устройства, в нашем случае на 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.
Так он выглядит в AppStore


Еще раз перечислим его основные возможности:

  • Сброс iOS-устройства к заводским настройкам;
  • Создание профилей устройства;
  • Создание Blueprint образов;
  • Установка iOS-устройства в Supervised-режим, который позволяет контролировать устройство (сбрасывать и т.п.) только с этого компьютера;
  • Создание бэкапов iOS-устройств;

В этом списке появилось новое слово Blueprint, и мы до сих пор не поняли, какие именно ограничения мы можем задавать через Профили. Давайте поговорим об этом.


Профили в Apple Configurator 2



Профили служат для установки на устройство требуемых параметров и ограничений.

Например, можно в одном профиле установить:
  • Настройки для подключения к WiFi;
  • Ограничения на использование мультимедийных возможностей устройства;
  • Запрет на установку приложений из AppStore;
  • Фильтр на доступные веб-сайты, либо запретить использование браузера Safari;

На одном устройстве может быть установлено несколько профилей.

Список доступных настроек через профиль
Общая информация об устройстве


Пароль на экране брокировки


Ограничения на функциональность устройства




Ограничения на использование приложений


Ограничения на использование медиа-контента


Настройки глобального прокси-сервера


Список разрешенных сайтов


Политика в отношении доменов


Доступ к WiFi точкам


Настройки VPN


Настройки AirPlay


Настройки AirPrint


Настройки учетных записей электронной почты


Настройки Exchange ActiveSync


Настройки LDAP


Синхронизация календарей


Синхронизация контактов


Подписка на календари


Иконки быстрого перехода на веб-сайт


Шрифты


Сертификаты


Настройка SCEP-сервера


Настройки APN-точек для 3G






Blueprints в Apple Configurator 2



Blueprints — это быстрые «образы» желаемых настроек и приложений, которые можно применить к подключенному устройству в один клик.

Работа с Blueprints
Создание Blueprint





Выбор типа устройства



Добавление нужных корпоративных приложений в образ



Добавить *.ipa -пакет приложения



Добавление профилей



Хорошо, надеюсь вы получили общее представление о базовых средствах конфигурирования iOS-устройств. Самое время перейти к более продвинутым, и соответственно, платным инструментам.


Apple OS X Server



OS X Server — это приложение, до 2014 года предустановливаемое на топовые версии компьютеров Apple Mac mini. В настоящее время распространяется как отдельное приложение через AppStore и доступно для установки на любые компьютеры Apple.
Представляет из себя набор служб для обслуживания парка Apple устройств, а также удаленного управления iOS- и OSX- устройствами.
Так он выглядит в AppStore


Основные возможности:

  • Администрирование пользователей в рамках 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 разный результат, т.е. можете потерять связь).

Настройка синхронизации с Active Directory

















Прекрасно, теперь вы в курсе всех основных терминов и принципов. Можем приступать к настройке механизмов распространения приложений внутри компании и конфигурирования 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 Push Notifications необходимо для управления устройствами через интернет, так как через push-уведомления доставляются команды от OS X сервера.



Здесь нам уже понадобится учетная запись нашего разработчика, с активной 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-разработчика.
Подробнее
Для добавления iOS-устройства к учетной записи разработчика нам необходимо получить его уникальный номер — UDID. Его можно получить тремя способами:
  • Увидеть через 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-устройство до назначения приложений пользователю.





Добавим приложения пользователям.





Видим статус применения настроек / установки приложений.



«Внезапно» началась установка корпоративных приложений на устройство. Пользователь не предпринимает никаких действий.



Установка приложений завершена.




Настройка инфрастуктуры завершена.


Распространение приложений среди сотрудников с личными iOS-устройствами



Алгоритм действий сотрудника
Все что нужно сотруднику, это:
  1. Зайти на сайт сервера;
    http://os-x-server.com/mydevices
  2. Авторизоваться с учетной записью, созданной на OS X Server. Либо, если предусмотрены общие приложения для всех — авторизация не трубется;
  3. Нажать Enroll My Device. iOS-устройство отобразится в Profile Manager;
  4. После этого начнется установка доступных пользователю приложений.

К сожалению, у меня не сохранились скриншоты этого процесса, ввиду его простоты, но суть вы можете уловить из этого видео (начинается с нужного момента). По научному это называется «портал самообслуживания». Почти как в заводской столовой.


Послесловие



Концептуальное описание OS X Server на русском языке, хоть и немного устаревшее, советую почитать здесь.

Актуальные видео по настройке отдельных компонентов OS X Server можно посмотреть здесь.

Примечание
Описанный в статье метод распространения применим для любых приложений созданных для iOS, т.е. он идентичен для приложений, написанных на Xamarin, Cordova или нативно. Все что вам нужно — это сформировать пакет приложения *.ipa и загрузить его в Profile Manager.

Надеюсь, статья покажется полезной начинающим, или не очень, iOS-разработчикам. Успехов!
Tags:мобильные приложенияраспространениедистрибуцияiOSin-houseos x server
Hubs: Development for iOS Development of mobile applications
Total votes 8: ↑7 and ↓1 +6
Views38.3K

Comments 24

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now

Senior mobile iOS Developer
from 130,000 to 330,000 ₽DiffcoRemote job
Senior Dart / Flutter Developer wanted (remote or office)
from 4,000 to 5,000 $JarSoftНовосибирскRemote job
Senior Flutter Mobile Engineer - Remote
from 3,000 to 3,500 €Jimmy TechnologiesRemote job
Senior mobile iOS Developer
from 200,000 ₽Communication Security LabRemote job
iOS-разработчик
to 200,000 ₽BlogmanСанкт-ПетербургRemote job