it-консалтинг и аутсорсинг
что мы делаем контакты блог

MDM – Управление устройствами Apple в корпоративной среде

Валерий Антонов 19.03.2018

Чтобы управлять мобильными устройствами Apple под управлением macOS, iOS и tvOS и их настройками, используется технология MDM (Mobile Device management). Не стоит путать эту аббревиатуру с понятием MDM как таковым, подразумевающим собой устоявшийся отраслевой термин – Mobile device management или с технологиями Android MDM или MDM от Microsoft. Все это называется “протоколами”, но работает по разному.

Протокол MDM позволяет управлять устройствами Apple, начиная с iOS 4, macOS 10.7 и Apple TV с iOS 7. При помощи MDM администратор может проверять, устанавливать или удалять конфигурационные профили, удалять код блокировки устройств и стирать информацию с управляемого устройства.

Конфигурационный профиль

Конфигурационный профиль – это файл, с помощью которого можно распространять настройки на устройства Apple, например: настройки электронной почты, VPN, сертификаты. Конфигурационные профили удобно распространять на большое количество устройств.

Список всех настраиваемых параметров:

  • Ограничения на использование устройств
  • Настройки Wi-Fi
  • Настройки VPN
  • Настройки электронной почты
  • Настройки Exchange
  • Настройки подключения к каталогу LDAP (Active Directory)
  • Настройки подключения к серверу календарей CalDAV
  • Настройки Web clips
  • Данные для аутентификации

По сути конфигурационный профиль (далее профиль) является plist-файлом с расширением .mobileconfig. Такой файл можно создать через приложения Apple Configurator 2, Server.app или вручную, следуя документации Apple – Configuration Profile Reference

Что входит в сам профиль:

  • Configuration Profile Keys – обязательные ключи для любого профиля
  • Payload Dictionary Keys – ключи для описания типа Payload (набора настроек)
  • Payload-Specific Property Keys – ключи описания конкретных типов Payload
  • Domains Payload – группа настроек, которая управляется профилем
  • macOS Server Payload – настройки учетных записей macOS Server
  • Active Directory Payload – настройки Active Directory

Также профили можно шифровать или подписывать сертификатом.

Пример профиля, содержащего набор настроек для работы с SCEP – Simple Certificate Enrollment Protocol (SCEP)

< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE plist PUBLIC "-//Apple Inc//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>Ignored</string>
        <key>PayloadType</key>
        <string>Configuration</string>
        <key>PayloadIdentifier</key>
        <string>Ignored</string>
        <key>PayloadContent</key>
        <array>
            <dict>
                <key>PayloadContent</key>
                </dict><dict>
                    <key>URL</key>
                    <string>https://scep.example.com/scep</string>
                    <key>Name</key>
                    <string>EnrollmentCAInstance</string>
                    <key>Subject</key>
                    <array>
                        </array><array>
                            </array><array>
                                <string>O</string>
                                <string>Example, Inc.</string>
                            </array>
                        </dict></array>
                        <array>
                            </array><array>
                                <string>CN</string>
                                <string>User Device Cert</string>
                            </array>
                    <key>Challenge</key>
                    <string>...</string>
                    <key>Keysize</key>
                    <integer>1024</integer>
                    <key>KeyType</key>
                    <string>RSA</string>
                    <key>KeyUsage</key>
                    <integer>5</integer>
                </dict>
                <key>PayloadDescription</key>
                <string>Provides device encryption identity</string>
                <key>PayloadUUID</key>
                <string>fd8a6b9e-0fed-406f-9571-8ec98722b713</string>
                <key>PayloadType</key>
                <string>com.apple.security.scep</string>
                <key>PayloadDisplayName</key>
                <string>Encryption Identity</string>
                <key>PayloadVersion</key>
                <integer>1</integer>
                <key>PayloadOrganization</key>
                <string>Example, Inc.</string>
                <key>PayloadIdentifier</key>
                <string>com.example.profileservice.scep</string>
</plist>

Распространить профиль можно несколькими способами:

  • через Apple Configurator 2 (для iOS)
  • отправить Email
  • разместить ссылку на странице
  • Over-the-air (для iOS) – Over-the-Air Profile Delivery Concepts
  • Over-the-air с помощью сервера MDM
  • с помощью DEP – Device Enrollment Program на supervised-устройствах (в России пока недоступно)

Протокол MDM

Протокол MDM работает поверх HTTP, использует TLS и Push-уведомления. Apple Push Notification Service (APNS) требуется для отправки “wake up”-сообщений на управляемое устройство, которое подключается к заранее указанному веб-сервису для получения команд и возврата результатов выполнения. Сам сервис MDM представляет из себя HTTPS-сервер, поэтому, в отличие от Active Directory, устройство не обязано находиться в одной сети с сервером, чтобы получить новые настройки: достаточно, чтобы MDM-сервер был доступен извне по протоколу HTTPS. Устройство связывается с MDM-сервером в ответ на push-сообщение, устанавливая TLS-подключение к серверу, далее проверяет сертификат сервера и проходит аутентификацию. Благодаря этому, становятся невозможными атаки с подменой сервера, когда злоумышленник заменяет легитимный сервер своим: у него просто нет доступа к ключам сервера. Далее требуется распространить набор настроек MDM Payload, на ваши устройства.

