-
Découvrez le framework ManagedApp
Découvrez comment le framework ManagedApp aide votre app à s'adapter aux environnements gérés. Nous vous montrerons comment recevoir des données de configuration, gérer les secrets d'app en toute sécurité et adapter le comportement de votre app en fonction des paramètres fournis par l'organisation. Nous présenterons également des exemples concrets illustrant comment vous pouvez créer des apps plus flexibles et plus faciles à gérer pour les environnements d'entreprise et d'éducation.
Chapitres
- 0:00 - Bienvenue
- 2:51 - Présentation du framework ManagedApp
- 5:14 - Workflow
- 7:26 - Exemples de scénarios
- 12:17 - Implémentation
- 21:27 - Bonnes pratiques
Ressources
- Apple School Manager and Apple Business APIs
- ManagedApp
- Support - Apple Platform Deployment
- Apple School Manager User Guide
- Apple Business Manager User Guide
Vidéos connexes
WWDC25
-
Rechercher dans cette vidéo…
-
-
0:01 - Your app's managed configuration
// Your app's managed configuration struct LandmarksManagedConfig: Decodable { private(set) var collection: LandmarkCollection? private enum CodingKeys: String, CodingKey { case collection } init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) collection = try values.decode(LandmarkCollection.self, forKey: .collection) } } -
0:02 - Receiving the current configuration
// Receiving the current configuration import ManagedApp // [...] var managedCollection: LandmarkCollection? // [...] func loadCollections() { // [...] Task { let configProvider = ManagedAppConfigurationProvider() for await config in await configProvider.configurations(LandmarksManagedConfig.self) { // config's type is LandmarksManagedConfig? managedCollection = config?.collection } // Loops forever } } -
0:03 - Using an identity
// Using an identity final class MyURLSessionDelegate: NSObject, URLSessionDelegate { func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge) async -> (URLSession.AuthChallengeDisposition, URLCredential?) { switch challenge.protectionSpace.authenticationMethod { case NSURLAuthenticationMethodClientCertificate: // Look up the identity let provider = ManagedAppIdentitiesProvider() let id = "AssetDownloadClient" guard let identity = try? await provider.identity(withIdentifier: id) else { // No identity, cancel the challenge return (.cancelAuthenticationChallenge, nil) } // Use the identity to authenticate. return (.useCredential, URLCredential(identity: identity, certificates: nil, persistence: .forSession)) default: return (.performDefaultHandling, nil) } } }
-
-
- 0:00 - Bienvenue
Le framework ManagedApp simplifie la configuration des apps pour les déploiements gérés au sein des organisations. Ce framework élimine le processus complexe et fastidieux auquel les utilisateurs sont confrontés lors de la configuration des apps, qui peut être source de frustration, réduire l’utilisation des apps et augmenter les coûts de support. Grâce à l’infrastructure ManagedApp, vous pouvez préconfigurer des apps pour chaque organisation, appareil et utilisateur, ce qui permet de les utiliser immédiatement après leur lancement. Cette approche améliore l’expérience utilisateur, favorise l’adoption des apps et réduit la charge de travail des administrateurs. Elle rend ainsi le déploiement des apps plus efficace et plus rentable.
- 2:51 - Présentation du framework ManagedApp
Le framework ManagedApp permet aux administrateurs de configurer en toute sécurité les apps gérées et leurs extensions. Ce framework facilite l’authentification des appareils et des utilisateurs, répond à des exigences de sécurité élevées et fournit des mots de passe, des certificats, des identités et des données de configuration spécifiques aux apps. Le système stocke ces données en toute sécurité et les rend accessibles uniquement aux apps ou extensions gérées autorisées. Le framework s’intègre à d’autres technologies de gestion des appareils et prend en charge la plupart des types d’extensions d’apps. Il renforce ainsi la sécurité des données et le contrôle d’accès pour les appareils gérés.
- 5:14 - Workflow
Les administrateurs peuvent utiliser ce framework pour gérer à distance les appareils et les apps à l’aide d’un serveur MDM. Le framework facilite la transmission sécurisée des paramètres de configuration et des secrets de l’administrateur vers l’app. Vous jouez un rôle crucial en rédigeant des décodeurs et des spécifications qui détaillent la manière dont les autres peuvent configurer vos apps. Les administrateurs utilisent ces informations pour adapter le comportement de l’app aux besoins spécifiques de leur organisation tout en améliorant la sécurité et les fonctionnalités. Le framework sert de plateforme qui permet de créer des solutions innovantes pour votre entreprise.
- 7:26 - Exemples de scénarios
Le framework ManagedApp améliore la sécurité et les fonctionnalités des apps gérées dans divers scénarios. Il permet la distribution sécurisée des clés de licence pour remplacer les jetons de licence moins sécurisés, et fournit des identités cryptographiques à des fins d’octroi de licence. Par exemple, ce framework est particulièrement utile pour les extensions VPN, car il offre une authentification forte grâce à une clé matérielle certifiée. De plus, pour les fournisseurs d’identité, le framework ManagedApp facilite l’authentification unique extensible avec divers supports d’authentification, tels que les identités matérielles, les mots de passe temporaires et les jetons. Dans l’ensemble, le framework ManagedApp améliore la sécurité des apps, simplifie la gestion et prend en charge les extensions d’apps, ce qui en fait une solution supérieure pour les entreprises qui déploient des apps gérées.
- 12:17 - Implémentation
Dans iOS, ce framework simplifie le processus de transmission sécurisée des configurations et des secrets aux apps. Il se compose de quatre classes indépendantes, chacune conçue pour gérer un type de données spécifique : les chaînes, les SecCertificates, les SecIdentities et les configurations spécifiques aux apps. Pour les configurations spécifiques à une app, vous pouvez définir la structure des données à l’aide de structures Swift. Cette flexibilité permet aux administrateurs de personnaliser le comportement de l’app en fonction de leurs besoins. L’app Landmarks, que les administrateurs peuvent configurer pour afficher des collections de sites touristiques spécifiques à utiliser en classe, en est un exemple. À cette fin, vous créez une structure qui représente les paramètres configurables, tels que la collection gérée. Cette structure est conforme au protocole « Decodable », ce qui permet au framework de décoder les données de configuration reçues du serveur de gestion des appareils mobiles (MDM). L’app utilise ensuite la concurrence Swift pour récupérer la configuration de manière asynchrone. Ainsi, le processus ne bloque pas le thread principal. Lorsque l’administrateur met à jour la configuration, l’app reçoit et applique automatiquement les modifications, ce qui la rend dynamique et flexible. Le framework prend également en charge le traitement des informations sensibles, telles que les identités. Vous pouvez utiliser le fournisseur d’identités ManagedApp pour rechercher et récupérer en toute sécurité les identités provisionnées. Cette fonctionnalité simplifie l’utilisation de l’authentification TLS mutuelle, ce qui permet à l’app de se connecter en toute sécurité aux serveurs d’actifs. Enfin, pour permettre aux administrateurs de configurer efficacement l’app, vous devez publier une spécification qui documente le format de configuration, les valeurs valides, les codes d’erreur et tous les identifiants secrets pris en charge. Cette spécification sert de guide aux administrateurs et les aide à créer et à appliquer correctement les configurations.
- 21:27 - Bonnes pratiques
Lors du développement de votre app, veillez à bien respecter les bonnes pratiques de gestion de configuration. Téléchargez les données depuis un serveur distant au lieu de les intégrer directement dans la configuration, celle-ci étant limitée à quelques kilo-octets seulement. N’oubliez pas de vérifier les éléments de sécurité requis et assurez-vous d’utiliser systématiquement la version la plus récente. Les paramètres de configuration doivent être précis et indépendants les uns des autres pour permettre aux administrateurs d’ajuster le système selon leurs besoins. Garantir une compatibilité ascendante et descendante est essentiel : les décodeurs doivent pouvoir fonctionner avec les anciens paramètres tout en ignorant les nouvelles fonctionnalités sans problème. Lors de la création de vos apps, pensez à faciliter le travail des évaluateurs en leur permettant d’explorer toutes les fonctionnalités, y compris celles qui demandent des droits d’administration ou des réglages particuliers. Pour cela, n’hésitez pas à proposer des modes démo, des tutoriels vidéo ou des comptes de test. Soyez innovants, restez à l’écoute des retours utilisateurs et privilégiez le framework ManagedApp pour une expérience plus intuitive.