Интеграция Microsoft Intune для управления мобильным приложением
Intune — де-факто стандарт EMM для Microsoft-ориентированных организаций. Если инфраструктура на Azure AD, Office 365, Teams — Intune логичный выбор: единая консоль, Conditional Access на уровне Azure AD, нативная интеграция с Defender for Endpoint. Для мобильного приложения интеграция означает поддержку MAM SDK или App Wrapping + корректную работу с MSAL для получения токенов с учётом compliance-статуса устройства.
Регистрация приложения в Azure AD
Первый шаг — App Registration в Azure Portal. Без корректной регистрации Intune не сможет применять политики к приложению.
Минимальный набор настроек:
- Создать App Registration в Azure AD.
- Добавить API Permissions:
DeviceManagementApps.ReadWrite.All,DeviceManagementConfiguration.ReadWrite.All(если приложение читает политики напрямую). - Добавить
IntuneMAMв Redirect URI:msauth.{bundle-id}://auth. - Включить
Public client flowsдля мобильных клиентов. - В Intune Portal (portal.azure.com → Intune → Client Apps) добавить приложение в App Protection Policy и назначить на группы.
MSAL: аутентификация с учётом Conditional Access
MSAL (Microsoft Authentication Library) — замена ADAL, обязательный компонент для современной Intune-интеграции.
iOS (Swift):
import MSAL
let config = MSALPublicClientApplicationConfig(
clientId: "YOUR_CLIENT_ID",
redirectUri: "msauth.com.company.app://auth",
authority: try MSALAADAuthority(url: URL(string: "https://login.microsoftonline.com/YOUR_TENANT_ID")!)
)
config.bypassRedirectURIValidation = false
let application = try MSALPublicClientApplication(configuration: config)
let webParameters = MSALWebviewParameters(authPresentationViewController: viewController)
let interactiveParameters = MSALInteractiveTokenParameters(
scopes: ["https://graph.microsoft.com/.default"],
webviewParameters: webParameters
)
application.acquireToken(with: interactiveParameters) { result, error in
if let result = result {
// result.accessToken — использовать для API-запросов
// result.account — сохранить для silent token refresh
}
}
Conditional Access работает автоматически: если устройство non-compliant (устаревшая OS, jailbreak по оценке Intune), MSAL получает MSALError с кодом conditionalAccessClaim — приложение должно повторно запросить токен с дополнительными claims. Это не требует ручной логики: MSAL v1.1+ обрабатывает CA challenge автоматически при корректной конфигурации.
Intune MAM SDK: ключевые точки интеграции
После добавления IntuneMAMSwift (iOS) или intune-mam-sdk (Android) — несколько обязательных точек:
Регистрация аккаунта после авторизации:
// После успешного MSAL login
IntuneMAMEnrollmentManager.instance().loginAndEnrollAccount(userPrincipalName)
// SDK регистрирует UPN в MAM-сервисе и запрашивает политики
Обработка enrollment callback:
class MAMEnrollmentDelegate: NSObject, IntuneMAMEnrollmentDelegate {
func enrollmentRequestWithStatus(_ status: IntuneMAMEnrollmentStatus) {
switch status.statusCode {
case .enrollmentSuccess:
// Политики применены, разрешаем доступ к корпоративным функциям
case .enrollmentFailed:
// Показываем ошибку, ограничиваем доступ
case .unenrollmentSuccess:
// Selective wipe завершён
}
}
}
Проверка политики перед действием:
let policyManager = IntuneMAMPolicyManager.instance()
if policyManager.policy(forIdentity: userUPN).isSaveToPersonalAllowed(for: .camera) {
// Разрешить сохранение в Camera Roll
} else {
showRestrictedActionAlert()
}
Managed App Configuration через Intune
В Intune Portal для каждого приложения можно задать Configuration Policy — словарь ключей/значений, который приложение читает через UserDefaults.standard.dictionary(forKey: "com.apple.configuration.managed") (iOS) или RestrictionsManager (Android).
Типичные параметры для корпоративного приложения:
<!-- App Configuration Policy в Intune Portal (XML формат) -->
<dict>
<key>BackendURL</key>
<string>https://api.corp.example.com</string>
<key>TenantID</key>
<string>corp-tenant-001</string>
<key>EnableVerboseLogging</key>
<false/>
<key>SessionTimeoutMinutes</key>
<integer>30</integer>
</dict>
Приложение при каждом старте проверяет изменения в managed config — это позволяет IT изменить параметры без обновления приложения.
Интеграция с Microsoft Defender for Endpoint
Если в организации используется Defender for Endpoint (MDE), Intune может получать от него сигналы о mobile threat defense: джейлбрейк, вредоносные сети, уязвимые приложения. Conditional Access использует эти сигналы для блокировки токенов.
Для этого в приложение встраивается Defender SDK — он работает фоном, отправляет threat events в MDE, Intune получает compliance status. С точки зрения приложения — это отдельная зависимость, но без изменений в основной бизнес-логике.
Этапы интеграции
Azure AD App Registration → настройка MSAL → добавление Intune MAM SDK → реализация enrollment lifecycle → Managed App Configuration → App Protection Policy в Intune Portal → тестирование Conditional Access → тестирование selective wipe → rollout.
Сроки: интеграция MSAL + MAM SDK в готовое приложение — 3–5 недель. С настройкой Intune Portal, политик и тестированием — 6–8 недель. Стоимость рассчитывается индивидуально.