Распространение MDM Payload

MDM Payload распространяется через конфигурационные профили или через Device Enrollment Program. На одном устройстве – только один MDM Payload, привязать к двум серверам нельзя.

Профили, распространяемые через сервис MDM, называются управляемыми. Если MDM Payload удалить – эти профили также будут удалены. Хотя сервис MDM имеет доступ ко списку всех профилей, установленных на устройстве, удалять он может только те профили и приложения, которые были установлены через него же. Также с помощью MDM можно создавать управляемые записи и устанавливать приложения приобретенные через Volume Purchase Program (в России пока недоступен).

Если вы подготавливаете iOS-устройства к MDM через Apple Configurator 2, то начиная с iOS 5 устройства могут быть помечены как контролируемые (supervised). Устройства, начиная с iOS 7, обозначаются контролируемыми через DEP. Для контролируемых устройств доступны дополнительные настройки и ограничения.

Если профиль установлен не через DEP – пользователь устройства может удалить MDM payload самостоятельно. То же самое под силу серверу MDM.

Профиль, содержащий MDM Payload и установленный через DEP, будет блокирован для удаления. Профили, установленные через MDM, также могут быть заблокированы, однако они будут удалены с устройства, как только вы удалите профиль MDM.

Привязка устройств к MDM

Для того, чтобы сервер MDM мог управлять устройствами, требуется следующее:

  • Установить конфигурационный профиль, содержащий в себе специальный MDM payload, или с помощью DEP
  • Устройство подключается к серверу (check-in server), предоставляет свой собственный сертификат для аутентификации, свой уникальный номер UDID и другую служебную информацию

Если сервер принимает устройство – последнее предоставляет свой push-токен серверу, который использует для отправки push-уведомлений.

Работа устройства с MDM

  • Сервер отправляет push-сообщение на устройство
  • Устройство запрашивает на сервере, какую команду нужно выполнить
  • Устройство выполняет команду
  • Устройство отправляет на сервер результат выполнения команды и делает запрос на следующую команду

Время от времени токен может меняться. Если такое изменение зафиксировано при очередном push-сообщении с сервера, устройство автоматически отмечается на сервере MDM и сообщает ему о новом push-токене.

Безопасность

В ответ на push-сообщение, устройство связывается с MDM-сервером через TLS-подключение (используется TLS 1.2), проверяет сертификат сервера, затем проходит аутентификацию. Благодаря этому, становятся невозможными атаки с подменой сервера.

Дополнения к протоколу MDM для macOS

Как следует из названия Mobile Device Management, этот протокол был изначально придуман для управления мобильными устройствами (iPhone и iPad). Чтобы обеспечить работу и с компьютерами под управлением macOS, протокол MDM расширили дополнительными функциями.

Mac, в отличие от iPhone, – устройство, которым могут пользоваться несколько человек. Поскольку настройки для разных пользователей могут быть индивидуальными, MDM-клиент macOS подключает компьютер и пользователей этого компьютера к серверу MDM как отдельные сущности. Это позволяет управлять настройками как компьютера, так и отдельных пользователей.

MDM-запросы для устройства отправляются демоном mdmclient, а запросы для отдельного пользователя отправляются агентом mdmclient, работающим от имени этого пользователя. Если на компьютере осуществлен вход нескольких пользователей, будет запущено несколько экземпляров агента mdmclient, по количеству вошедших пользователей. Эт агенты взаимодействуют с сервером независимо друг от друга.

Если MDM-сервер поддерживает управление и пользователями, и устройствами, то при установке профиля он автоматически будет “промоутирован” до профиля устройства. Это приведет к следующим последствиям:

  • Устройство будет управляемым
  • Локальный пользователь, установивший профиль, будет управляемым
  • Другие локальные пользователи не будут управляемыми. Сервер никогда не получит запросы от локальных пользователей, кроме того, который установил профиль
  • Сетевые учетные записи будут управляемыми, если сервер их аутентифицирует. Если сервер по каким-то причинам не примет их, то они также будут неуправляемыми

Итого

Управление устройствами Apple не похоже на те привычные механизмы, которые работают в Active Directory.
Идея взаимодействия MDM с инфраструктурой Windows популярна, так как количество техники Apple в компаниях растет, сотрудники приносят свои собственные устройства. С помощью MDM и конфигурационных профилей можно привязать ваши Маки к домену AD, использовать SCEP, сетевые учетные записи и SSO. Но управлять Маками с помощью политик active Directory не получится. Для этого потребуются сторонние решения, включающие в себя функционал MDM и дополняющие его своими собственным решениями. Об этом мы напишем в следующих статьях.